VOR-013
← Accueil ← Nos Projets
Association VoRoBoTics
Date : 4/7/2016
Auteur : J MajorLee Soranzo
Relecteur :
Thème: Robotique
Projet VORmarley
C'est bien gentil tout ça / fabrication
Mais moi, je veux juste le fabriquer ! C'est par ici !
Problématique
A partir d'un modèle web créer un petit robot simple et facile d'utilisation pour nos events.
Modèle de départ :
Arduino Drawing Robot by MakersBoxon October 25, 2015 sur Instructables
Au début cette réalisation ne devait pas faire l'objet de développements particuliers. Juste un fabrication à partir d'un projet existant.
Ca aurait du donner ça :
aujourd'hui ça donne ça:
Vue arrière avec carte SD et la place pour le Bluetooth |
Ajout pack batterie
Dev sous Fusion 360
Pour une batterie de 3,7V lipo avec un afficheur de tension
Ajout d'une carte SD pour y mettre l'alphabet
Aspect logiciel
On pourra alors ajouter d'autres dessins pre-programmés.
Pourquoi des broches spécifiques pour la carte SD ? 11, 12, 13 c'est le bus SPI seule la 10 n'est pas nécessaire
- déplacer les files du moteur de gauche pour libérer le bus SPI OK
- Ajouter carte SD
Pb : sur la carte SD, on a les commandes qui sont écrites dans fichier texte directement pompé du fichier letters.h sous la forme {TR,17}, car en fait dans le fichier .h cela correspond à l'initialisation d'un tableau de byte, tableau qu'il faut reconstruire à partir de la lecture ascii,
- lire le fichier
- en extraire les couples commandes, paramètre
- convertir la commande de ASCII à valeur de l'énum : enum{ PD, PU, FW, TR, TL };
- remplir le tableau cmdBuffer
Création de la class Lettres pour tout regrouper. : OK
Bon ok on a d'un côté la classe Lettre qui gère la récupération de la lettre sur la carte SD et qui s'utilise sans même avoir besoin d’instancier:
exemple : Lettre( 'a')
De l'autre côté on a toute les fonctions inhérentes au moteur et au déplacement du robot sous forme de fonction C standard. Comment relie-t-on les 2 ?
Classe moteur => classe fille: Lettre
Classe lettre qui intègre tout
Classe moteur et classe Lettre qui instancie en tant que membre un/des moteurs
On a les fonctions
void traceLetter(char c) => méthode de Lettre
void trace(int cmd, int param)
void forward(float distance) : commande les moteurs
void backward(float distance) : commande les moteurs
void right(float degrees) : commande les moteurs
void left(float degrees) : commande les moteurs
void done()
void penup()
void pendown()
Au final, une classe Traceur et une classe fille Lettre
Importance du nom de la classe : la classe Lettre sous-entend qu'il faudrait créer une instance par lettre. Alors que si on la nomme Lettreur (pour : classe qui trace des lettres) alors l'instance devient évidente.
Deux méthodes publiques setLettre et traceLettre
Privilégier dans Arduino les méthodes .begin() ou setup() ou .start() plutôt que de faire les init dans le constructeur. Cela permet une meilleur maîtrise de l'instant où le code est exécuté.
Aspect mécanique
Fixation du lecteur de carte SD design dans FUSION360
Il n'y a pas beaucoup de place. Après mur réflexion, j'ai opté pour une plateforme supplémentaire au dessus du shield ARDUINO
Anecdote sur la création de la classe Flasher
Conformément à l'article Multi-tasking the Arduino - Part 1 paru sur le site ADAFRUIT et que je suis en train de traduire en français.
J'ai créé une classe FLASHER pour faire clignoter la LED sans avoir recours à la fonction bloquante delay().
Malheureusement pour moi, j'ai voulu utiliser la LED 13 pour la mettre au point et cela dans le if de test de présence de la carte SD.
Ce n'est pas une bonne idée, en effet, la classe SD utilise les broche SPI 13, 12, 11 et 10.
Le futur de ce petit projet
Outre le fait de le balader et de l'utiliser en convention. Nous réfléchissons (juillet 2016) à une version sans fil. La grande question est WIFI ou Bluetooth. Et comme nous réfléchissons également en ce moment à une plateforme serveur IoT WIFI pour nous robot qui serait transportable en convention, la balance penche côté WIFI même si cela représente plus de boulot. Affaire à suivre donc... sur Facebook, Tweeter et consorts.
Au fait pourquoi VOR-Marley ?
Au VoLAB, nous avons pour tradition de nommer les objets. Pour certains cela tombe sous le sens. Le tour à bois se nomme Woody, L'imprimante 3D Witbox, c'est Wity. La charlyrobot c'est Charlotte. Et vus la couleur des fils qui le compose, VOR-013 est devenu VOR-Marley !
Fichiers sources
Code des lettres sans SD, avec SD, sans BT et avec BT Tout ça c'est sous github
Ou si vous préférer la version Open Office 4
webographie
http://fr.wikipedia.org/wiki/Licence_Creative_Commons
https://learn.adafruit.com/multi-tasking-the-arduino-part-1/overview
http://www.instructables.com/id/Arduino-Drawing-Robot/
multimètre :
Licence
Ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution 4.0 International.
Paternité 'by' :L'œuvre peut être librement utilisée, à la condition de l'attribuer à l'auteur en citant son nom.
Note aux auteurs de documents du VoLAB, Vous avez la possibilité de changer de licence. Mais ce serait bien de rester libre et ouvert. Encore une fois ceci est une recommandation et pas une obligation.
Rédaction en langue française
Partant du constat de terrain qu'une énorme masse d'information concernant les sujets qui nous intéressent comme entre autres l'impression 3D n'étaient disponibles que dans la langue de Shakespeare
et que de nombreuses personnes dans notre entourage ne maîtrisaient pas la dite langue et soucieux de diffuser encore plus l'information,
nous avons pris le parti, au VoLAB, de rédiger nos documents de préférence en langue française.
VoLAB
Un mot sur le VoLAB. VoLAB est un fablab implanté à environ 28km au nord-ouest de Paris dans l'agglomération de Cergy Pontoise.
Il est animé par l'association VoRoBoTics.
Site internet www.vorobotics.com
← Accueil ← Nos Projets