Projets:SmallRobot

Notes:
 * cette page est un work in progress. Merci de revenir plus tard, et/ou de contacter directement clem at electrolab.fr ou clmnt sur irc (freenode, #electrolab).
 * comme tout le contenu de ce wiki, cette page est sous licence CCBySA.

= Introduction = Le but de ce projet est de développer un petit kit d'initiation à l'électronique et à la robotique, sur le modèle de celui-ci]. Réalisé à la suite d'un concours visant à encourager la création de kits à bas cout, l'objectif de prix de revient par kit est de 10$.

Un grand classique de la robotique est le robot suiveur de lumière (voir par exemple les robots de Valentino Braitenberg, décrits dans son livre "véhicules, expérience de psychologie synthétique"). Ces petits robots relativement simples se déplacement de manière autonome, dans la direction de la lumière la plus intense.

Par construction, ce projet est abordable pour tout le monde, et vise à accompagner les débutants dans la réalisation de leur premier robot programmable.

= Description = Les outils & matériaux nécessaires à la réalisation de ce projet sont relativement courants.

(Photo du robot complet)

Pour ce qui est du chassis et de la mécanique, plusieurs approches sont valables: Voir les plans des différentes pièces pour inspiration (lien vers la bonne section).
 * utiliser du carton, du bois ou du plastique de récupération
 * utiliser une machine telle que fraiseuse CNC, découpeuse laser voire imprimante 3D type reprap, outils auxquels vous pourrez avoir accès dans tout bon hackerspace/makerspace/fablab qui se respecte.
 * acheter des éléments réalisés dans une structure telle que celle-ci, si vous souhaitez mettre toutes les chances de votre coté.

Coté électronique, le robot est constitué: La suite de cette documentation devrait vous permettre de mieux saisir le rôle de chacun de ces éléments.
 * d'un petit microcontroleur
 * de deux servomoteurs de modélisme légèrement modifiés
 * de deux capteurs de lumière (résistance variable)
 * d'une batterie, et de leds témoin.

Lorsque le robot est mis sous tension, les leds clignottent plusieurs fois. Ensuite, le robot examine en permanence l'intensité lumineuse captée par les photorésistances. Si l'une d'entre elles détecte une intensité lumineuse importante, la led correspondante est allumée, et le moteur du coté opposé se met à tourner vers l'avant: si le capteur gauche détecte de la lumière, la roue droite se met à tourner vers l'avant. Si les deux capteurs détectent de la lumière, les deux leds s'allument, et les deux moteurs se mettent en marche. Si le robot ne détecte pas de lumière, il reste immobile.

Notez que ceci correspond au fonctionnement de base d'un robot suiveur de lumière, décrit par Braitenberg. Il est bien entendu possible (voire recommandé !) d'envisager d'autres modes de fonctionnement du robot... puisqu'il est programmable, selon le bon vouloir de la personne qui le réalise, c'est à dire vous !

Les performances typiques de ce robot sont: XXXmA (à définir selon réalisation), ce qui laisse espérer YYY temps de fonctionnement. Sa vitesse de déplacement est d'environ ZZZ cm/s Vous pouvez le voir en action ici (insert link vers une vidéo)

= Applications&bénéfices pédagogiques =


 * Il est possible de réaliser un robot en entier sur une période de temps relativement courte, et avec un budget restreint
 * Ce faisant, plusieurs notions fondamentales d'électronique, mécanique et programmation peuvent être découvertes puis approfondies, par la pratique
 * Le principe de fonctionnement du robot à roues différentielles est étudié de facon concrète.
 * Les capacités de soudure de composants sont développées
 * La programmation de microcontroleur est également abordée
 * Le dessin de pièces mécaniques grâce à un logiciel de CAO peut être abordé
 * La lecture et l’interprétation de schémas électroniques, ainsi que les lois fondamentales de l'électronique, peuvent être abordées sur un exemple concrêt
 * Plusieurs expérimentations sur le mode de fonctionnement du robot peuvent être menées, pour le modifier et l'améliorer
 * La manipulation de plusieurs outils fondamentaux peut être abordée: multimètre, fer à souder, ...

Dans tous les cas, la mise en pratique immédiate, et l'atteinte d'un objectif initial ravira les curieux qui souhaitent s'initier aux domaines variés nécessaires pour la réalisation d'un robot.

= Liste de fournitures = Afin de faciliter la réalisation de ce projet, voici la liste de tous les éléments nécessaires.

