Raspberry PI : sortie HDMI, CEA ou DMT ?

Le Raspberry PI offre une sortie physique HDMI. Et un paramétrage très précis. Par exemple sur Raspbian, ouvrez le fichier /boot/config.txt et vous pouvez forcer la résolution et le mode utilisé avec le paramètre hdmi_group.

En HDMI, il y a 2 modes sur le Raspberry PI : CEA ou DMT.

hdmi_group=1   # CEA
hdmi_group=2   # DMT

HDMI CEA – hdmi_group=1

Le mode CEA signifie « Consumer Electronics Association ». Il a été conçu pour les TV et propose plusieurs modes entrelacés et progressifs.

Le mode CEA est habituellement proposé en PAL (25/50/100Hz) ou NTSC (30/60/120Hz) et des résolutions de 288/480/576/720/1080 lignes.

 

Dans ce mode, voici les résolutions possibles

These values are valid if hdmi_group=1 (CEA)
hdmi_mode=1    VGA
hdmi_mode=2    480p   60 Hz
hdmi_mode=3    480p   60 Hz  H
hdmi_mode=4    720p   60 Hz
hdmi_mode=5    1080i  60 Hz
hdmi_mode=6    480i   60 Hz
hdmi_mode=7    480i   60 Hz  H
hdmi_mode=8    240p   60 Hz
hdmi_mode=9    240p   60 Hz  H
hdmi_mode=10   480i   60 Hz  4x
hdmi_mode=11   480i   60 Hz  4x H
hdmi_mode=12   240p   60 Hz  4x
hdmi_mode=13   240p   60 Hz  4x H
hdmi_mode=14   480p   60 Hz  2x
hdmi_mode=15   480p   60 Hz  2x H
hdmi_mode=16   1080p  60 Hz
hdmi_mode=17   576p   50 Hz
hdmi_mode=18   576p   50 Hz  H
hdmi_mode=19   720p   50 Hz
hdmi_mode=20   1080i  50 Hz
hdmi_mode=21   576i   50 Hz
hdmi_mode=22   576i   50 Hz  H
hdmi_mode=23   288p   50 Hz
hdmi_mode=24   288p   50 Hz  H
hdmi_mode=25   576i   50 Hz  4x
hdmi_mode=26   576i   50 Hz  4x H
hdmi_mode=27   288p   50 Hz  4x
hdmi_mode=28   288p   50 Hz  4x H
hdmi_mode=29   576p   50 Hz  2x
hdmi_mode=30   576p   50 Hz  2x H
hdmi_mode=31   1080p  50 Hz
hdmi_mode=32   1080p  24 Hz
hdmi_mode=33   1080p  25 Hz
hdmi_mode=34   1080p  30 Hz
hdmi_mode=35   480p   60 Hz  4x
hdmi_mode=36   480p   60 Hz  4xH
hdmi_mode=37   576p   50 Hz  4x
hdmi_mode=38   576p   50 Hz  4x H
hdmi_mode=39   1080i  50 Hz  reduced blanking
hdmi_mode=40   1080i 100 Hz
hdmi_mode=41   720p  100 Hz
hdmi_mode=42   576p  100 Hz
hdmi_mode=43   576p  100 Hz  H
hdmi_mode=44   576i  100 Hz  
hdmi_mode=45   576i  100 Hz  H
hdmi_mode=46   1080i 120 Hz  
hdmi_mode=47   720p  120 Hz  
hdmi_mode=48   480p  120 Hz  
hdmi_mode=49   480p  120 Hz  H
hdmi_mode=50   480i  120 Hz  
hdmi_mode=51   480i  120 Hz  H
hdmi_mode=52   576p  200 Hz  
hdmi_mode=53   576p  200 Hz  H
hdmi_mode=54   576i  200 Hz  
hdmi_mode=55   576i  200 Hz  H
hdmi_mode=56   480p  240 Hz  
hdmi_mode=57   480p  240 Hz  H
hdmi_mode=58   480i  240 Hz  
hdmi_mode=59   480i  240 Hz  H

HDMI DMT – hdmi_group=2

Le mode DMT est conçu pour les moniteurs, les écrans de PC. Les modes entrelacés ne sont PAS proposés. Les résolutions proposées sont 640/720/800/1024/1280 lignes et des fréquences comme 60/70/75/80/85/120Hz

Le son n’est pas présent sur le mode DMT.

Dans le mode DMT, voici les résolutions possibles

