Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Scratch et Raspberry Pi
  3. Concevoir une voiture
Extrait - Scratch et Raspberry Pi Projets maker pour s'initier à l'électronique et à la robotique (2e édition)
Extraits du livre
Scratch et Raspberry Pi Projets maker pour s'initier à l'électronique et à la robotique (2e édition)
5 avis
Revenir à la page d'achat du livre

Concevoir une voiture

Introduction

La réalisation de projets permet de découvrir les possibilités de Scratch 3 sur le Raspberry Pi 4, y compris avec les extensions Arduino, ESP8266 ou Playground Express.

Quand ces notions sont acquises, il est possible de se lancer sur un projet plus conséquent comme celui d’une voiture pilotée par un programme en Scratch. À partir du modèle proposé dans ce chapitre, des évolutions sont possibles pour augmenter les possibilités du véhicule.

On peut envisager de détecter un objet situé devant la voiture avec un capteur à ultrasons. La voiture peut s’arrêter automatiquement ou enclencher un programme d’évitement.

Les GPIO disponibles autorisent l’ajout de détecteurs, par exemple des détecteurs infrarouges pour suivre un tracé sur le sol. On a alors un véhicule suiveur de piste.

Bien d’autres possibilités sont accessibles, il faut simplement laisser travailler son imagination. Tout n’est pas obligatoirement réalisable avec Scratch 3, mais ce projet est un tremplin vers de nouvelles réalisations.

Ce projet s’adresse à des utilisateurs capables de mettre en œuvre les outils vus précédemment, mais aussi de gérer les raccordements électriques des différents modules.

Principe de la voiture

images/19LF09.png

Le véhicule est constitué d’un châssis comportant à l’avant deux roues entraînées par deux moteurs. À l’arrière une "roue folle" qui peut être une petite roulette librement orientable ou une bille permettant les déplacements du robot.

Le Raspberry Pi 4 commande les roues via une interface de puissance. Il reçoit ses ordres via un clavier (touches flèches) ou depuis un PC, une tablette ou un smartphone (interface graphique) connectés à distance.

Les ordres sont simples :

  • En avant : les deux roues tournent vers l’avant.

  • En arrière : les deux roues tournent vers l’arrière.

  • À droite : la roue gauche tourne vers l’avant, la droite est à l’arrêt.

  • À gauche : la roue droite tourne vers l’avant, la gauche est à l’arrêt.

images/19LF10.png

Il serait possible d’ajouter d’autres possibilités comme le pivotement sur place ou la rotation vers l’arrière :

  • Pivoter à droite : la roue gauche tourne vers l’avant, la droite tourne vers l’arrière.

  • Pivoter à gauche : la roue droite tourne vers l’avant, la gauche tourne vers l’arrière.

  • Reculer à droite : la roue droite tourne vers l’arrière, la gauche est à l’arrêt....

Les composants du véhicule

1. Le châssis

C’est la partie de la voiture qui est chargée de supporter tous les éléments : moteurs, roue folle, Raspberry Pi, module de commande des moteurs, batterie(s). On peut choisir de réaliser son propre modèle, ou se tourner vers un modèle du commerce.

a. Fabrication maison

Pour un châssis "maison", le choix est vaste : le carton, la plaque de plastique, le bois, l’Isorel… Il existe des rovers comme le CamJam Edukit de The Pi Hut qui sont montés dans la boîte en carton utilisée pour la livraison du matériel.

b. Châssis du commerce

On trouve sur les sites de e-commerce de nombreux modèles de rovers à 2 ou 4 roues.

images/19LF02.png

Ce modèle de châssis, par exemple, est présent sur de nombreux sites de vente en ligne. Les moteurs sont montés sous la plaque et une roulette est vissée grâce à des entretoises à l’arrière du châssis.

images/19LF01.png

Une plaque épaisse en acrylique (toujours équipée de la feuille de protection contre les rayures sur la photo ci-dessus) reçoit l’ensemble du matériel. Le châssis est équipé d’un porte piles pouvant recevoir quatre piles AA ou LR6 et alimenter les circuits et les moteurs. Par contre, on voit que la place restante pour accueillir un Arduino ou un Raspberry Pi plus le circuit de contrôle des moteurs est réduite et qu’il faudra envisager des empilages… 

c. Châssis en impression 3D

Rover pour CamJam EduKit 3

Une solution "maison" si vous avez accès à une imprimante 3D est l’impression d’un châssis en PLA (Acide Poly Lactique) ou en ABS (Acrylonitrile Butadiène Styrène). Le PLA est plus abordable et facile à utiliser lors de l’impression, mais il est moins résistant et plus sensible à la chaleur. L’ABS est beaucoup plus résistant, mais impose des conditions d’impression contraignantes (chauffe du plateau, température constante). Le choix se fera en fonction des possibilités.

images/19LF11.png

Le modèle ci-dessus a été créé par Daniel Bull pour le CamJam Edukit 3. Il est disponible en téléchargement sur Thingiverse...

Câblage de la voiture

1. Synoptique

images/19LF03N.png

Le principe de câblage est relativement simple : le GPIO du Raspberry Pi 4 est relié au module de commande des moteurs. Ce module est relié à chacun des moteurs par deux fils. Le capteur à ultrasons optionnel est relié lui aussi aux ports du GPIO via un pont diviseur de tension.

images/19LF24.png

Sur l’image ci-dessus, le robot est câblé. Les batteries ne sont pas en place. Tout le câblage moteur est fonctionnel, il a été testé sur une alimentation secteur avant le passage à une alimentation autonome.

2. Câblage du circuit L293D

a. Sur la breadboard

images/19LF17.png

