Le chapitre 19 dédié au capteur ultrasonique et à un bouton poussoir est un bon exemple. Il est très concis, avec ses 13 pages et 8 exercices. Mais à ce stade, nous maîtrisons déjà Eclipse, Java, le GPIO, Python et le Pi4j (la librairie Java pour le Raspberry Pi) et les tests.
Extrait de la fin du chapitre et sous-titre « La méthode est bonne »:
Cela fait déjà quelques chapitres que nous avons utilisé la même méthode :
* Déposer notre composant sur une planche à pain après avoir choisi le ou les broches GPIO ;
* Écrire un script Python pour vérifier qu'il fonctionne ;
* Écrire une classe Java en commençant par simuler les parties dédiées au Raspberry Pi afin de la tester sous Eclipse et Windows ;
* Finaliser la partie Raspberry Pi, la déposer sur la cible et la tester.
Remarquez comment cette procédure nous facilite la tâche ! C’est vraiment rapide, solide et efficace. Et que du plaisir.
Schéma Fritzing du chapitre (l’outil est aussi expliqué et le lecteur pourrait l’installer):
Et deux exemples d’exercices, tout à la fin:
4. Améliorer encore la classe Bouton pour définir par exemple les intervalles de temps entre les pressions, des pressions courtes, longues, voir continues ou encore des « doubles clics » ! Les méthodes isHigh() et isLow() de la classe GpioPinDigitalInput doivent être correctement utilisées et vérifiées.5. Tester l’exercice précédent avec une classe Reboot. Par une double pression, répondre par un signal du buzzer et redémarrer le Raspberry Pi si une pression quelconque à lieu dans les 5 secondes.
Pour la solution des exercices, nous ne donnerons parfois que des pistes, mais claires comme le 5 ici:
C'est une utilisation direct de l'exercice 4.
Nous utiliserons le buzzer du chapitre 17 et des exercices 7 ou suivants.
Le sudo reboot de la méthode RebootHandler de la classe RaspWebServer du chapitre 22 à venir passera très bien.
C’est chaque fois une réutilisation du matériel précédent, et encore pour l’exercice 4:
C'est une extension des exercices 2 et 3 de ce chapitre 19.
Nous pourrions définir les fonctionnalités dans un Thread (chapitre 12).
Un état pourrait être défini avec des valeurs indiquant par exemple 4 valeurs comme :
clic court, double clic court, pression longue, deux pressions longues, voir bouton restant pressé pour plus longtemps que x secondes.