hdmi_mode=1    640x350    85 Hz
hdmi_mode=2    640x400    85 Hz
hdmi_mode=3    720x400    85 Hz
hdmi_mode=4    640x480    60 Hz
hdmi_mode=5    640x480    72 Hz
hdmi_mode=6    640x480    75 Hz
hdmi_mode=7    640x480    85 Hz
hdmi_mode=8    800x600    56 Hz
hdmi_mode=9    800x600    60 Hz
hdmi_mode=10   800x600    72 Hz
hdmi_mode=11   800x600    75 Hz
hdmi_mode=12   800x600    85 Hz
hdmi_mode=13   800x600   120 Hz
hdmi_mode=14   848x480    60 Hz
hdmi_mode=15   1024x768   43 Hz  DO NOT USE
hdmi_mode=16   1024x768   60 Hz
hdmi_mode=17   1024x768   70 Hz
hdmi_mode=18   1024x768   75 Hz
hdmi_mode=19   1024x768   85 Hz
hdmi_mode=20   1024x768  120 Hz
hdmi_mode=21   1152x864   75 Hz
hdmi_mode=22   1280x768          Reduced blanking
hdmi_mode=23   1280x768   60 Hz
hdmi_mode=24   1280x768   75 Hz
hdmi_mode=25   1280x768   85 Hz
hdmi_mode=26   1280x768  120 Hz  Reduced blanking
hdmi_mode=27   1280x800          Reduced blanking
hdmi_mode=28   1280x800   60 Hz  
hdmi_mode=29   1280x800   75 Hz  
hdmi_mode=30   1280x800   85 Hz  
hdmi_mode=31   1280x800  120 Hz  Reduced blanking
hdmi_mode=32   1280x960   60 Hz  
hdmi_mode=33   1280x960   85 Hz  
hdmi_mode=34   1280x960  120 Hz  Reduced blanking
hdmi_mode=35   1280x1024  60 Hz  
hdmi_mode=36   1280x1024  75 Hz  
hdmi_mode=37   1280x1024  85 Hz  
hdmi_mode=38   1280x1024 120 Hz  Reduced blanking
hdmi_mode=39   1360x768   60 Hz  
hdmi_mode=40   1360x768  120 Hz  Reduced blanking
hdmi_mode=41   1400x1050         Reduced blanking
hdmi_mode=42   1400x1050  60 Hz  
hdmi_mode=43   1400x1050  75 Hz  
hdmi_mode=44   1400x1050  85 Hz  
hdmi_mode=45   1400x1050 120 Hz  Reduced blanking
hdmi_mode=46   1440x900          Reduced blanking
hdmi_mode=47   1440x900   60 Hz  
hdmi_mode=48   1440x900   75 Hz  
hdmi_mode=49   1440x900   85 Hz  
hdmi_mode=50   1440x900  120 Hz  Reduced blanking
hdmi_mode=51   1600x1200  60 Hz  
hdmi_mode=52   1600x1200  65 Hz  
hdmi_mode=53   1600x1200  70 Hz  
hdmi_mode=54   1600x1200  75 Hz  
hdmi_mode=55   1600x1200  85 Hz  
hdmi_mode=56   1600x1200 120 Hz  Reduced blanking
hdmi_mode=57   1680x1050         Reduced blanking
hdmi_mode=58   1680x1050  60 Hz  
hdmi_mode=59   1680x1050  75 Hz  
hdmi_mode=60   1680x1050  85 Hz  
hdmi_mode=61   1680x1050 120 Hz  Reduced blanking
hdmi_mode=62   1792x1344  60 Hz  
hdmi_mode=63   1792x1344  75 Hz  
hdmi_mode=64   1792x1344 120 Hz  Reduced blanking
hdmi_mode=65   1856x1392  60 Hz  
hdmi_mode=66   1856x1392  75 Hz  
hdmi_mode=67   1856x1392 120 Hz  Reduced blanking
hdmi_mode=68   1920x1200         Reduced blanking
hdmi_mode=69   1920x1200  60 Hz  
hdmi_mode=70   1920x1200  75 Hz  
hdmi_mode=71   1920x1200  85 Hz  
hdmi_mode=72   1920x1200 120 Hz  Reduced blanking
hdmi_mode=73   1920x1440  60 Hz  
hdmi_mode=74   1920x1440  75 Hz  
hdmi_mode=75   1920x1440 120 Hz  Reduced blanking
hdmi_mode=76   2560x1600         Reduced blanking
hdmi_mode=77   2560x1600  60 Hz  
hdmi_mode=78   2560x1600  75 Hz  
hdmi_mode=79   2560x1600  85 Hz  
hdmi_mode=80   2560x1600 120 Hz  Reduced blanking
hdmi_mode=81   1366x768   60 Hz  
hdmi_mode=82   1080p      60 Hz  
hdmi_mode=83   1600x900          Reduced blanking
hdmi_mode=84   2048x1152         Reduced blanking
hdmi_mode=85   720p       60 Hz  
hdmi_mode=86   1366x768          Reduced blanking

