Projets:Accessibilite Arduino

De wikilab

Accessibilité Arduino

I. introduction

le constat

L'IDE Arduino est complètement inaccessible pour les malvoyants. Il est très difficile de personnaliser l'affichage (le contraste par exemple) et cet IDE ne respecte pas les standards qui permettent à des outils de transcription vocale (tels que NVDA) de rendre accessible l'utilisation de Arduino aux malvoyants.

L'objet de cette article est d'explorer des pistes de solution pour rendre accessible aux malvoyants l'écriture, le débogage et le téléversement de scripts Arduino.

cahier des charges

Afin de réduire le champs de nos investigations et de réutiliser au maximum des outils et un environnement familier, nous nous sommes fixés quelques contraintes :

  • utiliser le système d'exploitation Windows ;
  • utiliser l'éditeur texte Notepad++ ou l'IDE Eclipse ;
  • utiliser le lecteur d'écran NVDA.

II. premier test : Arduino-Makefile

Arduino-Makefile est un ensemble de commandes qui permettent l’interaction avec Arduino directement en ligne de commande.

avec Ubuntu

Avant de se lancer dans le test de cet outil sur Windows, nous prenons dix minutes pour le tester dans un environnement GNU/Linux Ubuntu.

installation

Il suffit d'installer les paquets arduino-mk et python-serial.

utilisation : Make it blink!

Placer dans chaque projet Arduino un fichier Makefile contenant au minimum :

BOARD_TAG = uno
include /usr/share/arduino/Arduino.mk

Dans un terminal, lancer la commande make pour compiler le sketch du projet et la commande make upload pour téléverser le programme compilé vers la carte Arduino.

avec Windows

installation de Cygwin et des paquets nécessaires

Installer Cygwin. Durant l'installation, sélectionner les librairies make, perl, python2, python27-pip (et screen).

Note: se faire aider de préférence par un voyant pour l'installation de Cygwin, car l'IHM n'est pas très accessible !

installation de pySerial

Lancer Cygwin en tant qu'administrateur. Dans le terminal qui s'affiche, lancer la commande pip2 install pyserial.

installation de Arduino-Makefile

Télécharger une archive zip de Arduino-Makefile depuis Github. Décompresser cette archive dans le dossier /home/$ de l'utilisateur dans l'arborescence de Cygwin et le renomer en supprimant -master

Exemple : Nous décompressons l'archive Arduino-Makefile-master.zip dans le dossier C:\cygwin\home\Francois depuis l'explorateur Windows. Puis nous renommons le dossier C:\cygwin\home\Francois\Arduino-Makefile-master en C:\cygwin\home\Francois\Arduino-Makefile.

Remarque : le dossier C:\cygwin sous Windows est nommé / dans Cygwin. Ainsi, le dossier C:\cygwin\home\Francois\Arduino-Makefile est accessible depuis le terminal Cygwin :

$ cd /home/Francois/Arduino-Makefile

lier l'executable Arduino sous Windows et Cygwin

On considère que l'IDE Arduino est déjà installé.

Pour résoudre le problème des caractères spéciaux dans les chemins, dans Windows, lancer C:\Windows\System32\cmd.exe en tant qu'administrateur, puis lancer la commande :

mklink /d C:\Arduino "C:\Program Files (x86)\Arduino"

utilisation

Dans chaque projet arduino, placer un fichier nommé Makefile (sans extensions) contenant :

BOARD_TAG=uno
ARDUINO_DIR=C:/Arduino
MONITOR_PORT="com4"
ARCHITECTURE=avr
include /home/Francois/Arduino-Makefile/Arduino.mk

Dans le fichier précédent, remplacer Francois par l'utilisateur correspondant à votre configuration.

Dans l'explorateur Cygwin, se placer dans le dossier du projet Arduino, par exemple :

$ cd /home/Francois/Arduino/blink/

et lancer la commande make pour compiler le sketch du projet ou la commande make upload pour compiler et téléverser le programme compilé vers la carte Arduino.

Remarque : le port com4 sous Windows apparait comme le device /dev/ttyS3 sous Cygwin.

