Robot Multimodes RC Bluetooth

Robot Multimodes RC Bluetooth

Cette année j’ai encore eu la chance d’être sélectionné pour participer au concours des ambassadeurs 2018.
Pour changer de l’année dernière, j’ai choisi de concourir dans la catégorie robotique et RC,
Nous allons donc fabriquer et coder un robot !
Un robot, mais qui fait quoi ?
Bonne question !

Premièrement, nous allons gérer toutes les fonctions hardware de notre robot et des ses accessoires:
– Gestion batterie
– Gestion moteurs
– Gestion leds
– Gestion Servo
– Gestion détecteurs Ultra-son
– Gestion récepteur RC 2.4Ghz

Cela fait nous pouvons maintenant faire appel à nos routines pour donner vie à notre robot..
Nous allons donc créer des « modes » de fonctionnement. (à ce jour 6 modes sont disponibles dans la version MFB-IBOT V1.0A)
1 – Le mode « OFF »:
Ce mode coupe les moteurs, le servo, les leds, etc..
2 – Le mode « RC ».
Ce mode permet le pilotage du robot via la télécommande RC.
3 – Le mode « AVOIDER ».
Dans ce mode le robot s’arrête en cas de détection d’obstacle, mesure une distance selon un angle donné et prend une décision pour changer de direction.
4 – Le mode « WALL ».
Dans ce mode le robot recherche une bordure sur sa droite en effectuant un arc de cercle, si il trouve il la suit en respectant une distance de sécurité.
5- Le mode « FOLLOWER ».
Dans ce mode le robot recherche un objet à suivre devant lui en effectuant un scan sur 30 degrés, si il trouve il suit l’objet en respectant une distance de sécurité.
6- Le mode « RADAR ».
Dans ce mode le robot est à l’arrêt seul le servo scan sur 180 degrés, mesure la distance du capteur ultra-son et renvoie sur le port série l’angle et la distance en cm.

Il est bien sur possible et facile d’ajouter une infinité de mode ,il suffit de les déclarer dans le fichier IO.h

#define OFF_MODE 1
#define RC_MODE 2
#define AVOIDER_MODE 3
#define WALL_MODE 4
#define FOLLOWER_MODE 5
#define RADAR_MODE 6
byte Tempmode[6] = {OFF_MODE, RC_MODE, AVOIDER_MODE, WALL_MODE,FOLLOWER_MODE,RADAR_MODE};

Maintenant pour gérer la mise en fonctionnent de ces modes nous allons coder un petit menu de sélection disponible depuis un bouton poussoir et par la liaison série avec le module Bluetooth. Pour identifier clairement chaque mode pendant la sélection nous allons faire osciller les moteurs pour générer des « Bips ».
Le robot dispose de différent type de « bips » et « mélodie » (bonjour, off, mode).

Pour rendre la chose un peu plus ludique et wireless nous modifierons les paramètres du module Bluetooth HC-05 afin de pouvoir programmer notre robot sans fil à la patte ! Finit le branchement, débranchement de l’USB. La grande classe !!!

Alors du coup ce robot il fait quoi ?
Nous avons ici un robot télécommandé multimodes avec communication et programmation par Bluetooth !
Sélection du mode de fonctionnement par bouton poussoir et par Bluetooth !