Composants électroniques
Name 	        Description 	Unit price (link) 	Quantity 	Total ATtiny85 Variante:PIC12F683 	The brain 	1.78$ 	1 	1.78$ DIP socket 	To insert or remove the mcu 0.18$ 	1 	0.18$

Piles 1v5 x4 Variante: Lipo battery 	To power the system. 3.7V (1 cell) and 130mAH. 1.33$ 	1 	1.33$ Male connector 	To plug the battery 	0.47$ 	1 	0.47$

LDR 	       To detect the light 	0.32$ 	2 	0.64$ Servo 	       To move the robot 	2.69$ 	2 	5.38$ Led diode 	To show the state 	0.13$ 	2 	0.26$ 180O resistor 	For the leds 	0.08$ 	2 	0.16$ 10KO Resistor 	For the LDR and servos 	0.08$ 	6 	0.48$ PCB/plaque de prototypage wires (couleurs, longueurs)

Vous pouvez trouver ce kit complet bientôt sur shop.electrolab.fr

pour démarrer l projet et faire la premièr maquette, dans le lab, nous avons aujourd'hui les pièces suivantes :

- les 2 servos - les diodes - resistances 10K ohm

à commander : - 1x PIC12F683 + son DIP socket - 2x resistances de 180 ohm - 1x LDR - 1x - Lipo battery 130mAH

les outils et le reste on a je pense dans le lab.

Composants mécaniques
MDF Variante:Cardboard (any recycled box) heatshrink sleeve 	0.05$ (recycled materials or minimal quantities) 		0.05$

Outils
Tous ces outils sont disponibles dans un hackerspace/makerspace/fablab tel que l'Electrolab. Si vous bricolez chez vous, ils constituent le coeur de votre atelier de bricolage électronique/robotique.

Name 	Target 	Estimated price Fixed blade trimming knife 	To cut the cardboard 	4$

Glue 	To stick the cardboard, servo arms and servos 	3$

Adhesive tape 	To stick the template and battery to the cardboard 	1.50$

Needle 	To pierce the cardboard 	0.02$

Hot glue gun 	To stick the LDR, leds, resistors and socket to the cardboard 	15$

Pistol automatic wirestripper 	To strip the wires 	10$

Lighter 	To shrink the heatshrink sleeves 	2$

Flush cutter 	To cut the servo’s gear stop, wires, leads and heatshrink sleeves 	5$

PH0 screwdriver 	To drive the servo screws 	1$

Soldering iron 	To solder the wires with LDR, leds, resistors, connector and socket 	10$ – 25$

Solder 	To solder 	5$

Programmer 	To program the PIC 	14$ – 45$

Battery charger 	To charge the lipo battery 	15$ – 75$

Multimeter 	To measure the lipo battery charge 	5$ – 30$

Voir XXX pour une liste de fournisseurs potentiels de ces outils. Si vous souhaitez constituer une mallette d'activité pour une structure (école, club, ...) ou à titre personnel (voire, en cadeau) n'hésitez pas à nous contacter pour obtenir de l'aide.

= Plans, schémas & code =

Mécanique
Print the first layer of this DXF template to scale 1:1. I have used an open source application called LibreCad. Click to zoom:

Electronique
This is the electronic schema. I have used an open source application called Fritzing. Click to zoom:

Code source
In general terms the running is:

When battery is plugged, the leds blink 10 times quickly. The leds have a special configuration, so if the PIC pin is configured as output and put it high, then the left led is lighting, if the PIC put the pin low, then the right led is lighting; if the PIC pin is configured as input (high impedance) the leds remain off.

The timer0 and ADC interrupts are activated. The timer0 interruption is configured for triggering each 0.1 ms.; its functionality is to count the servos timings. The ADC interrupt is triggered each time the ADC conversion is finished; its functionality is to activate the associated led (if a threshold exceeds), put a value in a state variable, change the ADC channel and read the next LDR.

Inside the main loop of the program, it is checking the state value for knowing what servos have to be activated. The activation of the servos is different due to they are put face to face and the rotation to go straight forward is distinct in each one. One of them has to have signals of 1 ms. high and 19 ms. low, while the other has to have signals of 2 ms. high and 18 ms. low.

From here you can download the source code of the PIC firmware (GPL licensed). If you want to understand the running of the registers of PIC 12F683, the best is to read the datasheet.

= Fabrication =

La fabrication du robot se déroule en plusieurs étapes:
 * mécanique:
 * modification des servomoteurs
 * fabrication du chassis et des roues
 * électronique:
 * Assemblage du circuit

