IA véhicule avec Teachable machine, Micro:bit et Scratch

basé sur: https://youtu.be/-NMUTDA3SdM et http://gymlab.dk/2017/02/diy-microbit-buggy/




Pour ce projet, nous utiliserons Teachable Machine, l'outil en ligne développé par Google qui permet aux utilisateurs de créer des modèles de machine learning sans avoir à écrire de code. La plateforme utilise des techniques d'apprentissage automatique pour permettre aux utilisateurs d'entraîner des modèles d'intelligence artificielle à reconnaître et à classifier des images, des sons et des gestes. Nous utiliserons ensuite le modèle créé dans Teachable Machine dans Scratch pour créer un programme capable de commander par la voix un véhicule contrôlé par un Micro:bit.


Le véhicule

Le matériel 

Vous aurez besoin du matériel suivant pour construire votre véhicule:

l'assemblage

Les branchements

Tableaux des broches

Les broches (pins) qui contrôlent si les moteurs tournent dans un sens ou dans l'autre peuvent être vues sur le tableau ci-dessous. Ils sont commandés par des signaux numériques qui peuvent avoir la valeur 1 ou 0 (on ou off).


Note sur le module L298N:

Ni l'Arduino ni le micro: bit ne fournissent suffisamment de puissance pour les moteurs à courant continu jaunes que de nombreuses voitures robotisées utilisent. Par conséquent, un module de commande doit être utilisé. Par exemple le L298N est utilisé ici. 

Le module L298N est un circuit intégré (CI) qui est couramment utilisé pour contrôler la vitesse et la direction d'un moteur à courant continu (DC). Ce module est capable de contrôler deux moteurs DC simultanément et il peut également contrôler un moteur pas à pas bipolaire.

Le L298N utilise un pont en H pour inverser la polarité de l'alimentation électrique envoyée aux bornes du moteur, ce qui permet de contrôler sa direction de rotation. Le pont en H est composé de quatre transistors qui peuvent être activés individuellement pour contrôler la direction de rotation du moteur.

Le module L298N est également équipé d'un système de contrôle de la vitesse du moteur, qui utilise la modulation de largeur d'impulsion (PWM). Le PWM permet de régler la vitesse du moteur en variant le rapport cyclique de l'onde carrée envoyée aux bornes du moteur. Plus le rapport cyclique est élevé, plus la vitesse du moteur est élevée.

Le module L298N est souvent utilisé dans des projets de robotique, de domotique et de contrôle de moteurs à courant continu en général, en raison de sa facilité d'utilisation et de sa capacité à contrôler la vitesse et la direction du moteur de manière précise. (pour en apprendre plus sur le L298N)


Notez que le "0V" de la carte et le fil noir du boîtier de batterie doivent être connectés à GND sur L298N. La plupart des connexions peuvent être réalisées avec des câbles femelle-femelle :


Schéma de branchement des composants electroniques.

Teachable machine


Préparation des enregistrements vocaux 

a. Rendez-vous sur le site de Teachable Machine.

b. Cliquez sur le bouton bleu "Commencer"  et créez un nouveau projet dans Teachable Machine en choisissant l'option "Projet Audio". (vous devrez autoriser l'accès au micro pour pouvoir enregistrer les sons).

c. Cliquez sur l'icône de micro pour enregister un bruit de fond (20 secondes minimum, j'en ai mis 40), puis cliquez sur "Extraire l'échantillon" pour valider votre enregistrement.

