VOR-013BT

De VoWiki
Aller à la navigation Aller à la recherche
Evolution de VOR-013 pour intégartion du bluetooth.

AccueilNos ProjetsVOR-013

VOR-013couvBT.jpeg

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

VOR-013 BT added.jpg

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

Application LabVIEW 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 hobbyistes. 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.

LbvFaceAvant.JPG

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.

LbvDiagramme.JPG

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:

5-Capteur-colision-ou-vide-Servo-rot-continue-120515-complet.jpg

Scratch:

Scratch-002.jpg

Et application inventor 2:

App Inventor translate.png

Fin de la paranthèse sur les origine de Application Inventor.

Ce qui donne pour ce qui nous occupe

La face avant

AI2 VOR013 fav.JPG

Vient ensuite le "code" graphique Application Inventor 2.

Vue d'ensemble

AI2 VOR013 code1.JPG

Les blocks d'initialisation

AI2 VOR013 code2.JPG

Blocks timers

AI2 VOR013 code10.JPG

Timer1 réglé pour déclencher toutes les 200ms

AI2 VOR013 code3grp.JPG

Timer 2 dédié à l'émission de la trame de synchro

AI2 VOR013 code11.JPG AI2 VOR013 code5.JPG

La liste des périphériques bluetooth

AI2 VOR013 code6.JPG

Les blocks propres à chaque objet de la face avant

AI2 VOR013 code7.JPG

AI2 VOR013 code8.JPG

Et on termine par la procédure label_TX_sync_update appelée par clock2 timer

AI2 VOR013 code9.JPG

Bilan des io

Le besoin est de 10io + un SPI + 2 UART (& pour le Btet un pour le debug)

VOR13BT BilanIO.JPG

Autres évolutions possibles

Pour palier les problèmes 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


Teensy32 front pinout.png Teensy32 back pinout.png

Wemos: trop juste en terme d'IO

Une 2560 est trop grande.

BeagleBone et RaspBerry c'est rich !

MSP432P401R LaunchPad Pareil c'est riche. Quoi que pas tant que ça: 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

Mdeb3.jpg 40 pins au pas de 2.54 ! 50.8mm de long