VOR-013BT
← Accueil ← Nos Projets ← VOR-013
Association VoRoBoTics
Date : 3/9/2016
Auteur : J MajorLee Soranzo
Relecteur :
Thème: Robotique, communication bluetooth, Android
Projet VORmarley
Bluetooth intégration
Module
HC-05 Wireless Bluetooth Serial Transceiver Module For Arduino vendu par 5.
Configuration
Configuration: juste changement de nom du module : HC-05 vers VOR013
Vitesse 9600,8,N,1
La vitesse pour la configuration pour ce type de module reste inchangée à 38400. Et c'est justement ce qui est agréable avec le HC-05. Même en cas de fausse manip...
Câblage/intégration matérielle
Connexion de RX du module à A0 (orange) et TX à A1 (bleu). Rares broches disponibles.
GND : fil vert et VCC : 5V en blanc
Fixation du module avec un collier d'électricien, le module n'a pas de trous de vis !
Entre le bouton poussoir et la carte micro-SD
Ajout du bluetooth.
Au passage déplacement du BP pour plus d'accessibilité.
Soft
Softwareserial
Création de la classe V13BT (fichiers bluetooth.cpp et .h)
Suggestion de Pierre : créer une classe pour le robot
- Création également du fichier VOR13.h (pour les paramètres du robot)
Protocole :
En ascii et en claire. Commandes terminées par un CR, LF ou seulement un des 2 pour plus de souplesse.
Sens VOR-013 vers PC : mode, état, lastrec
Sens PC vers VOR-013:
D_etoile, D_carre, D_losange = passes en mode dessin et mémorise le nom du dessin.
... le suffixe correspond directement au nom du fichier sur la carte SD
E_prenom = passe en mode écriture et stocke ce prénom
et bien sûr la commande GO
Conflit entre Softserial et Servo voir le doc de test.
Pour le test de la réception création d'un programme de test labView
Ajout d'un flagBTconnecte pour ne pas commencer à émmettre (ou émettre) quand il n'y a personne pour recevoir
Appication pour la mise au point
Pour la mise au point de la communication avec VOR-013, j'ai utilisé LabVIEW (une licence officielle payante peut être obtenu à un prix dérisoire pour les hobbyist. Voir en fin de document au §webographie). Au départ, je ne destinais ce programme qu'à la mise au point, et puis finalement, on s'est dit que pour les événements auquel le VoLAB participe, ce serait bon de garder cette application en plus de la version Android. Mais on a un peut décorer la face avant.
Une boucle while qui gère le lien série avec ses écriture et ses lecture et le tour et joué. Si j'ai choisi LabView c'est parce que je l'utilise courament dans ma profession.
Mode connecté
Le principe est que la base au sol (soft sur PC labView aou appli Android) envoie "syncVOR13" régulièrement avant timout DELAYTIMEOUTCONNEXION 20 secondes.
Bug avec le BT
Au départ, j'ai pensé a une incompatibilité entre softwareSerial et la lib SD tellement les pb.
Voir doc de test pour les détails.
La conclusion est qu'il s'agit d'un problème de taille mémoire. Même si l'IDE Arduino à la compilation indique qu'il rest encore plus de 40% de place disponible.
Application android avec AP inventor 2
Application Inventor 2 est un outil MIT pour développer facilement et rapidement des application Android. C'est un IDE via navigateur gratuit et parmis les langue supportées, il y a le français pour ceux qui préfère.
Le language de programmation est entièrement graphique et est basé sur openblocks (vous conaissez sans mieux Sratch ou Ardublocks).
Un air de famille
Ardublock:
Scratch:
Et application inventor 2:
Fin de la paranthèse sur les origine de Application Inventor.
Ce qui donne pour ce qui nous occupe
La face avant
Vient ensuite le "code" graphique Application Inventor 2.
Vue d'ensemble
=== Les blocks d'initialisation === === Blocks timers === Timer1 réglé pour déclencher toutes les 200ms
Timer 2 dédié à l'émission de la trame de synchro
La liste despériphériques bluetooth
=== Les blocks propres à chaque objet de la face avant === Et on termine par la procédure label_TX_sync_update appelée par clock2 timer
Bilan des io
Le besoin est de 10io + un SPI + 2 UART (& pour le Btet un pour le debug)
13 | SPI SCK | Carte SD | ||||
12 | SPI MISO | |||||
11 | SPI MOSI | |||||
10 | CS SPI | |||||
9 | ||||||
8 | ||||||
7 | Moteur droit | |||||
6 | ||||||
A0 | TX | Bluetooth | 5 | |||
A1 | RX | 4 | ||||
A2 | Moteur gauche | 3 | LED | |||
A3 | 2 | BP start | ||||
A4 | 1 | Reservé debug | ||||
A5 | 0 | Reservé debug |
Autres évolutions possibles
Pour palier les problème de mémoire, choisir une autre carte contrôleur.
PyBorad : elle implique de refaire tout en python. A-t-elle assez d'IO ?
Teensy 3 ou mieu 3.2 : se programme depuis l'IDE Arduino (size 17.8 x 32.6)
Dispo chez Lextronic.fr à 28.26€ +Fdp 25€
Snootlab: 25€+6,92€ FdP
Wemos: trop juste en terme d'IO
Une 2560 est trop grande.
BeagleBone et RaspBerry c'est rich !
MSP432P401R LaunchPad Pareil c'est riche non 21€32 chez Conrad, 12.97 chez Mouser attention FdP (20€) + facteur de forme trop important.
Mbed microcontroler http://www.lextronic.fr/P19557-module-microcontrole-mbed.html