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

De wikilab
 
(2 versions intermédiaires par le même utilisateur non affichées)
Ligne 108 : Ligne 108 :
 
ArduinoSetPort-nppexec.txt
 
ArduinoSetPort-nppexec.txt
  
<pre>//This NPP_EXEC script sets the com port of your arduino IDE
+
<pre>set arduino_path = c:\arduino\arduino_debug
//By Josh Miele -- June 27, 2016
+
inputbox &quot;Please enter the COM port of your Arduino (e.g., com5):&quot;
//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)
 
cmd /c &quot;$(arduino_path)&quot; --port $(input)
 
npp_console 0  //hide the console</pre>
 
npp_console 0  //hide the console</pre>
 
ArduinoUpload-nppexec.txt
 
ArduinoUpload-nppexec.txt
  
<pre>//This Npp_Exec script compiles and uploads the current arduino sketch in Npp
+
<pre>set arduino_output = &quot;c:\temp\arduino messages.txt&quot;
//By Josh Miele -- June 27, 2016
+
set arduino_path = c:\arduino\arduino_debug
//The Blind Arduino Project
+
npp_save
//http://blarbl.blogspot.com
+
cmd /c &quot;$(arduino_path)&quot; --upload $(full_current_path)</pre>
 
 
//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 ===
 
=== liens et ressources ===
  
Ligne 141 : Ligne 124 :
 
== IV. 3ème solution : Sloeber ==
 