Le circuit L293D se présente sous la forme d’un boîtier à 16 pattes. Il possède deux pins d’alimentation, une pour les moteurs (Vs) et une pour l’alimentation de la logique interne du L293D (Vss). On peut relier les deux pins d’alimentation ensemble. La tension est alors limitée à 5 V et peut être fournie par le Raspberry Pi.

Le courant fourni au moteur dépend du type de moteur utilisé. Avec les petits motoréducteurs connectés ici, le Raspberry Pi peut fournir le courant demandé. Il est possible que ce ne soit pas le cas avec d’autres modèles. Il faudra bien vérifier la compatibilité avant de connecter les moteurs.

Connexion avec une seule alimentation

images/19LF20.png

Avec une seule...

Le programme de la voiture

Le programme de la voiture est écrit en Scratch. Il utilise l’extension GPIO de Alan Yorinks. Le programme de base autorise le pilotage de la voiture avec les touches du clavier et l’interface graphique.

Les quatre directions sont obtenues avec les flèches de direction du clavier ou des sprites représentant ces directions sur la scène Scratch.

La vitesse est contrôlée par les touches q (augmentation) et w (diminution) ou par les pavés + et - sur l’écran de Scratch. La vitesse varie de 0 à 100 %, mais la voiture démarre avec une valeur à déterminer en fonction des moteurs, du poids du rover…

Une première partie explique la mise en œuvre de Scratch à distance. Le programme utilisé est abordé ensuite. Il pourra être personnalisé et amélioré.

1. Mise en œuvre distante de Scratch

Les premières opérations peuvent être réalisées directement sur le Raspberry Pi 4 connecté à un écran et muni d’un clavier et d’une souris.

images/19LF33.png

Pour faciliter le démarrage des programmes nécessaires sur la voiture, il est possible d’automatiser une grande partie du lancement des programmes nécessaires. Le synoptique ci-dessus décrit les opérations à réaliser. Ce sont ces opérations qui sont expliquées dans les prochains paragraphes. 

La version Scratch 2 sur le Raspberry Pi possédait un mécanisme permettant de lancer automatiquement un programme Scratch au démarrage. Ce mécanisme n’est pas (pas encore ?) présent sur Scratch 3. Le lancement de Scratch et des extensions peut être automatisé, mais il faut pour le moment lancer le programme de gestion de la voiture manuellement. 

a. Installation de Scratch et du serveur s3r

L’installation de Scratch 3 et des extensions sur le système Raspberry Pi OS a été décrite dans le chapitre Scratch 3 et Arduino. La procédure est exactement la même pour le robot. Veuillez vous reporter à ce chapitre pour l’installation.

b. Mise en œuvre de VNC

Pour utiliser Scratch 3 sur le Raspberry Pi à distance, il faut pouvoir "récupérer" l’image...

Tests du véhicule

1. Seuil de démarrage des moteurs

En fonction du poids du robot, de la puissance des moteurs, de la démultiplication, etc., les moteurs ne commencent à tourner que quand la puissance appliquée est suffisante.

Pour déterminer la valeur, il faut mettre la consigne à 0 au démarrage du programme puis augmenter progressivement sa valeur en appuyant à chaque fois sur la touche "flèche vers le haut" ou en cliquant sur le sprite "vers l’avant" sur la scène.

2. Réglage de la vitesse

 Lorsque la voiture démarre lentement, notez la valeur de la consigne. C’est cette valeur qui sera appliquée au démarrage du programme dans la scène. Modifiez le bloc suivant.

images/19LF56.png

 Remplacez la valeur 50 par la valeur que vous avez déterminée lors des tests. C’est la valeur minimum du PWM pour les moteurs, elle doit se situer un peu avant le démarrage des moteurs. 

3. Déplacements de la voiture

 Testez les déplacements de la voiture en cliquant sur les sprites en forme de flèche et sur Stop sur la scène Scratch.

 Pilotez la voiture avec les touches flèches de direction du clavier, changez la vitesse avec q et w. Vérifiez que tout fonctionne correctement. Un clavier Bluetooth connecté sans fil au Raspberry Pi permet une commande à...

Arrêt du programme

L’arrêt du programme et du système se fait sur une machine connectée via VNC Viewer.

1. Arrêt propre de Scratch

 Pour assurer un arrêt propre de Scratch et éviter de perdre les éventuelles modifications que vous avez apportées au programme, sauvegardez celui-ci. Donnez-lui un nom explicite et cliquez sur Fichier - Sauvegarder sur votre ordinateur.

images/19LF57.png

 Vous pouvez maintenant fermer Scratch en cliquant sur la croix en haut à droite de la fenêtre. 

2. Arrêt du système

 Un arrêt propre du système se fera en cliquant sur Menu - Déconnexion - Shutdown. Tout arrêt brutal par coupure des batteries pourra se traduire par une détérioration des données de la carte SD et une impossibilité de redémarrer par la suite.

Pour les utilisateurs plus avancés, il est possible d’adjoindre un bouton-poussoir et un programme qui attend de détecter l’appui sur ce bouton via un GPIO. Ce programme éteint alors proprement le système d’exploitation.

3. Améliorations

En l’état, le robot fonctionne. Des améliorations sont toutefois possibles :

  • ajout d’un capteur de distance à ultrasons ;

  • ajout d’un suiveur de ligne ;

  • ajout de détecteurs de collision ;

  • amélioration des déplacements :...

Conclusion

Cette plateforme est un outil pour apprendre le codage avec Scratch sur une application réelle, en interaction avec le monde réel.

Des programmes simples avec commande manuelle pourront évoluer vers des programmes permettant à la voiture de rouler en autonomie, de sortir d’un labyrinthe, etc.

C’est une porte ouverte vers la programmation robotique.