Dans un précédent article, j’avais fabriqué une machine à bulle en reproduisant un des nombreux exemples proposés par les concepteurs du Kit DaDa:bit.

Mais nous avons vu que même si le matériel est plutôt de bonne qualité, la documentation (uniquement en chinois), pouvait constituer un frein à l’utilisation de ce kit.

Je vous propose donc d’explorer en détail les possibilités offertes par la carte d’extension (shield) associée aux différents modules de ce kit (moteur, servomoteurs, capteurs et afficheur à 4 chiffres).
Installation de la bibliothèque StarBit
Pour faciliter l’utilisation du kit, il faut tout d’abord installer la bibliothèque startbit. Pour cela, lancez MakeCode et ouvrez un nouveau projet. Cliquez ensuite sur le menu Avancé, sélectionnez Extensions et tapez l’adresse suivante dans la barre de recherche :
https://github.com/LOBOT-ROBOT/Startbit

Cliquez sur la bibliothèque starbit et vous obtiendrez les nouveaux bloc permettant de programmer les éléments du kit.

Maintenant, nous pouvons commencer l’exploration des différents modules.
Servomoteurs
Choisissiez une des 6 sorties servo disponibles (numérotées de 1 à 6) et connectez le servomoteur en respectant la parité, c’est à dire en branchant le fil marron sur le (–).

Ensuite il suffit d’ajouter le bloc Initialize Starbit au démarrage. Et d’utiliser le bloc Set pwm servo range range… index… angle… duration… pour contrôler le servomoteur.

Voilà un exemple de programme permettant de tester le fonctionnement d’un des servomoteurs (de 0 à 270°).

Ventilateur (moteur à courant continu)
Pour le ventilateur, vous avez seulement le choix entre les 2 premières prises de la carte d’extension (1 et 2).

Ajoutez le bloc Initialize Starbit au démarrage. Et utilisez le bloc Set Port… fan speed(-100~100)… pour contrôler le moteur.

Voilà un exemple de programme permettant de tester le fonctionnement du moteur. Vous pouvez varier la vitesse de 1 à 100 et même le faire tourner à l’envers avec une valeur négative (de -1 à -100).
Et bien sûr, à 0 le moteur s’arrête.

LED Neopixel
La carte d’extension possède 2 LED RVG adressables (de type Neopixel).

Vous pouvez définir individuellement la couleur de chaque LED avec le bloc Set Light…color to… suivi du bloc Show light. Le bloc set brightness… permet de modifier la luminosité (de 1 à 255) et le bloc Clear light d’éteindre toutes les LED.

Sachant que les LED Neopixel sont reliées au port P15 du micro:bit, vous pouvez aussi utiliser la bibliothèque Neopixel, dont j’ai déjà parlé dans mon article sur les LED adressables.

Buzzer
Le buzzer de la carte d’extension est relié au port P0 du micro:bit, vous n’avez donc pas besoin d’utiliser la bibliothèque starbit puisse que les blocs de base de MakeCode (catégorie Musique) fournissent déjà toutes les instructions nécessaires.

Afficheur à 4 chiffres 7 segments
Vous ne pouvez relier l’afficheur qu’aux 2 premières prises de la carte d’extension (1 ou 2).
Pendant la programmation du micro:bit (et que l’interrupteur relié à la batterie est éteint), l’afficheur scintille de façon très désagréable. Mais une fois que le câble est débranché (et l’interrupteur rallumé), l’affichage redevient normal.

L’afficheur permet d’afficher 4 chiffres (constitués de 7 segments rouges) et d’un point en bas à droite. Pour l’utiliser il faut ajouter les blocs Initialize Starbit et digitaltube Port… intensity… LED count… au démarrage.

Pour afficher un nombre, indiquez sa valeur dans le bloc digitaltube show number…

Pour afficher (ou non) le point, indiquez son emplacement avec le bloc digitaltube DotPoint at… show… suivi de vrai (pour l’allumer) ou faux (pour l’éteindre).

Voilà par exemple un chronomètre qui affiche les minutes et les secondes qui s’écoulent depuis l’allumage de la carte

Capteur sonore
Le bloc Sound volume retourne une valeur comprise entre 0 et 255 correspondant au volume sonore détecté par le capteur intégré à la carte d’extension.

Vous pouvez utiliser le branchement précédent pour mesurer le volume sonore (converti en une valeur de 0 à 9999).

