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

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.

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:


Et application inventor 2:

App Inventor translate.pngFin de la paranthèse sur les origine de Application Inventor.

Ce qui donne pour ce qui nous occupe

La face avant

AI2 VOR013 fav.JPGVient 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.JPGTimer1 réglé pour déclencher toutes les 200ms

AI2 VOR013 code3grp.JPGTimer 2 dédié à l'émission de la trame de synchro


AI2 VOR013 code11.JPG AI2 VOR013 code5.JPG

La liste despériphériques bluetooth

AI2 VOR013 code6.JPG=== Les blocks propres à chaque objet de la face avant === AI2 VOR013 code7.JPGAI2 VOR013 code8.JPGEt 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


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 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

Mdeb3.jpg40 pins au pas de 2.54 ! 50.8mm de long