Ceci est une ancienne révision du document !
Table des matières
Présentation
En cette année 2020, nous souhaitons à nouveau présenter un dispositif sonore piloté par les données transmises par une plante. Cette fois-ci, nous souhaitons utiliser deux nouvelles technologies : du côté matériel, un Floranion Shield couplé à un FRDM-KL25Z, du côté logiciel un programme en SuperCollider.
Préparation
Afin de documenter l'ensemble du processus, je décide de partir d'une installation neuve de Debian 9.
Premièrement, je souhaite installer SuperCollider, à l'aide de la commande suivante :
sudo apt install supercollider
Je veux ensuite faire fonctionner le capteur. En l'ayant branché, celui-ci s'allume, mais il faut le configurer pour qu'il accepte le Floranion Shield. Il faut brancher le FRDM-KL25Z sur le PC en maintenant le bouton Reset, pour avoir accès au Bootloader, et copier le fichier de mise-à-jour dans celui-ci. Plus d'infos ici :
https://os.mbed.com/handbook/FirmwareFRDM-KL25Z
Je regrette qu'il faille s'inscrire sur le site pour réaliser le projet…
https://os.mbed.com/users/lasmahei/code/floranionSciShield
Le lien ci-dessus permet, après avoir ajouté le FRDM-KL25Z à la liste des compilateurs, de compiler et récupérer un fichier .bin correspondant au paramétrage du Shield pour cette carte ARM précise, qu'il faut rajouter dans le dossier MBED, disponible après avoir rebranché le FRDM-KL25Z. J'appuie ensuite sur le bouton Reset pour mettre tout ça à jour.
Je tape la commande
cat /dev/ttyACM0
pour afficher les valeurs du capteur à l'écran.
Si cela ne fonctionne pas, il est possible que la féquence de lecture du port série soit la mauvaise. Je peux vérifier celle-ci avec la commande :
stty -F /dev/ttyACM0 <code> Si la valeur affichée après speed est différente de 115200, je tape la commande suivante pour ajuster le bitrate de réception des capteurs à 115200 bauds (sans quoi je n'aurai pas de retour) : <code> stty -F /dev/ttyACM0 115200
Très bien ! Il me faut maintenant trouver comment envoyer données vers SuperCollider.
En fait, il existe déjà une classe pour accéder aux ports série : SerialPort;.
SerialPort.devices
me renvoie une liste des ports disponibles. /dev/ttyACM0 apparaît bien.
Je lance SuperCollider via la commande
sudo scide
En effet, sans les droits d'utilisateur, je n'obtiens pas de données lors de la lecture du port…