Sources & plus d’infos

http://elinux.org/RPiconfig

http://raspberrypi.stackexchange.com/questions/7332/what-is-the-difference-between-cea-and-dmt

https://www.raspberrypi.org/documentation/configuration/config-txt.md

Lire une clef USB depuis un Raspberry Pi

Etape 1 – Préparer le terrain

Ouvrir le terminal et saisir :

ls -l /dev/disk/by-uuid/

Etape 2 – Brancher la clef USB

Brancher la clef USB sur un des ports USB du Raspberry Pi.

Etape 3 – Identifier la clef

Dans le terminal, saisir à nouveau :

ls -l /dev/disk/by-uuid/

Une ligne a été ajoutée par rapport à l’étape 1. Elle indique l’identifiant de la clef. Généralement /dev/sda1.

Etape 4 – Créer le point de montage (la première fois seulement)

Dans le terminal :

sudo mkdir /media/usb
sudo chown -R pi:pi /media/usb

Etape 5 – Monter manuellement la clef USB

Dans le terminal :

sudo mount /dev/sda1 /media/usb -o uid=pi,gid=pi

Elle est maintenant présente dans le dossier /média de l’explorateur.

Activer IIS sur Windows 10

IIS n’est pas actif sur Windows 10 par défaut, mais il est présent. Voici la procédure pour l’activer.

Tape sur les touches « Windows + R » pour ouvrir la fenêtre « Exécuter »

Saisis « appwiz.cpl »

Clique sur « Activer ou désactiver des fonctionnalités Windows ».

Une fenêtre  « Fonctionnalités de Windows » s’ouvre.

Coche dans la liste « Internet Information Services ».

Si besoin, regarde dans l’arborescence pour cocher des options spécifiques. Puis OK.

Vérification

Ouvre le navigateur et entre « localhost » pour tester.

ANIMATE CC : contrôle des masques via le code

Avec Flash Pro, on pouvait placer un masque sur un calque, pour masquer un objet sur un second calque. Chaque objet avait son label et on pouvait appeler chaque élément directement dans le code de cette façon :

this.rectangle.width = 10;
this.objet_masque.width = 20;

Mais ça, c’était AVANT.

Avec Adobe Animate, on ne peux plus modifier le masque de cette façon.

Pour modifier le masque,

  1. je te recommande de ne placer qu’un seul objet par calque : 1 objet masqué et 1 masque;
  2. on accède au masque via l’objet masqué, de cette façon :
this.rectangle.mask.scaleX = 1.5;

Au passage, tu noteras, que .width n’est plus accessible et qu’il faut utiliser uniquement la propriété .scaleX.

ANIMATE CC : width et height ne sont plus accessibles

Pour tout élément créé dans l’interface d’Adobe Animate CC, il est devenu impossible d’interagir sur ses dimensions via les propriétés .width et .height, comme c’était possible avec Adobe Flash Pro.

Pour cela, seules les propriété .scaleX et .scaleY sont encore accessibles et modifiables dans le code JS.

Sachant que la valeur de départ, celle qui est définie sur scaleX et scaleY au démarrage de votre animation est 1.

Exemple : si tu veux une dimension à 50%, il faut attribuer la valeur .scaleX = 0.5

Attention, le point d’ancrage est au centre de l’objet.

SVN : Mise en place de Tortoise SVN

Tortoise SVN est un outil de gestion SVN client, qui tourne sur Windows, et s’utilise directement dans l’explorer.

Installer Tortoise SVN depuis leur site :

https://tortoisesvn.net/downloads.html

Une bonne pratique, que j’utilise et conseille, est de situer tous tes projets dans un seul dossier, comme par exemple D:/WS/

WS pour Working Space. D car c’est toujours mieux de séparer du disque dédié à l’OS.

CAS PRATIQUE D’EXEMPLE

Dans l’exporer Windows, clic droit sur le dossier D:/WS/MON_PROJET/

Il apparait 2 nouvelles lignes « Checkout » et « Tortoise SVN ».

  • Checkout sert à connecter ce dossier au repository.
  • TortoiseSVN sert à utiliser les commandes de Tortoise.

Cliquer sur « CHECKOUT »

Se connecter au repository svn://IP_SERVEUR/MON_PROJET

