Android Bluetooth RC CAR

by manu4371 in Circuits > Robots

6777 Views, 17 Favorites, 0 Comments

Android Bluetooth RC CAR

schema general.jpg
IMG_5177.JPG

Mon fils possède depuis pas mal de temps une voiture télécommandée (qui a coûté 10 euros) dont il a cassé la télécommande 27Mhz. . Ce projet permettra de piloter de véhicule grâce à un téléphone fonctionnant sous android 2.2 minimum sur lequel j'ai installé une application android de double joystick .

Les caractéristiques principales de la voiture: - alimentation par 4 piles HR6-AA de 1.5V ou accumulateur NiMH de 1.25V -un moteur à courant continu 6V DC pour la propulsion

-un moteur d'angle à courant continu 6VDC pour la direction

-un microcontrôleur CUBLOC CB220 que j'avais en réserve (20 euros) (cher)

-un module de communication Bluetooth de type F2M03GLA (20 euros) (cher)

-un interrupteur pour couper l'alimentation -un arrêt d'urgence (optionnel) pour couper la propulsion

-un bouton reset microcontrôleur

Les caractéristiques de la télécommande:

-une application android de double joystick fonctionnant en multitouch:

DIRECTION LEFT/ RIGHT (gauche/droite)

SPEED FW/RV (la vitesse variable de la voiture en marche avant vers le haut et en marche arrière vers le bas)

C'est l'évolution du précédent projet "Bluetooth RC car".

Le Récepteur Embarqué Sur Le Véhicule

le recepteur.jpg
IMG_51782.jpg
IMG_51792.jpg
rbt7.jpg
rbt6.jpg
rbt5.jpg
rbt4.jpg
rbt3.jpg
rbt2.jpg
rbt1.jpg

Le module F2M03GLA est très facile à paramétrer et à mettre en oeuvre. Il est fabriqué par Free2move et est distribué par www.lextronic.com entre autres. Il consomme très peu d'énergie et peut porter jusqu'à 50m en terrain découvert. Son profil blutooth est de type SPP et présente une liaison RS232 en 3.3V (attention aux adaptations de tension). Ce module sera paramétré en esclave avec une vitesse de 19200 bauds, 8 bits, pas de bits de parité, 1 bit de stop (8N1). Vous utiliserez pour cela le logiciel Free2move Configuration Software disponible sur le site www.lextronic.com

Pour le paramétrer il faut utiliser l'interface dont je vous fourni le schéma et brancher les bornes: RX, TX, RTS, CTS, 0V, 3.3V seulement (le module doit être débranché du microcontrôleur).

Ce module est déclaré comme esclave par défaut. La télécommande embarquera un module maître.

Le microcontrôleur de type CB220 fournira un signal PWM à une fréquence: f=2304000/128=18kHz ce qui donne un fonctionnement silencieux du moteur. Il recevra les information par les borne P10 et P11 (RX1 et TX1 en TTL) via une interface d'adaptation avec le module bluetooth. De plus le CB220 présente l'avantage de pouvoir être alimenté entre 5 et 12V. Liaison 19200 bauds, 8N1 pour la communication RS232.

La trame reçue et traitée se présente par exemple sous la forme: "0018,0528"

- les 4 premiers caractères ASCII représente la direction (DIRECTION), vers 0 on tourne à gauche vers 1023 on tourne à droite

-les 4 derniers caractères ASCII représente la consigne de vitesse (SPEED), vers 0, manette vers le haut, marche avant pleine vitesse vers 540, manette au repos en position milieu, arrêt vers 1023, manette vers le bas, marche arrière pleine vitesse.

Le moteur de propulsion est piloté par un pont en H à mosfet de type canal N en MLI bipolaire. Il faut utilisé des commandes rapprochées de type IR2302 qui intègre des temps morts pour le pilotage des transistors Haut et Bas d'un bras. Ils ont aussi l'avantage de pouvoir être alimentés en 5-20V (ce qui n'est pas le cas du IR2184: 10-20V) car ici nous sommes limités à 4 piles HR6-AA soit 6 V maxi. Le moteur de direction est piloté par un pont en H à mosfet de type canal N et canal P plus facile à mettre en oeuvre (déconseillé pour la MLI car il chauffe soit disant). La technique de commande en TOR par 2 sortie du CB220 est indiquée sur le schéma. Sans signal de commande il revient en position milieu.

Ci-joint le programme du CB220 en basic/langage évolué en nouvelle version:

La Télécommande Android

FACE AVANT.jpg

Pour cela j'ai utilisé un projet déjà existant disponible sur le site suivant:

http://projectproto.blogspot.fr/2012/02/bluetooth-...

Le joystick de gauche pilote la DIRECTION (de gauche à droite), le joystick de droite pilote la vitesse "SPEED" (de haut en bas) et le sens de marche FW/RV:

-vers le haut: marche avant, accélération vers pleine vitesse

-en position centrale: arrêt

-vers le bas: marche arrière, accélération vers la pleine vitesse

Je l'ai modifié grâce aux logiciel Eclipse pour que l'application puisse générer, via le Bluetooth, la trame qui se présente sous la forme: "1018,0528"

- les 4 premiers caractères ASCII représente la direction (DIRECTION), vers 0 on tourne à gauche vers 1023 on tourne à droite

-les 4 derniers caractères ASCII représente la consigne de vitesse (SPEED), vers 0, manette vers le haut, marche avant pleine vitesse vers 540, manette au repos en position milieu, arrêt, vers 1023, manette vers le bas, marche arrière pleine vitesse

Cette trame est ensuite traitée par le récepteur.

Je vous joint le code source de mon application (à modifier par vos soins sous Eclipe) et l'application BTJoystickLUC qui peut s'installer sur n'importe quelle tablette ou téléphone sous android 2.2 minimum:

Conclusion Et Remerciements

Tout est parfaitement fonctionnel à part un problème au niveau des josyick android de vitesse: il ne faut pas le manipuler trop rapidement sinon à-coup de vitesse. Ceci est du au fait que 4 piles 1.25V sont insuffisantes pour un fonctionnement correct des drivers IR2302. Il faut donc se rabattre sur 2 solutions: 4X1.5V alcaline ou 6x1.25V NiMH. Avec ces dernières solutions, la voiture est très réactive et répond rapidement aux changements de régime (accélérations, décélérations, arrêts, vitesse variables).

La solution de pilotage proposée est chère: 1xCB220 à 35 euros pièce+1xF2M03GLA à 20 euros pièces=55 euros.

Grâce au pilotage android, on économise un microcontrôleur et une antenne (en remplacement de la télécommande Playstati... hackée).

Une solution avec des Atmega 328P bootloadés Arduino et module HC05: 2x8 euros+2x8euros=32 euros.

Cette dernière solution sera utilisée pour mes prochains projets. Prochain projet: pilotage d'un bateau+bluetooth ou zigbit+android+arduino Remerciements:

www.electroniquepratique.com

www.lextronic.fr

www.electroniquepratique.com

Je tiens aussi à remercier tout particulièrement Yus et son repository pour son énorme travail.

https://yus-repo.googlecode.com/svn/trunk/Android/apps/btjoystic