Papifab 2017 : Différence entre versions
(→9 novembre) |
|||
(7 révisions intermédiaires par un autre utilisateur non affichées) | |||
Ligne 188 : | Ligne 188 : | ||
'''1. Pièces''' | '''1. Pièces''' | ||
+ | |||
Pièces | Pièces | ||
Ligne 216 : | Ligne 217 : | ||
Coût : [https://fr.aliexpress.com/item/Smart-Electronics-Ultrasonic-Module-HC-SR04-HC-SR04-Distance-Measuring-Transducer-Sensor-for-arduino-Samples-DIY/32319770810.html?spm=a2g0s.9042311.0.0.rOVRfe 0,79 euros] | Coût : [https://fr.aliexpress.com/item/Smart-Electronics-Ultrasonic-Module-HC-SR04-HC-SR04-Distance-Measuring-Transducer-Sensor-for-arduino-Samples-DIY/32319770810.html?spm=a2g0s.9042311.0.0.rOVRfe 0,79 euros] | ||
− | |||
Le support de fixation | Le support de fixation | ||
Ligne 252 : | Ligne 252 : | ||
'''2. Soudures''' | '''2. Soudures''' | ||
+ | |||
Les bidouilles a faire pour un montage propre : | Les bidouilles a faire pour un montage propre : | ||
Ligne 286 : | Ligne 287 : | ||
[[Fichier:Photo_1.JPG|400px]] | [[Fichier:Photo_1.JPG|400px]] | ||
+ | |||
'''3. Assemblage''' | '''3. Assemblage''' | ||
+ | |||
Je n’ai pas utilisé la roulette avant d’origine et le boîtier de piles. Ces deux pièces bas de gamme comportaient des défauts. En outre l’alimentation avec 4 piles LR06 n’est pas suffisante pour alimenter l’arduino et les deux moteurs bas de gamme. C’est pourquoi j’ai commandé un adaptateur 9 volts. Pas de panique pour alimenter l’arduino une tension de 7 à 12V est recommandée. Les limites acceptées, à vos risques et périls, sont entre 6 et 20V. | Je n’ai pas utilisé la roulette avant d’origine et le boîtier de piles. Ces deux pièces bas de gamme comportaient des défauts. En outre l’alimentation avec 4 piles LR06 n’est pas suffisante pour alimenter l’arduino et les deux moteurs bas de gamme. C’est pourquoi j’ai commandé un adaptateur 9 volts. Pas de panique pour alimenter l’arduino une tension de 7 à 12V est recommandée. Les limites acceptées, à vos risques et périls, sont entre 6 et 20V. | ||
Ligne 300 : | Ligne 303 : | ||
Détail du branchement des moteurs sur les bornes M1 et M2 du shield. | Détail du branchement des moteurs sur les bornes M1 et M2 du shield. | ||
+ | |||
'''4. Programmation ''' | '''4. Programmation ''' | ||
+ | |||
J’ai essayé de repiquer du code à droite à gauche mais rien ne marchait. Mais je ne comprenait pas ce que je lisais. J’ai donc écrit un programme ultra simple. | J’ai essayé de repiquer du code à droite à gauche mais rien ne marchait. Mais je ne comprenait pas ce que je lisais. J’ai donc écrit un programme ultra simple. | ||
Ligne 337 : | Ligne 342 : | ||
// Création des deux moteurs | // Création des deux moteurs | ||
− | + | ||
#include <AFMotor.h> | #include <AFMotor.h> | ||
AF_DCMotor motora(1, MOTOR12_64KHZ); | AF_DCMotor motora(1, MOTOR12_64KHZ); | ||
− | AF_DCMotor motorb(2, MOTOR12_64KHZ); | + | AF_DCMotor motorb(2, MOTOR12_64KHZ); |
− | + | ||
− | // Utilisation des analogiques en digitaux | + | // Utilisation des analogiques en digitaux |
− | + | ||
#define trigPin A0 //Trig Ultrasons (sortie) | #define trigPin A0 //Trig Ultrasons (sortie) | ||
− | #define echoPin A2 //Echo Ultrasons (entrée) | + | #define echoPin A2 //Echo Ultrasons (entrée) |
− | + | ||
− | void setup() { | + | void setup() |
− | + | { | |
− | + | Serial.begin (9600); // option ecran pour vérifier le bon fonctionnement du capteur | |
− | + | motora.setSpeed(100); // réglage de la vitesse de 200 à 255, 100 c’est bien | |
− | + | motorb.setSpeed(120); // réglage de la vitesse de 200/255, 120 c’est mieux ou pas | |
− | + | pinMode(trigPin, OUTPUT); //Trig est une sortie | |
− | } | + | pinMode(echoPin, INPUT); //Echo est le retour, en entrée |
− | + | } | |
− | void loop() { | + | |
+ | void loop() | ||
+ | { | ||
+ | long duration, distance; | ||
+ | digitalWrite(trigPin, LOW); | ||
+ | delayMicroseconds(2); | ||
+ | digitalWrite(trigPin, HIGH); | ||
+ | delayMicroseconds(10); //Trig déclenché 10ms sur HIGH | ||
+ | digitalWrite(trigPin, LOW); | ||
+ | |||
+ | // Calcul de l'écho | ||
+ | |||
+ | duration = pulseIn(echoPin, HIGH); | ||
+ | |||
+ | // Distance proportionnelle à la durée de sortie | ||
+ | |||
+ | distance = duration*340/(2*10000); //Vitesse du son théorique | ||
+ | Serial.print(distance); // option affichage | ||
+ | Serial.print(" cm "); // option affichage | ||
+ | Serial.print(duration); // option affichage | ||
+ | Serial.println(" ms"); // option affichage | ||
+ | |||
+ | if (distance < 50) // Distance trop près | ||
+ | { | ||
+ | Serial.println("distance trop près < 50"); // option affichage | ||
+ | Serial.println("STOP"); // option affichage | ||
+ | motora.run(RELEASE); // stop | ||
+ | motorb.run(RELEASE); // stop | ||
+ | delay(1000); // durée | ||
+ | Serial.println("A DROITE"); // option affichage | ||
+ | motora.run(FORWARD); // a droite | ||
+ | motorb.run(BACKWARD); // a droite | ||
+ | delay(500); // durée | ||
+ | Serial.println("STOP"); // option affichage | ||
+ | motora.run(RELEASE); // stop | ||
+ | motorb.run(RELEASE); // stop | ||
+ | } | ||
+ | |||
+ | else { //Trop loin | ||
+ | motora.run(BACKWARD); // avance correction erreur de branchement | ||
+ | motorb.run(BACKWARD); // avance correction erreur de branchement | ||
+ | } | ||
− | + | delay(100); //0.1 sec entre deux mesures | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
Ligne 406 : | Ligne 411 : | ||
− | Programmer le robot en utilisant | + | Programmer le robot en utilisant Scratch |
Monter le senseur sur un servo moteur et le faire analyser son environnement à droite au milieu et à gauche pour mieux gérer l’évitement d’obstacle (imprimer le support et programmer) | Monter le senseur sur un servo moteur et le faire analyser son environnement à droite au milieu et à gauche pour mieux gérer l’évitement d’obstacle (imprimer le support et programmer) | ||
Ligne 423 : | Ligne 428 : | ||
Plutôt que de souder directement les fils sur le shield, souder une broche de pins | Plutôt que de souder directement les fils sur le shield, souder une broche de pins | ||
+ | |||
+ | [[Catégorie:papifab]] |
Version actuelle datée du 10 mars 2018 à 14:34
Sommaire
Oragnisation générale
PAPIFAB se poursuit en 2017.
Cette année nous déplaçons les RDV les jeudi de 9h30 à 11h30 avec échanges informels jusque 12h30. A la rentrée 2017, les échanges informels se transforment :Cela devient un jeu collectifs d’échange et de partage d’expérience d’animation :
- Quelqu’un témoigne d’une animation et tous en ensemble on réalise la documentation de l’animation.
- Cette personne amène (ou dépose sur ce wiki) des réalisations techniques, le code, des photos (si possible) de ses animations et on publiera un article pour documenter l'animation.
Date des RDV :
- 2 février 2017
- 2 mars 2017
- 6 avril 2017
- 4 mai 2017
- 1er juin 2017
- 6 juillet 2017
- 12 Octobre 2017
- 9 novembre 2017
- Décallé au 21 décembre 2017
- 11 janvier 2018
- 1er février 2018
- 15 mars 2018
- 5 avril 2018
- 17 mai 2018
- 7 juin 2018
PAPIFAB est un projet de la ville Brest.
- Les PAPI sur le site de la ville de Brest
- Liste des PAPI de Brest
- Présentation du projet sur a-Brest
Les ateliers
21 décembre
Fête de l'hivers à Kerourien !
Prochain RDV Décalé au 21 décembre, au centre social de Kerourien avec un menu spécial :
- 9h30-11h : remise des kits station météo (peut-être une surprise ?).
- 11h-12h : partage d’expérience : Solène.
- 12h-14h repas de crèpes à la main sur le billig !
- 14h-15h présentation publique de montage électronico-pédagogiques, peut-être sur le thème de Noël ?
Sous réserve de confirmation par Régine Roué pour le lieu et les billig.
9 novembre
Retrouvez les fichiers de la station météo Anna-MANI sur github : https://github.com/antonydbzh/Station-anna-MANI
Pour suivre la météo du local des petits débrouillards à Brest en temps réel : https://thingspeak.com/channels/320430
Petit test d'encapsulation HTML :
Olivier présente une voiture réalisée avec Arduino, un shield motor, un chassis motorisé et un capteur de distance à ultrasons.
Discussions :
- échange autour d'une dynamique brestoise et communautaire autour de la médiation numérique.
- relocalisation de la production de carte électroniques pédagogiques.
- infos sur le Science Hack day : http://www.sciencehackdaybrest.bzh/
- FAbRécup : FabRecup : au climat déclic le 28 octobre 2017
12 octobre
Parmi les désir de formation voici ce qui émerge :
- réaliser des animations à partir de récupération (esprit "la bidouille à 10 balle").
- station Météo
- Console de jeu vidéo
- modélisation 3D
Il y a un véritable besoin d'outil de mise en réseau des acteur brestois "PAPIFAB" (mattermost ? Facebook ?) pour partager ses veilles, ses trucs et astuces, poser des questions appeler à l'aide,... Nous aimerions une sorte de centre de ressource physique de projet numérique (prêt de mallettes pédagogiques, idée projet, etc...).
Il y a une envie de créer un RDV (soit un événement, soit des RDV régulier) pour s'interroger, débattre, façon café des sciences sur la robotisation, l'emplis, les évolutions numérique de la société.
Après aliexpress, on aimerait aussi petitsdebrouillardsexpress ;-) pour pour acheter simplement le matériel pédagogique !
Voici la vidéo du Conseil National du Numérique, 3min21 pour bien comprendre les question sur Google, Facebook, Amazon…
Calendrier 2017-2018 des RDV PAPIFAB :
- 9 novembre 2017
- Attention décalé au 21 décembre 2017
- 11 janvier 2018
- 1er février 2018
- 15 mars 2018
- 5 avril 2018
- 17 mai 2018
- 7 juin 2018
Liens vers le projet FabRecup pour celles et ceux que ça branche. Liste des composants à récupérer dans les objets : http://wiki.lesfabriquesduponant.net/index.php?title=FabRecup_:_qu%27y-a-t-il_dans_cet_objet_%3F
Exercice pour la prochaine foi : compléter la page avec des liens vers site qui montre comment récupérer et quoi faire avec la récup’
FabcityBrest : http://fabcitybrest.bientot.eu/ Lien vers les docs de la station Météo Anna-Mani : https://github.com/antonydbzh/Station-anna-MANI
Prochain rendez-vous à noter dans vos agenda :
- Jeudi 9 novembre 2017
- de 9h30 à 11h30 pour la formation
- et de 11h30 à 12h30 pour un jeu collectifs d’échange et de partage d’expérience d’animation :
- Quelqu’un témoigne d’une animation et tous en ensemble on réalise la documentation de l’animation.
- C’est Solène qui se lance.
- Elle amène des réalisation technique, des photos (si possible) de ses animations et on publiera sur le wiki des fabriques.
- Lieu : Une structure de quartier dans Brest ou sinon aux petits débrouillards - 2 , rue Paul Dukas à Brest.
confirmation à venir.
6juillet
On finalise nos petits bots ! Code et documentation détaillée disponible sur le Github du projet : https://github.com/antonydbzh/petitbot
1er juin
On poursuit la réalisation des petits bots.
4 mai
On poursuit la réalisation des petits bots.
6 avril
On poursuit la réalisation des petits bots.
2 mars
pour la séance de jeudi, nous nous voyons comme chaque 1er jeudi du mois de 9h30 à 11h30 pour le volet formation et en informel pour la suite jusque 12h30.
vous devez venir avec les parties du petit bot imprimée en 3D (si vous ne pouvez pas, on en imprimera pour vous - dites nous vos besoins) : Les fichiers à imprimer sont ceux-ci (sur la page wikidébrouillard, c’est le deuxième groupe de fichier 3D) :
- le dispositif de roue à bille : http://www.thingiverse.com/thing:1674143
- le boitier pour les piles : http://www.thingiverse.com/thing:2039429
Si vous voulez étudier le petit bot avant la formation, tout est sur Wikidébrouillard et en licence CC-By-SA
- Amenez également une bille pour la roue à bille si vous en trouvez facilement .
- Amenez aussi 4 piles AA - 1,5V rechargeables si vous en avez, si vous n’en avez pas nous fournirons des piles ordinaires.
Sinon, pour information, voici ou en sont les commandes de matériel :
- les wemos (carte de type arduino wifi) sont arrivés.
- les interrupteurs sont arrivés à l’aéroport de Roissy le 22 février
- les servo moteurs sont encore en Chine
- les résistances sont arrivées à l’aéroport de Roissy le 22 février.
Pour info voici les liens vers les composant que j’ai acheté :
Les commandes ont été passée le 2 février( Servomoteurs, wemos et interrupteurs) et le 4 février (résistances). Comme vous pouvez le constater, les livraisons prennent un certain temps, assez peu prévisible.
Je ne serais pas parmi vous ce jeudi, c’est Coline Rannou-Colliot qui encadrera la formation. quelque soit le matériel reçu, nous aurons largement de quoi faire.
- boitier à piles et cablage électrique
- soudure des broches du wemos
- préparation du châssis du petits bot
- programmation du wemos.
2 février
présentation du petit bot.
9 novembre
présentation de la station météo Anna MANI
présentation d' Elliot rev. 1527
1. Pièces
2. Soudures
3. Assemblage
4. Programmation
5. Perspectives
1. Pièces
Pièces
Coût : 7,63 euros
Le châssis du robot
Le connecteur 9 volts
Coût : 0,21 euros
Le shield Moteur
Coût : 1,74 euros
Le détecteur ultrasons
Coût : 0,79 euros
Le support de fixation
Coût : 0,51 euros (1,01 pour deux)
Un arduino uno
Coût : 3,89 euros
Le lien exact d’achat n’est plus disponible chez ce fournisseur. Alternative dans la même boutique : https://fr.aliexpress.com/store/product/Intelligent-lectronique-UNO-R3-Mega328P-CH340G-D-veloppement-Conseil-pour-arduino-Starter-Kit-Diy/1757110_32677198120.html?spm=a2g0w.12010615.0.0.6090aa35L0V1MV La puce CH340G a remplacé la Atmega16U2 (USB Puce), « plus rapide et moins cher » nous dit le vendeur. Peut-être un problème de driver à résoudre mais c’est encore moins cher : 2,67 euros
Cout global de la bidouille avec un support senseur en plus pour un deuxième robot :)
Arduino uno 3,89
Support 1,01
Détecteur 0,79
Connecteur 0,21
Shield 1,74
Chassis 7,63
Total 15,27 euros
2. Soudures
Les bidouilles a faire pour un montage propre :
Quatre petites soudures
Echo/Trig
Les deux premières soudures en A0 et A2
Le shield moteur s’encastre sur l’arduino. Les ports digitaux deviennent inaccessibles. Or nous avons besoin de deux de ses ports pour faire fonctionner le détecteur ultrasons HC-SR04.
Fort heureusement il est possible d utiliser les ports analogiques de l’arduino comme des ports digitaux. Et comme par hasard le shied moteur comprend des petits emplacements à souder. Nous allons donc souder le coté mâle de deux cavaliers mâle- femelle sur le shield moteur. Le jaune sera soudé sur la connexion A0 pour assurer la liaison vers le Trig du détecteur. Le bleu sera soudé sur la connexion A2 pour assurer la liaison vers l’ Echo du détecteur. Pourquoi le A2 et pas le A1 ? Parce que je débute en soudure et que ça fait plus de place entre les deux pins donc moins de risques de mettre de l’étain partout.
5Volts / Ground
Les deux dernières soudures en 5V et Gnd.
Tant que nous y sommes soudons le coté mâle d’un cavalier mâle- femelle de couleur rouge sur le connecteur 5 Volts du shield moteur. Et soudons le coté mâle d’un cavalier mâle- femelle de couleur noire sur le connecteur Ground du shield moteur.
Voilà ce que ça donne coté pile :
Et coté face :
3. Assemblage
Je n’ai pas utilisé la roulette avant d’origine et le boîtier de piles. Ces deux pièces bas de gamme comportaient des défauts. En outre l’alimentation avec 4 piles LR06 n’est pas suffisante pour alimenter l’arduino et les deux moteurs bas de gamme. C’est pourquoi j’ai commandé un adaptateur 9 volts. Pas de panique pour alimenter l’arduino une tension de 7 à 12V est recommandée. Les limites acceptées, à vos risques et périls, sont entre 6 et 20V.
Vous remarquerez que j’ai protégé l’arduino avec amour par un petit tapis de mousse alvéolé :) Pour le câblage des moteurs, j’ai laissé le hasard œuvrer. Une éventuelle inversion de la polarité dans les branchements peut-être résolue dans la partie programmation du projet. Il y a deux petites soudures à faire sur chaque moteur, un fil rouge et un fil noir. Je conseille d’étamer l’extrémité de tous les câbles avant de souder ou de visser dans les connecteurs du shield.
Détail du branchement des moteurs sur les bornes M1 et M2 du shield.
4. Programmation
J’ai essayé de repiquer du code à droite à gauche mais rien ne marchait. Mais je ne comprenait pas ce que je lisais. J’ai donc écrit un programme ultra simple.
Dans une premier temps, le détecteur ultrasons fait un test de distance avec l’obstacle le plus proche. Il envoie un ultrason par le trig et l’écoute en retour sur l’écho. Le programme déduit la distance par calcul.
Si la distance est inférieur à 50 cm. Le robot s’arrête. Il tourne à gauche et poursuit sa route. Si la distance est supérieure à 50 cm le robot poursuit sa route.
La partie du code sur le capteur de distance à ultrasons HC-SR04 avec Arduino Uno provient de TipTopBoards.com1
La vitesse des moteurs est à caler entre 200 et 255.
Je la règle à 100 et 120. Au delà le robot va trop vite à mon goût.
Le décalage de vitesse entre le moteur droit et le moteur gauche est dû à la moindre efficacité d’un des moteurs. Avec 100 et 100 le robot tire à droite au lieu d’aller tout droit.
Il y a trois ordres possibles pour les moteurs STOP, BACKWARD, FORWARD.Je passe par un STOP entre chaque ordre pour les soulager.
L’utilisation du shield nécessite de charger une librairie spécifique sinon vous aller avoir un message d’erreur à la compilation. La documentation est disponible à l adresse suivante : https://www.adafruit.com/product/81. Le détail de la librairie est décrit ici : https://learn.adafruit.com/adafruit-motor-shield/library-install. La librairie est disponible là : https://github.com/adafruit/Adafruit-Motor-Shield-library/zipball/master. Attention à bien télécharger la bonne librairie pour le Shield V1, obsolète, en suivant les liens ci-avant. Une fois téléchargée, installez la via le gestionnaire de librairies disponible dans le menu de l’Arduino IDE Croquis/ Inclure une bibliothèque/Ajouter la bibliothèque .ZIP. Profitez en pour vérifier la mise à jour de vos modules via le Gestionnaire de Bibliothèques.
//********************************************************** // Elliot // Capteur de distance à ultrasons HC-SR04 avec Shield Motor V1 et Arduino Uno // // Vcc → 5V // Gnd → Gnd // Trig → pin A0 // Echo → pin A2 // // Moteurs sur M1 et M2 // //********************************************************** // Création des deux moteurs #include <AFMotor.h> AF_DCMotor motora(1, MOTOR12_64KHZ); AF_DCMotor motorb(2, MOTOR12_64KHZ); // Utilisation des analogiques en digitaux #define trigPin A0 //Trig Ultrasons (sortie) #define echoPin A2 //Echo Ultrasons (entrée) void setup() { Serial.begin (9600); // option ecran pour vérifier le bon fonctionnement du capteur motora.setSpeed(100); // réglage de la vitesse de 200 à 255, 100 c’est bien motorb.setSpeed(120); // réglage de la vitesse de 200/255, 120 c’est mieux ou pas pinMode(trigPin, OUTPUT); //Trig est une sortie pinMode(echoPin, INPUT); //Echo est le retour, en entrée } void loop() { long duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); //Trig déclenché 10ms sur HIGH digitalWrite(trigPin, LOW); // Calcul de l'écho duration = pulseIn(echoPin, HIGH); // Distance proportionnelle à la durée de sortie distance = duration*340/(2*10000); //Vitesse du son théorique Serial.print(distance); // option affichage Serial.print(" cm "); // option affichage Serial.print(duration); // option affichage Serial.println(" ms"); // option affichage if (distance < 50) // Distance trop près { Serial.println("distance trop près < 50"); // option affichage Serial.println("STOP"); // option affichage motora.run(RELEASE); // stop motorb.run(RELEASE); // stop delay(1000); // durée Serial.println("A DROITE"); // option affichage motora.run(FORWARD); // a droite motorb.run(BACKWARD); // a droite delay(500); // durée Serial.println("STOP"); // option affichage motora.run(RELEASE); // stop motorb.run(RELEASE); // stop } else { //Trop loin motora.run(BACKWARD); // avance correction erreur de branchement motorb.run(BACKWARD); // avance correction erreur de branchement } delay(100); //0.1 sec entre deux mesures }
5. Perspectives
Programmer le robot en utilisant Scratch
Monter le senseur sur un servo moteur et le faire analyser son environnement à droite au milieu et à gauche pour mieux gérer l’évitement d’obstacle (imprimer le support et programmer)
Rajouter un klaxon buzzer
Mettre des phares / led
Décoration Paper Toy
Faire un concours de programmation via la distance parcourue en un temps donné
Essayer le projet avec un public…
Faire varier la vitesse en fonction de la distance à l’obstacle
Plutôt que de souder directement les fils sur le shield, souder une broche de pins