Une fois connecté, 2 nouvelles lignes apparaissent dans le menu contextuel du dossier : UPDATE et COMMIT

  • UPDATE permet de mettre à jour ses fichiers locaux du dossier selon la version du serveur
  • COMMIT permet d’envoyer ses fichiers du dossier sur le serveur

D’autres options apparaissent dans le sous-menu TortoiseSVN, comme :

Add to ignore list, qui permet de placer un fichier sur la « ignore list », c’est à dire qu’il ne sera jamais mis à jour. Pratique pour les fichiers de travail propres au PC local, comme les fichiers d’Eclipse par exemple.

UBUNTU / SVN : Créer un dépôt (ou repository)

Pré-requis : Installer un serveur SVN

CREER LE DOSSIER

En ligne de commande, passer en admin.

Créer le dossier :

svnadmin create /var/svn/MON_REPOSITORY

Editer le fichier config du repository

vi /var/svn/MON_REPOSITORY/conf/svnserve.conf

Trouver ces 3 lignes pour les décommenter et changer le paramètre en ceci :

anon-access = none
auth-access = write
password-db = passwd

Cela permet de protéger les accès. ATTENTION : pas d’espace devant !

GERER LES DROITS D’ACCES

Les accès sont gérés par le fichier /var/svn/MON_REPOSITORY/conf/passwd

Editer le fichier :

vi /var/svn/MON_REPOSITORY/conf/passwd

Les utilisateurs sont listés, ainsi que les mots de passe. Pour en ajouter ou enlever, il suffit d’éditer la liste, sur le modèle :

login = password

Exemple :

[users]
lechat = miaoumiaou
lechien = ouafouaf

Sauver, quitter.

UTILISATEUR SVN

Si tu as défini un utilisateur précis pour svn -c’est mieux-, il faut attribuer le dossier à cet utilisateur

chown svn:svn  /var/svn/MON_REPOSITORY/ -R

Voilà, c’est fonctionnel depuis Tortoise ou Eclipse SVN !

UBUNTU / SVN : Installer un serveur SVN

Voici un process étape par étape pour installer un serveur subversion (SVN) sur son propre serveur sur l’OS Ubuntu/Linux.

En ligne de commande, passez en root.

sudo su

Installer SVN :

aptitude install subversion

Créer le dossier qui servira de stockage

mkdir /var/svn

Créer le fichier de démarrage dans init.d/  car cet imbécile n’existe même pas :

vi /etc/init.d/svnserve

Et y copier tout ça :

#!/bin/sh

do_start () {
	svnserve -d -r /var/svn --pid-file /var/run/svnserve.pid
}
do_stop () {
	start-stop-daemon --stop --quiet --pidfile /var/run/svnserve.pid
}


case "$1" in
	start)
  		do_start
 		;;
 	stop)
 		do_stop
 		exit $?
 		;;
 	restart)
 		do_stop
		sleep 1s
 		do_start
 		;;
	reload|force-reload)
		echo "Error: argument '$1' not supported" >&2
		exit 3
		;;
	*)
		echo "Usage: $0 start|stop|restart" >&2
		exit 3
		;;
esac

 

Sauver et quitter.

Rendre ce fichier exécutable

chmod +x /etc/init.d/svnserve

Et l’ajouter au scripts de démarrage

update-rc.d svnserve defaults

Continuer sur Créer un dépôt

JAVASCRIPT : démarrer et arrêter un timer proprement

Voici un exemple complet de gestion d’un timer en javascript.

Dans l’exemple, le timer lance une méthode toutes les 1 seconde (1000 ms).

Il peut être utilisé dans Animate CC également pour un timer basé sur le temps et non la cadence du fps.

On a 2 méthodes clefs.

Démarrer le timer :

setInterval(methode, delai)

Arrêter le timer souhaité :

clearInterval(methode)
var compteur = 0;
var intervalle = 1000;	// en ms

var tickMethod = function(){
     if(compteur <= 10) {
          compteur++;
          // le code que tu veux mon gars
     } else {
          clearInterval(tickMethod);
     }
};

setInterval(tickMethod, intervalle);

 

 

WINDOWS 10 : auto login

Touche Win+R, entrer et valider :

netplwiz

Choisir le compte utilisateur souhaité.

Décocher « les utilisateurs doivent entrer un nom d’utilisateur et un mot de passe… etc.« .

Valider avec OK

Une fenêtre s’affiche pour demander le mot de passe de cet utilisateur + confirmation. Entrer et valider.

Après cette opération, le PC va se connecter automatiquement au compte au démarrage. Mais pas après avoir verrouillé le PC.