Différences entre versions de « Projets:Accessibilite Arduino »

De wikilab
(Created page with "{{subst:Projet}}")
 
Ligne 1 : Ligne 1 :
== Description du projet ==
+
= Accessibilité Arduino =
  
== Cahier des charges ==
+
== I. introduction ==
  
== Analyse de l'existant ==
+
=== le constat ===
  
== Equipe (Porteur de projet et contributeurs) ==
+
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.
  
* Porteurs et réalisateurs du projet :
+
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''.
* Animateur (coordinateur du projet)
 
* Fabmanager référent
 
* Responsable de documentation
 
  
== Matériel nécessaire ==
+
=== cahier des charges ===
  
==Outils nécessaires==
+
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 :
  
==Coût==
+
* utiliser le système d'exploitation ''Windows'' ;
 +
* utiliser l'éditeur texte ''Notepad++'' ou l'''IDE Eclipse'' ;
 +
* utiliser le lecteur d'écran ''NVDA''.
  
==Délai estimé==
+
== II. premier test : Arduino-Makefile ==
  
==Fichiers source==
+
[https://github.com/sudar/Arduino-Makefile Arduino-Makefile] est un ensemble de commandes qui permettent l’interaction avec ''Arduino'' directement en ligne de commande.
  
==Etapes de fabrication pas à pas==
+
=== avec Ubuntu ===
  
==Durée de fabrication du prototype final==
+
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''.
  
==Journal de bord==
+
==== installation ====
===Date: xx/xx/2020===
 
  
 +
Il suffit d'installer les paquets <code>arduino-mk</code> et <code>python-serial</code>.
  
[[Category:Projets]]
+
==== utilisation : Make it blink! ====
 +
 
 +
Placer dans chaque projet Arduino un fichier <code>Makefile</code> contenant au minimum :
 +
 
 +
<pre>BOARD_TAG = uno
 +
include /usr/share/arduino/Arduino.mk</pre>
 +
Dans un terminal, lancer la commande <code>make</code> pour compiler le sketch du projet et la commande <code>make upload</code> pour téléverser le programme compilé vers la carte Arduino.
 +
 
 +
=== avec Windows ===
 +
 
 +
==== installation de Cygwin et des paquets nécessaires ====
 +
 
 +
Installer [https://cygwin.com/install.html Cygwin]. Durant l'installation, sélectionner les librairies <code>make</code>, <code>perl</code>, <code>python2</code>, <code>python27-pip</code> (et <code>screen</code>).
 +
 
 +
Note: se faire aider de préférence par un voyant pour l'installation de <code>Cygwin</code>, 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 <code>pip2 install pyserial</code>.
 +
 
 +
==== installation de Arduino-Makefile ====
 +
 
 +
Télécharger une [https://github.com/sudar/Arduino-Makefile/archive/master.zip archive zip de Arduino-Makefile] depuis Github. Décompresser cette archive dans le dossier <code>/home/$</code> de l'utilisateur dans l'arborescence de ''Cygwin'' et le renomer en supprimant <code>-master</code>
 +
 
 +
Exemple : Nous décompressons l'archive <code>Arduino-Makefile-master.zip</code> dans le dossier <code>C:\cygwin\home\Francois</code> depuis l'explorateur Windows. Puis nous renommons le dossier <code>C:\cygwin\home\Francois\Arduino-Makefile-master</code> en <code>C:\cygwin\home\Francois\Arduino-Makefile</code>.
 +
 
 +
Remarque : le dossier <code>C:\cygwin</code> sous ''Windows'' est nommé <code>/</code> dans ''Cygwin''. Ainsi, le dossier <code>C:\cygwin\home\Francois\Arduino-Makefile</code> est accessible depuis le terminal Cygwin :
 +
 
 +
<pre>$ cd /home/Francois/Arduino-Makefile</pre>
 +
==== lier l'executable Arduino sous Windows et Cygwin ====
 +
 
 +
On considère que l'[https://www.arduino.cc/en/Main/Software IDE Arduino] est déjà installé.
 +
 
 +
Pour résoudre le problème des caractères spéciaux dans les chemins, dans Windows, lancer <code>C:\Windows\System32\cmd.exe</code> en tant qu'administrateur, puis lancer la commande :
 +
 
 +
<pre>mklink /d C:\Arduino &quot;C:\Program Files (x86)\Arduino&quot;</pre>
 +
==== utilisation ====
 +
 
 +
Dans chaque projet arduino, placer un fichier nommé <code>Makefile</code> (sans extensions) contenant :
 +
 
 +
<pre>BOARD_TAG=uno
 +
ARDUINO_DIR=C:/Arduino
 +
MONITOR_PORT=&quot;com4&quot;
 +
ARCHITECTURE=avr
 +
include /home/Francois/Arduino-Makefile/Arduino.mk</pre>
 +
Dans le fichier précédent, remplacer <code>Francois</code> par l'utilisateur correspondant à votre configuration.
 +
 
 +
Dans l'explorateur ''Cygwin'', se placer dans le dossier du projet Arduino, par exemple :
 +
 
 +
<pre>$ cd /home/Francois/Arduino/blink/</pre>
 +
et lancer la commande <code>make</code> pour compiler le sketch du projet ou la commande <code>make upload</code> pour compiler et téléverser le programme compilé vers la carte Arduino.
 +
 
 +
Remarque : le port <code>com4</code> sous Windows apparait comme le device <code>/dev/ttyS3</code> sous Cygwin.
 +
 
 +
Remarque : pour connaître le numéro du port com sous Windows : - Faire un clic droit sur <code>Ce PC</code> sur le bureau, aller dans <code>Gérer</code>. - Une fenètre s'ouvre. - Dans l'onglet vertical gauche, aller sous : <code>Gestion de l'ordinateur (local)</code> / <code>Outils système</code> / <code>Gestionnaire de périphériques</code>. - Dans l'arborescence de la partie droite, aller sur <code>Ports (COM et LPT)</code>. - 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 <code>Makefile</code> avec en commentaires l'ensemble des options possibles et leur explication en français.
 +
* Conception d'une IHM avec <code>wxpython</code> 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 <code>/home/Francois/arduino</code> (sous Cygwin).
 +
 
 +
=== liens et ressources ===
 +
 
 +
* [https://hardwarefun.com/tutorials/compiling-arduino-sketches-using-makefile Compiling Arduino sketches using Makefile].
 +
* [https://mjoldfield.com/atelier/2009/02/arduino-cli.html Arduino from the command line]
 +
* [http://www.mertl-research.at/ceonwiki/doku.php?id=coding:arduino:devenv_build_process The Arduino build workflow using Arduino-Makefile]
 +
* [https://www.florentflament.com/blog/arduino-hello-world-without-ide.html Arduino Hello World without IDE] ;
 +
 
 +
== III. 2ème test : Notepad++ ==
 +
 
 +
Le principe de ce deuxième test est d'utiliser l'éditeur <code>Notepad++</code> 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 [https://sourceforge.net/projects/npp-plugins/files/NppExec/ NppExec] qui est un ''plugin'' qui ajoute à l'éditeur [https://notepad-plus-plus.org/ 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
 +
 
 +
<pre>//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 &quot;Please enter the COM port of your Arduino (e.g., com5):&quot;  //gets com port value
 +
//use result  to set port value  doesn't verify
 +
cmd /c &quot;$(arduino_path)&quot; --port $(input)
 +
npp_console 0  //hide the console</pre>
 +
ArduinoUpload-nppexec.txt
 +
 
 +
<pre>//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 = &quot;c:\temp\arduino messages.txt&quot; 
 +
//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 &quot;$(arduino_path)&quot; --upload $(full_current_path)&gt;$(arduino_output) 2&gt;&amp;1
 +
npp_console 0  //hide the console
 +
//show the results of the compile/upload in NPP window
 +
npp_open $(arduino_output)  </pre>
 +
=== liens et ressources ===
 +
 
 +
* [http://blarbl.blogspot.com/2016/07/how-to-compile-and-upload-arduino.html How to Compile and Upload Arduino Sketches with Notepad++, Simple, Convenient, Accessible] sur le site [http://blarbl.blogspot.com/ Blind Arduino Blog]
 +
 
 +
== IV. 3ème solution : Sloeber ==
 +
 
 +
[http://eclipse.baeyens.it/ Sloeber] propose un ''bundle'' (un ensemble de logiciels contenus dans un seul paquet) incluant notamment <code>Eclipse CDT</code> et <code>Arduino eclipse IDE</code>. Sloeber permet, en une seule installation, de disposer d'un environnement de développement complet pour Arduino. Étant basée sur <code>Eclipse CDT</code>, cette solution semble parfaitement compatible avec [https://www.nvda-fr.org/ NVDA].
 +
 
 +
=== liens et ressources ===
 +
 
 +
* [https://www.eclipse.org/community/eclipse_newsletter/2017/april/article4.php Program Your Arduino Like a Pro with the Eclipse C/C++ IDE]
 +
 
 +
== 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)
 +
* [https://create.arduino.cc/editor Aduino Web Editor]
 +
 
 +
=== liens utiles ===
 +
 
 +
* [https://github.com/sudar/Arduino-Makefile Arduino-Makefile] : A Makefile for Arduino Sketches.
 +
* [https://sourceforge.net/projects/npp-plugins/files/NppExec/ NppExec] : plugin pour Notepad++.
 +
* [https://notepad-plus-plus.org/ Notepad++] : éditeur de texte pour ''Windows''.
 +
* [https://accessdvlinux.fr/ AccessDV Linux] : distribution GNU/Linux pour proposant un ensemble d'outils adaptés pour les malvoyants.
 +
* [NVDA]([https://www.nvda-fr.org/ NVDA] : NonVisual desktop Access (NVDA) est une revue d'écran gratuite et opensource pour le système d'exploitation Microsoft Windows.
 +
* [https://www.eclipse.org/ 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.

Version du 15 janvier 2020 à 13:08

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.