== 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].
+
[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 est parfaitement compatible avec [https://www.nvda-fr.org/ NVDA].
 +
 
 +
Remarque : <code>Eclipse</code> est une solution très (trop ?) complète qui permet de développer des programmes dans de nombreux langages de programmation. Prendre en main <code>Eclipse</code> peut sembler fastidieux mais permettra à l'utilisateur de disposer d'un environnement de programmation accessible non seulement pour ''Arduino'' mais aussi pour ''Python'', ''C++'', ''Java'', etc.
  
 
=== liens et ressources ===
 
=== liens et ressources ===
Ligne 149 : Ligne 134 :
 
== V. conclusion ==
 
== V. conclusion ==
  
'''à completer...'''
+
Cet article présente de manière non exhaustive des solutions plus ou moins complexes permettant à des personnes malvoyantes de pouvoir palier au manque d’accessibilité de l'''IDE Arduino''. N'hésitez pas à contribuer à cette documentation en nous faisant part de vos solutions pour utiliser ''Arduino''.
 +
 
 +
== VI annexes ==
  
 
=== pistes de développement pour rendre accessibles aux malvoyants : ===
 
=== pistes de développement pour rendre accessibles aux malvoyants : ===
Ligne 156 : Ligne 143 :
 
* la carte de prototypage ''Arduino Uno'' (concevoir un shield braille par exemple)
 
* la carte de prototypage ''Arduino Uno'' (concevoir un shield braille par exemple)
 
* [https://create.arduino.cc/editor Aduino Web Editor]
 
* [https://create.arduino.cc/editor Aduino Web Editor]
 +
* rédiger une page dédiée à ''Eclipse'' et notamment aux raccourcis clavier.
  
 
=== liens utiles ===
 
=== liens utiles ===
Ligne 163 : Ligne 151 :
 
* [https://notepad-plus-plus.org/ Notepad++] : éditeur de texte pour ''Windows''.
 
* [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.
 
* [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.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.
 
* [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.
 +
 +
=== quelques raccourcis Eclipse utiles ===
 +
 +
{|
 +
!align="center" width="16%"| raccourci
 +
!width="15%"| commande
 +
|-
 +
|align="center"| <code>Alt</code> + <code>Shift</code> + <code>Q</code>, <code>S</code>
 +
| vue problème
 +
|-
 +
|align="center"| <code>Alt</code> + <code>Shift</code> + <code>Q</code>, <code>O</code>
 +
| quick outline
 +
|-
 +
|align="center"| <code>Alt</code> + <code>Shift</code> + <code>Q</code>, <code>Q</code>
 +
| quickview sous forme de liste
 +
|-
 +
|align="center"| <code>Alt</code> + <code>Shift</code> + <code>W</code>, <code>O</code>
 +
| ouvre outline, structure de résumé
 +
|-
 +
|align="center"| <code>Alt</code> + <code>Shift</code> + <code>W</code>, <code>Q</code>
 +
| affiche une liste de que ce l'on peut ouvrir. liste filtrable
 +
|-
 +
|align="center"| <code>Alt</code> + <code>Shift</code> + <code>W</code>, <code>P</code>
 +
| affiche le package explorer (pas commode a utiliser)
 +
|-
 +
|align="center"| <code>Alt</code> + <code>Flèche Haut</code>
 +
| déplacement d'une ligne vers le haut
 +
|-
 +
|align="center"| <code>Alt</code> + <code>Flèche Bas</code>
 +
| déplacement d'une ligne vers le bas
 +
|-
 +
|align="center"| <code>Alt</code> + <code>Flèche Gauche</code>
 +
| remonter à l'affichage précédent
 +
|-
 +
|align="center"| <code>Alt</code> + <code>Flèche Droite</code>
 +
| revenir à l'affichage précédent
 +
|-
 +
|align="center"| <code>Tab</code>
 +
| indenter le bloc sélection
 +
|-
 +
|align="center"| <code>Ctrl</code> + <code>F6</code>
 +
| switch editor : permet de passer d'un onglet d'édition à un autre
 +
|-
 +
|align="center"| <code>Ctrl</code> + <code>F7</code>
 +
| switch vuecontrole
 +
|-
 +
|align="center"| <code>Ctrl</code> + <code>F8</code>
 +
| switch perspective
 +
|-
 +
|align="center"| <code>F3</code>
 +
| Poser le curseur sur le nom d'un module ou d'un identifiant quelconque, presser la touche <code>F3</code> pour arriver sur son identifiant / sa définition. On peut pratiquer ainsi de module en module et projet en projet ou bien en local. Le fil d'ariane est conservé.
 +
|-
 +
|align="center"| <code>F12</code>
 +
| aller dans la fenêtre de l'éditeur
 +
|-
 +
|align="center"| <code>Ctrl</code> + <code>P</code>
 +
| aller dans l'explorateur de fichiers d'ECLIPSE
 +
|-
 +
|align="center"| <code>Alt</code> + <code>-</code>
 +
| ouvre le menu contextuel de la vue en cours permet par exemple de fermer tous les onglets autre que celui du code en cours de travail
 +
|-
 +
|align="center"| <code>Ctrl</code> + <code>D</code>
 +
| supprime la ligne en cours
 +
|-
 +
|align="center"| <code>Shift</code> + <code>Tab</code>
 +
| désindenter le bloc sélection
 +
|-
 +
|align="center"| <code>Ctrl</code> + <code>Espace</code>
 +
| à utiliser dans la fenêtre d’édition, lorsque l'on tape du code avec le nom d'un module, si le sous-menu de proposition de méthode ne s'ouvre pas
 +
|-
 +
|align="center"| <code>Tab</code>
 +
| rentrer dans le sous-menu
 +
|}

Version actuelle datée du 16 janvier 2020 à 10:17

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

set arduino_path = c:\arduino\arduino_debug
inputbox "Please enter the COM port of your Arduino (e.g., com5):"
cmd /c "$(arduino_path)" --port $(input)
npp_console 0  //hide the console

ArduinoUpload-nppexec.txt

set arduino_output = "c:\temp\arduino messages.txt"
set arduino_path = c:\arduino\arduino_debug
npp_save
cmd /c "$(arduino_path)" --upload $(full_current_path)

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 est parfaitement compatible avec NVDA.

Remarque : Eclipse est une solution très (trop ?) complète qui permet de développer des programmes dans de nombreux langages de programmation. Prendre en main Eclipse peut sembler fastidieux mais permettra à l'utilisateur de disposer d'un environnement de programmation accessible non seulement pour Arduino mais aussi pour Python, C++, Java, etc.

liens et ressources

V. conclusion

Cet article présente de manière non exhaustive des solutions plus ou moins complexes permettant à des personnes malvoyantes de pouvoir palier au manque d’accessibilité de l'IDE Arduino. N'hésitez pas à contribuer à cette documentation en nous faisant part de vos solutions pour utiliser Arduino.

VI annexes

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
  • rédiger une page dédiée à Eclipse et notamment aux raccourcis clavier.

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 : 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.

quelques raccourcis Eclipse utiles

raccourci commande
Alt + Shift + Q, S vue problème
Alt + Shift + Q, O quick outline
Alt + Shift + Q, Q quickview sous forme de liste
Alt + Shift + W, O ouvre outline, structure de résumé
Alt + Shift + W, Q affiche une liste de que ce l'on peut ouvrir. liste filtrable
Alt + Shift + W, P affiche le package explorer (pas commode a utiliser)
Alt + Flèche Haut déplacement d'une ligne vers le haut
Alt + Flèche Bas déplacement d'une ligne vers le bas
Alt + Flèche Gauche remonter à l'affichage précédent
Alt + Flèche Droite revenir à l'affichage précédent
Tab indenter le bloc sélection
Ctrl + F6 switch editor : permet de passer d'un onglet d'édition à un autre
Ctrl + F7 switch vuecontrole
Ctrl + F8 switch perspective
F3 Poser le curseur sur le nom d'un module ou d'un identifiant quelconque, presser la touche F3 pour arriver sur son identifiant / sa définition. On peut pratiquer ainsi de module en module et projet en projet ou bien en local. Le fil d'ariane est conservé.
F12 aller dans la fenêtre de l'éditeur
Ctrl + P aller dans l'explorateur de fichiers d'ECLIPSE
Alt + - ouvre le menu contextuel de la vue en cours permet par exemple de fermer tous les onglets autre que celui du code en cours de travail
Ctrl + D supprime la ligne en cours
Shift + Tab désindenter le bloc sélection
Ctrl + Espace à utiliser dans la fenêtre d’édition, lorsque l'on tape du code avec le nom d'un module, si le sous-menu de proposition de méthode ne s'ouvre pas
Tab rentrer dans le sous-menu