Remarque : pour connaître le numéro du port com sous Windows : - Faire un clic droit sur Ce PC sur le bureau, aller dans Gérer. - Une fenètre s'ouvre. - Dans l'onglet vertical gauche, aller sous : Gestion de l'ordinateur (local) / Outils système / Gestionnaire de périphériques. - Dans l'arborescence de la partie droite, aller sur Ports (COM et LPT). - Le port com de l'Arduino doit apparaître dans la liste affichée à l'écran (dans la partie droite de cette même fenêtre).

améliorations à prévoir

  • Écrire un Makefile avec en commentaires l'ensemble des options possibles et leur explication en français.
  • Conception d'une IHM avec wxpython pour remplacer les opérations en ligne de commande.
  • Créer un lien symbolique depuis le répertoire contenant les projets Arduino (sous Windowns) vers /home/Francois/arduino (sous Cygwin).

liens et ressources

III. 2ème test : Notepad++

Le principe de ce deuxième test est d'utiliser l'éditeur Notepad++ pour écrire un sketch Arduino en disposant de scripts permettant la compilation et le téléversement vers Arduino sans utiliser l'IDE Arduino.

Pour cela, on utilise NppExec qui est un plugin qui ajoute à l'éditeur Notepad++ une console permettant d’exécuter des programmes directement ou de lancer des scripts préenregistrés.

ATTENTION : remplacer les scripts suivants par ceux modifiés sur le pc de François !

ArduinoSetPort-nppexec.txt

//This NPP_EXEC script sets the com port of your arduino IDE
//By Josh Miele -- June 27, 2016
//The Blind Arduino Project
//http://blarbl.blogspot.com
set arduino_path = c:\arduino\arduino_debug  //the path to your Arduino IDE.
//put up a dialog box requesting com port name
inputbox "Please enter the COM port of your Arduino (e.g., com5):"  //gets com port value
//use result  to set port value  doesn't verify
cmd /c "$(arduino_path)" --port $(input)
npp_console 0  //hide the console

ArduinoUpload-nppexec.txt

//This Npp_Exec script compiles and uploads the current arduino sketch in Npp
//By Josh Miele -- June 27, 2016
//The Blind Arduino Project
//http://blarbl.blogspot.com

//Set where the output goes. Make sure you have write privileges
set arduino_output = "c:\temp\arduino messages.txt"  
//Set location of arduino executable.
set arduino_path = c:\arduino\arduino_debug  
npp_save  //save current file before uploading
//Compile and upload sketch in current NPP window and send stdOut and stdErr to arduino_output
cmd /c "$(arduino_path)" --upload $(full_current_path)>$(arduino_output) 2>&1
npp_console 0  //hide the console
//show the results of the compile/upload in NPP window
npp_open $(arduino_output)   

liens et ressources

IV. 3ème solution : Sloeber

Sloeber propose un bundle (un ensemble de logiciels contenus dans un seul paquet) incluant notamment Eclipse CDT et Arduino eclipse IDE. Sloeber permet, en une seule installation, de disposer d'un environnement de développement complet pour Arduino. Étant basée sur Eclipse CDT, cette solution semble parfaitement compatible avec NVDA.

liens et ressources

V. conclusion

à completer...

pistes de développement pour rendre accessibles aux malvoyants :

  • les outils de développement logiciel orientés python
  • la carte de prototypage Arduino Uno (concevoir un shield braille par exemple)
  • Aduino Web Editor

liens utiles

  • Arduino-Makefile : A Makefile for Arduino Sketches.
  • NppExec : plugin pour Notepad++.
  • Notepad++ : éditeur de texte pour Windows.
  • AccessDV Linux : distribution GNU/Linux pour proposant un ensemble d'outils adaptés pour les malvoyants.
  • [NVDA](NVDA : NonVisual desktop Access (NVDA) est une revue d'écran gratuite et opensource pour le système d'exploitation Microsoft Windows.
  • Eclipse est un projet, décliné et organisé en un ensemble de sous-projets de développements logiciels, de la fondation Eclipse visant à développer un environnement de production de logiciels libre qui soit extensible, universel et polyvalent, en s'appuyant principalement sur Java.