Capteur de distance à ultrason (HC-SR04)
Ce capteur permet de mesurer la distance qui le sépare d’un objet en envoyant un signal sonore sous forme d’ultrason (inaudible pour l’oreille humaine) et en mesurant le temps que le son met avant de revenir. Lorsque le son rencontre un objet, il se réfléchi et revient (entre autres) vers son point de départ (c’est le principe de l’écho). En connaissant la vitesse du son (environ 340 m/s), il est possible de déduire la distance en mesurant le temps écoulé entre l’émission et la réception du signal sonore (divisé par 2).
Il s’agit d’un grand classique dans le monde des cartes de développement. Le capteur HC-SR04 est souvent utilisé par l’Arduino, le Raspberry Pi et même la PYBStick pour réaliser des robots détecteurs d’obstacles.
Le capteur de distance HC-SR04 ne peut être relié qu’aux 2 premières prises de la carte d’extension (1 ou 2). Comme j’ai déjà branché l’afficheur à 4 chiffres 7 segments sur la prise n°2, il ne me reste plus que la prise n°1. Mais rien ne vous empêche d’inverser le branchement, à condition (bien sûr), d’en tenir compte dans votre programme.

Le capteur ne fonctionne pas au moment de la programmation du micro:bit, (lorsque la carte est alimentée par le câble USB). Cependant, quand il est alimenté par la batterie, tout va bien.
Le bloc Ultrasonic port Port… distance (cm) retourne simplement la distance en centimètre qui sépare le capteur d’un obstacle placé devant lui.

Vous pouvez par exemple, afficher la distance mesurée par le capteur de distance HC-SR04, sur l’afficheur à 4 chiffres.

Capteur lumineux
Comme son nom l’indique, ce capteur mesure la luminosité. Il ne peut être branché qu’à la prise n°1 de la carte d’extension.

Le bloc Get Photosensitive port Port 1 value (0~255) retourne une valeur comprise entre 0 et 255 correspondant à la luminosité détectée par le capteur.

Voilà par exemple, comment afficher le résultat de la mesure sur l’afficheur 4 chiffres 7 segments (après l’avoir converti en valeur de 0 à 9999).

Capteur à reconnaissance de couleurs
Bien qu’il ne puisse reconnaître que 5 couleurs (rouge, vert, bleu, blanc et noir), ce capteur est plutôt amusant. Il arrive à reconnaître (approximativement) la couleur des objets qui s’approchent de lui. Concernant le branchement, vous pouvez seulement utiliser la prise n°4 de la carte d’extension.

Pour utiliser le capteur, il faut ajouter les blocs Initialize Starbit et Initialize color sensor port at Port 4 au démarrage.

Ensuite vous pouvez insérer le bloc Current color… dans une boucle ou une condition pour définir ensuite les événements à réaliser en fonction de la couleur détectée.

Voila par exemple, comment réaliser un détecteur de couleur qui colore les LED Neopixel et affiche la 1ère lettre de la couleur en présence d’objets « rouge », « vert » ou « bleu ».

La détection de la couleur n’est pas parfaite, il est très facile de piéger la machine avec des couleurs ambiguës et les couleurs jaunes ou orange passent pour du rouge. Mais cela fonctionne plutôt bien lorsque les couleurs sont bien franches.
Détecteur d’obstacles à infrarouges
Comme le capteur de distance à ultrason, ce module permet de détecteur un mur ou un objet se trouvant dans son champ de détection. Sa portée est plus courte (de 0 à 6 cm), mais il est beaucoup plus précis. Les deux modules sont donc plutôt complémentaires. Vous pouvez relier le détecteur d’obstacles aux 3 premières prises de la carte d’extension (1, 2 ou 3).
Après avoir ajouté le bloc Initialize Starbit au démarrage, vous pouvez insérer le bloc Obstacle avoidance sensor port Port… detect obstacle dans une boucle ou une condition pour définir ensuite les événements à réaliser en fonction de détection (ou non) d’un obstacle.

Dans cet exemple, la matrice de LED affiche un X et les LED Neopixel s’allument en rouge en présence d’un obstacle.

Conclusion
Vous avez maintenant tous éléments nécessaires à la programmation vos propres robots. Alors, amusez-vous bien.

Vous trouverez le kit DaDa:bit sur le site de Digitspace (qui m’a gentiment offert ce matériel).
Fantastic introduction! I have bought the kit and struggle a bit with the Chinese.
Your blog posts have helped me a lot!
Thank you so much for sharing your experiences!
J’aimeAimé par 1 personne
Very happy to have helped you,
Thanks for your feedback.
J’aimeJ’aime