Precautions
The trimming knife’s blade is sharp, take care of cutting yourself with it. The needle is sharp, take care of pricking yourself with it. The glue is strong, take care of touching it with your skin or contacting your eyes. The hot glue is really hot, take care of touching it with your skin. The iron solder is hot, take care of touching it with your skin nor contacting the cardboard and avoid to breath the solder smoke. The lipo battery must not be short circuited, nor overcharge above of 4.2V. nor discharge below of 3V. The lighter flame is very hot, take care of touching it with your skin nor contacting the cardboard

Modification des Servos
The servos include electronics to manage their rotation direction and have gears to increase their traction strength, however they only can rotate 180 degrees, so we have to modify them to become in a continous rotation motor. First of all is to strip extracting the 4 base screws and detach the top and bottom covers: Then you have to extract the gears. One of them has a tab for making contact and don’t advance anymore (marked as a red circle): This is the result after cutting the tab: The servo has a POT. We have to desolder the wires (green arrows) and break the wall which contains the two making contact tabs (red arrows): This is the result after breaking the wall: The next step is to solder the two 10KO resistors making a voltage divider with the previous step’s desoldered wires (the white wire goes between the two resistors). To isolate the contacts use heatshrink sleeve: Isolate the other end with heatshrink sleeve: Finally join all gears again, insert the electronics, put the covers and screw on:

Fabrication du chassis et des roues
Stick the template paper to the cardboard with adhesive tape. Pierce the little circles with a needle and cut the lines with the trimming knife. After that, insert the needle trough the wheel hole, Put some glue in the straight servo arm and introduce its central hole by the needle until making contact with the wheel. Repeat the process with the other wheel: Remove the sticker from left servo’s side, put some glue in that lateral and stick it on the big cardboard surface at the top left end. Repeat the process at the other side with the other servo: Cut slightly the small cardboard surface by the one third, put some glue there and stick it to the incision made before in the big cardboard surface (according to the template). Place the two wheels to the axis of the servos: Pierce 4 holes between the servos, insert the LDR from the bottom side, rotate them 30 degrees from the center and stick them with hot glue. Pierce two holes at both sides, insert the led diodes from the bottom side and stick them with hot glue

Variante: à partir de pièces lasercuttées

Electronics
LDR

Solder one of the leads of each LDR to VCC. Solder the other lead of each LDR to one end of a 10KO resistor. From the previous left union, solder a wire to socket pin 7 and put heatshrink sleeve. From the previous right union, solder a wire to socket pin 6 and put heatshrink sleeve. Solder the other end of each resistor to GND. Stick the resistors to base with hot glue.

Servo

Strip the wires and solder the red one to VCC and the brown one to GND in each servo. Solder the orange wire of the left servo to socket pin 3 and put heatshrink sleeve. Solder the orange wire of the right servo to socket pin 2 and put heatshrink sleeve.

LED

Solder one of the leads of a 180O resistor to VCC. Solder together the loose lead from previous resistor with one of the leads from the second resistor. From previous union, solder a wire to the right led’s anode. From previous union, solder a wire to the left led’s cathode. Solder the second resistor’s remaining end to GND. Stick the resistors to base with hot glue. From the right led’s cathode, solder a wire to the left led’s anode. From previous union, solder a wire to socket pin 5 and put heatshrink sleeve.

PIC

Solder the socket pin 1 to VCC and put heatshrink sleeve. Solder the socket pin 8 to GND and put heatshrink sleeve. Stick the socket to base with hot glue.

Battery connector

Plug the connector to battery and check which lead is positive (or 3.7V) and which lead is negative (or 0V.) with a multimeter. Extract the battery from connector and solder a red wire from positive lead to VCC and a brown/black wire from negative lead to GND. Put heatshrink sleeve.

Variante: avec un circuit imprimé/plaque de prototypage.

Charger le binaire
From here you can download the .hex file to program the PIC.

The compiler I have used is SDCC, which is free software. I have typed the following command to compile it:

sdcc -mpic14 -p12f683 --use-non-free lios.c

When you want to upload the .hex file to the pic you have to own a PIC programmer and a software that manages the programmer. There is a lot of variety. I have used the pickit3 from Microchip and its software for windows, but there are other alternatives more cheaper that can be used with free software or freeware for linux, mac and windows.

= Pour aller plus loin = Modifions le code source Aller plus vite ajouter d'autres capteurs

= Galerie de photos&vidéos = à remplir