d. Cliquez sur "Ajoutez une classe" (au bas de l'écran) pour chaque commande vocale que vous souhaitez reconnaître (Avancer, Reculer, Gauche, Droite). Vous pouvez modifier le nom de la classe en cliquant sur le petit crayon devant la classe.

e. Enregistrez un minimum de 8 extraits sonores pour chacune des commandes (j'en ai mis 10).

Entraînement de l'algorithme 

f. Mettez la valeur 150 à époques et cliquez sur entraîner le modèle

g. Cliquez sur "Entraîner le modèle" pour entraîner l'algorithme avec les enregistrements vocaux que vous avez ajoutés.

H. Une fois l'entraînement terminé, testez l'algorithme en utilisant l'aperçu. Parlez dans le microphone et vérifiez si l'algorithme reconnaît correctement les commandes vocales.

Intégration de l'algorithme dans une application (Scratch) 

a. Téléchargez le modèle d'algorithme entraîné en cliquant sur "Exporter le model".

b. Cliquez sur importer le modèle pour envoyer le modèle dans le "cloud" et générer un lien de partage.

c. Copier votre lien partageable. Important. c'est ce lien qui sera utilisé dans Scratch.

Enregistrement du modèle

a. Cliquez sur les trois petites lignes verticales en haut à droite de la fenêtre principale et choisissez "Enregistrer le proget dans Drive" pour être en mesure de retrouver le projet et le modifier.

b. cliquez sur "Se connecter à Drive"

c. Choisissez votre compte et suivez les consignes de connexion.

d. Donnez un nom à votre modèle et cliquez sur "Suivant" et "Fermer"

La programmation Scratch

Installez Scratch Link

Rendez-vous sur le "store" de Microsoft et installez Scratch Link .

Téléchargez le 'programme micro:bit more' dans votre micro:bit 

Vous devez installer le microprogramme Microbit More pour établir le lien entre stretch3 (version de scratch avec des extensions IA étendues) et le Micro:bit.

a. Connectez un micro:bit à ton ordinateur avec un câble USB 

b.Téléchargez le fichier HEX micro:bit More. 

c. Glissez-déposez le fichier HEX sur ton micro:bit 

d. Inclinez le Micro:bit dans tous les sens afin d'allumer toutes les dels.

IMG_3076.mov

Lancez scratch Link

Si ce n'est pas déjà fait, Lancer Scratch Link et vérifier qu'il fonctionne. Il devrait apparaître dans votre barre des tâches. 

Allez sur plateforme stretch3 (version de scratch avec des extensiona AI étendues )

a. Cliquez sur l'icone d'ajout d'extensions en bas à gauche de la fenêtre.

b. Installez l'extension MicroBit More.

c. Installez l'extension TM2Scratch.

d. Glissez le bloc "Sound classification model URL" et collez-y  l'adresse de votre modèle. (celle que vous avez copié de Teachable Machine).

e. Cliquez sur le drapeau pour charger le modèle et glissez le bloc "When received sound label"

f. Glissez ensuite le bloc "Set p0 analog" pour chacune des pins du Micro:bit auxquelles nous avons branché les moteurs (P8, P12, P15, P16).

g. Dupliquez ce bloc pour chacune des commandes (Avancer, Reculer, Droite, Gauche) et réglez les pins sur 100% (1, ON) ou 0% (0, OFF). Il est aussi posible de régler la puissance du moteur en mettant 80% par exemple. 

Testez votre modèle

a. Placez le Micro:bit dans la carte dérivative de votre véhicule. 

b. Branchez le Micro:bit à son bloc piles.

c. Activez l'interrupteur du véhicule.

d. connecter Scratch (Stretch3) au Micro:bit.

e. Assurez-vous de bien parler dans le micro de votre ordinateur et testez vos commandes.

Démonstration avec les commande; Avancer, Reculer, Droite, et Gauche.

IMG_3115.MOV

Principe de fonctionnement

a. Une commande vocale est transmise à Scratch via le micro de l'ordinateur.

b. Scratch consulte le modèle de reconnaissance vocale dans le cloud Teachable Machine à l'adresse copié dans le bloc de départ deScratch.

c. La commande vocale "Avancer" est identifié par l'IA et transmise au Micro:bit par Bluetooth.

d. Le Micro:bit active alors les broches 8 et 12, ce qui fait tourner les deux moteurs dans le même sens afin de faire avancer le véhicule.