Une base solide et polyvalente pour bien débuter.

  1. Réception et Déballage de la box Robobox :
    - 1 châssis roulant pour robot Joy-it Robot 03 (réf. 1573542 sur www.conrad.fr)
    - 1 Arduino Mega (réf. 191789 sur www.conrad.fr)
    - 3 capteurs à ultrasons Velleman (réf. 096823 sur www.conrad.fr)
    - 1 carte relais 5V 4 canaux (réf. 095841 sur www.conrad.fr)
    - 1 module bluetooth (réf. 096819 sur www.conrad.fr)
    - 1 Câble de raccordement Raspberry Pi Renkforc (réf. 1346418 sur www.conrad.fr)

    Pour mener à bien notre projet nous avons ajouté à notre box les éléments suivants:
    - 1 Télécommande Rc avec son récepteur (1310036 sur www.conrad.fr)
    - 1 Servo Rc
    - 1 carte Ardumoto ou équivalent à base de L293
    - 2 Support pour Li-ion 18650 (651027 sur www.conrad.fr)
    - 2 Led Blanche pour les feux avant (1603102 sur www.conrad.fr)
    - 1 Led Rouge pour le feu arrière ( 1526849 sur www.conrad.fr)
    - 1 Led Verte pour le témoin de communication (1526861 sur www.conrad.fr)
    - 1 Bouton poussoir pour la configuration manuelle.
    - 1 Interrupteur pour l'alimentation du robot.
  2. Coté Hardware :
    Le kit est sympa, facile à monter, c’est un jeu d’enfant. Attention à ne pas trop serrer les vis !
    La carte Arduino UNO est fixée sur le châssis à l’aide de deux vis.
    Une carte fille Ardumoto à base de L293 vient s’enficher dessus.
    Cette carte est compacte et permet que toute l’électronique puisse tenir entre les deux faces du robot afin de protéger les composants et les connexions électriques.
    Les trois détecteurs, le servo, le bouton poussoir et les leds sont câblés directement dessus en suivant le schéma.
    La charge des batteries sera effectuée par un chargeur externe spécifique au Li Ion via un câble 3 broches rangé entre les deux cartes.
  3. Schéma électronique de la bête.
    il est assez simple, les capteurs ultra-son partagent la même pin trig.
    L'alimentation du servo est directement sur la batterie.
  4. Modification des paramètres du module Bluetooth HC-05.

    Pour cela, nous utiliserons un adaptateur USB/UART FTDI câblé selon le schéma ci-dessous avec la pin "key" du module au VCC afin de démarrer le mode configuration.
    Puis nous entrons dans un terminal ouvert à 38400 bauds(vitesse du HC-05 en mode configuration) les commandes suivantes:
    AT+POLAR=1,0 (Pin State du BT à l'état bas connecté)
    AT+UART=115200,0,0 (vitesse du bootloader Arduino UNO)
    Commande auxiliaire:
    AT+NAME=IBOT ( le nom du module Bluetooth par défaut HC-05)
    AT+PSWD=xxxx. (changer le password "1234" )

    Le module doit répondre par "OK" à chaque commande correcte.

    Cela effectué, déconnecter le HC-05 et le câbler sur notre Arduino avec 0.1µF entre la pin state et la pin reset.

    Et voila ! Nous allons maintenant pouvoir programmer notre robot à distance via le Bluetooth ! Cool !
  5. Terminal Bluetooth:
    Pour envoyer nos commandes au robot nous avons besoin d'une interface Bluetooth série.
    Il existe des tonnes d'applications sur le market, moi j'aime bien ce terminal, il est sympa, clair, facile d'utilisation et dispose de bouton paramétrable.
    https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal&hl=fr
  6. Paramètres des boutons du terminal:
    Pour cela appuyer sur un bouton jusqu'a l’apparition de la fenêtre "Edit Macro".
    Rentrer le nom du bouton et sa valeur puis valider.
    La vitesse est de 115200 bauds avec le protocole suivant:
    Commande suivie de d'un retour chariot et d'une nouvelle ligne. (ex "commande" )

    Les fonctions actuellement disponible par l'interface série/Bluetooth de notre robot:
    La commande "o" lance le mode "OFF"
    La commande "c" lance le mode "RC"
    La commande "a" lance le mode "AVOIDER"
    La commande "f" lance le mode "FOLLOWER"
    La commande "w" lance le mode "WALL"
    La commande "x" lance le mode "RADAR"
    La commande "q" fait flasher les leds avant et arrière
    La commande "s" allume/éteint les leds avant et arrière
    La commande "v" renvoie la version du source
    La commande "b" renvoie la mesure de tension batterie
    La commande "R" effectue un soft reset de l'Arduino

    Il est bien sur possible et facile d'ajouter une infinité de commande,il suffit de les déclarer dans le fichier RSCMD.ino
  7. Et voici notre terminal configuré !
  8. Le code du projet:
    Pour être plus lisible le projet est décomposé en plusieurs fichiers disponible sous forme d'onglet dans l’interface Arduino.
    - MFB_IBOT_BT.ino est le fichier main.
    - IO.h est le fichier de configuration des IOs et des variables communes aux différents modes.
    - MOTORS.ino est le fichier des routines moteurs.
    - RSCMD.ino est le fichier des routines de la liaison série.
    - TOOLS.ino est le fichier des routines accessoires et menu.
    - Bluetooth.ino est un fichier non codé, il est pour la future commande RC du robot via une appli.

    Ensuite nous avons les fichiers de mode de fonctionnement:
    - RC_MODE.ino pour le mode "RC"
    - AVOIDER_MODE.ino pour le mode "AVOIDER"
    - FOLLOWER_MODE.ino pour le mode "FOLLOWER"
    - WALL_MODE.ino pour le mode "WALL"
    - RADAR_MODE.ino pour le mode "RADAR"

    une version maintenue et commentée du firmware est disponible ici : http://mafabrique.fr/conrad/Projets/IBOT/MFB_IBOT_BT.rar
  9. Accès au port de communication série du robot par Bluetooth:
    Pour cela, ajouter un nouveau périphérique Bluetooth par défaut le password du module HC-05 est "1234".
    Dans le gestionnaire de périphériques, dans Port(COM et LPT) nous avons tous les port com disponible et leur numéro.
    EX: ici le HC-05 est le COM49.
    Ce port est à sélectionner dans l'interface Arduino afin de pouvoir programmer et échanger par l'interface série du robot.
    La vitesse est de 115200 bauds.
  10. C'est bon ça tourne !
    Ok, maintenant le robot est flashé avec la version MFB-IBOT V1.0A.
    Il fait bip bip, les leds flashent bien, nous avons accès au menu de configuration par une pression sur le bouton poussoir.
    Tout est ok !

    Concernant l'évolution de ce robot:
    Des codeurs serait un vrai plus pour intégration dans l'espace.
    Une interface pour smartphone pour télécommander le déplacement robot.(interface graphique, accéléromètre, etc...)
  11. Bon Tuto et bonne lecture.
    Si vous avez des questions, n’hésitez pas !
Rating: 1.9/5. From 32 votes.

Connectez-vous pour voter
Please wait...
Réalisé par
Posté le
Univers
Candidats Ambassadeurs Robotique & RC 2018
Temps de fabrication
2 semaines
Niveau de difficulté
Avancé
Matériel(s)
3
Detecteur ultrason
1
carte Arduino uno
1
Carte ardumoto
1
servomoteur
1
Module Bluetooth HC-05
1
Télécomande avec son recepteur RC
1
Bouton poussoir
2
Led blanche
1
led verte
1
LED rouge
2
Support pour 18650
2
Accus lithium 18650
1
Switch de coupure batterie
1
Gaines thermorétractables divers
1
Diverses résistances
1
Diverses capa
Outils
1
Fer à souder
1
Pince coupante
1
Pistolet à colle chaude
1
Multimètre

Aucun commentaire. Soyez le premier à en écrire un !

Vous devez être connecté pour laisser un commentaire.