<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://wiki.labaixbidouille.com/index.php?action=history&amp;feed=atom&amp;title=ERICbot</id>
		<title>ERICbot - Historique des versions</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.labaixbidouille.com/index.php?action=history&amp;feed=atom&amp;title=ERICbot"/>
		<link rel="alternate" type="text/html" href="http://wiki.labaixbidouille.com/index.php?title=ERICbot&amp;action=history"/>
		<updated>2026-04-18T00:39:07Z</updated>
		<subtitle>Historique pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.26.0</generator>

	<entry>
		<id>http://wiki.labaixbidouille.com/index.php?title=ERICbot&amp;diff=126&amp;oldid=prev</id>
		<title>Adminsys : Page créée avec « == Présentation ==  L'objectif est de pouvoir gérer et interagir avec le ERICbot.  vignette  == Dotation matérielle ==  Nous disposons d'un Ar... »</title>
		<link rel="alternate" type="text/html" href="http://wiki.labaixbidouille.com/index.php?title=ERICbot&amp;diff=126&amp;oldid=prev"/>
				<updated>2015-12-09T12:36:47Z</updated>
		
		<summary type="html">&lt;p&gt;Page créée avec « == Présentation ==  L&amp;#039;objectif est de pouvoir gérer et interagir avec le ERICbot.  &lt;a href=&quot;/index.php/Fichier:Robotface.jpg&quot; title=&quot;Fichier:Robotface.jpg&quot;&gt;vignette&lt;/a&gt;  == Dotation matérielle ==  Nous disposons d&amp;#039;un Ar... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Présentation ==&lt;br /&gt;
&lt;br /&gt;
L'objectif est de pouvoir gérer et interagir avec le ERICbot. &lt;br /&gt;
[[Fichier:Robotface.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
== Dotation matérielle ==&lt;br /&gt;
&lt;br /&gt;
Nous disposons d'un Arduino Uno ainsi que d'un châssis de robot composé de pièces imprimées via une imprimante 3D. Le robot est doté de:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 2 moteurs&lt;br /&gt;
* un interrupteur&lt;br /&gt;
* un shield ultra son&lt;br /&gt;
* 2 roues&lt;br /&gt;
* un axe à 360°&lt;br /&gt;
* Un bloc de piles&lt;br /&gt;
* Un led ring&lt;br /&gt;
&lt;br /&gt;
== Assemblage ==&lt;br /&gt;
==== L'interrupteur ====&lt;br /&gt;
&lt;br /&gt;
Dans un premier temps, il est nécessaire de fixer l'interrupteur sur la plaque. Ensuite, il faut souder les fils sur les pins de l'interrupteur.&lt;br /&gt;
Ces fils sont, ensuite, à souder sur la connectique du bloc à pile.&lt;br /&gt;
&lt;br /&gt;
=== Le bloc de piles ===&lt;br /&gt;
&lt;br /&gt;
Il est fixé au carter de l'interrupteur avec du scotch double face. Il est relié à la prise d'alimentation de l'Arduino Uno.&lt;br /&gt;
 &lt;br /&gt;
=== L'Arduino Uno ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Robotarduino.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
Il faut fixer l'Arduino Uno sur le châssis. c'est à ce moment là qu'il est nécessaire de câbler le contrôleur à ses périphériques.&lt;br /&gt;
Afin de câbler les moteurs, il faut utiliser des fils mâle-mâle pour assurer la connexion à l'Arduino.&lt;br /&gt;
Cabler la carte Arduino selon les principes du tutoriel [Un moteur qui sait où il va : le servomoteur]&lt;br /&gt;
&lt;br /&gt;
Il est à noter que, dû au fait qu'il n'y ait qu'une seule prise 5V sur l'Arduino Uno, il est nécessaire de démultiplier le 5V en faisant des straps.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Les roues ===&lt;br /&gt;
&lt;br /&gt;
Pour améliorer l'adhérence sur le sol du robot, il est recommandé de coller sur la roue une petite courroie.&lt;br /&gt;
&lt;br /&gt;
== Faire avancer et reculer le ERICbot ==&lt;br /&gt;
Programmer le code et faire fonctionner les moteurs. Nous nous rendons compte que les roues ne sont pas synchronisées. &lt;br /&gt;
Créer la fonction pour les faire avancer et reculer de manière synchronisées&lt;br /&gt;
&lt;br /&gt;
== Faire tourner à droite et à gauche le ERICbot ==&lt;br /&gt;
Programmer le code et faire fonctionner les moteurs.&lt;br /&gt;
&lt;br /&gt;
=== Le code ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Servo myservoGauche;&lt;br /&gt;
Servo myservoDroite;&lt;br /&gt;
 &lt;br /&gt;
int pos = 0;&lt;br /&gt;
void arreter() {&lt;br /&gt;
	myservoGauche.write(90);     &lt;br /&gt;
    myservoDroite.write(90);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void avancer(int temps){&lt;br /&gt;
    myservoGauche.write(0);     &lt;br /&gt;
    myservoDroite.write(180);&lt;br /&gt;
    delay(temps);&lt;br /&gt;
    arreter();&lt;br /&gt;
}&lt;br /&gt;
void reculer(int temps){&lt;br /&gt;
    myservoGauche.write(180);     &lt;br /&gt;
    myservoDroite.write(0);&lt;br /&gt;
    delay(temps);&lt;br /&gt;
    arreter();&lt;br /&gt;
}&lt;br /&gt;
void tournerGauche(int temps){&lt;br /&gt;
    myservoGauche.write(90);     &lt;br /&gt;
    myservoDroite.write(180);&lt;br /&gt;
    delay(temps);&lt;br /&gt;
    arreter();&lt;br /&gt;
}&lt;br /&gt;
void tournerDroite(int temps){&lt;br /&gt;
    myservoGauche.write(0);     &lt;br /&gt;
    myservoDroite.write(90);&lt;br /&gt;
    delay(temps);&lt;br /&gt;
    arreter();&lt;br /&gt;
}&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  myservoGauche.attach(2);&lt;br /&gt;
  myservoDroite.attach(4);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
avancer(2000);&lt;br /&gt;
delay(1500);&lt;br /&gt;
tournerGauche(1000);&lt;br /&gt;
delay(1500);&lt;br /&gt;
reculer(2000);&lt;br /&gt;
delay(1500);&lt;br /&gt;
tournerDroite(1000);&lt;br /&gt;
delay(1500);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Le shield ultra son ==&lt;br /&gt;
&lt;br /&gt;
Il se trouve à l'avant du robot. Quatre fils le relient à l'Arduino Uno. &lt;br /&gt;
Il y a:&lt;br /&gt;
* 2 digital inputs&lt;br /&gt;
* du 5v&lt;br /&gt;
* une masse&lt;br /&gt;
&lt;br /&gt;
Se référer au tutoriel [Mesure de distance - Ultrason] afin de réaliser le branchement des capteurs situés à l'avant du ERICbot.&lt;br /&gt;
C'est beau ça fonctionne !!!&lt;br /&gt;
[[Fichier:20150317 111419.jpg|600px|thumb|left|Les Yeux de ERICbot]]&lt;br /&gt;
&lt;br /&gt;
=== Le code  ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_NeoPixel.h&amp;gt;&lt;br /&gt;
#define PIN      6&lt;br /&gt;
#define N_LEDS 16&lt;br /&gt;
Servo myservoGauche;&lt;br /&gt;
Servo myservoDroite;&lt;br /&gt;
int trig = 7; // broche trig du capteur US HC-SR04&lt;br /&gt;
int echo = 8; // broche echo du capteur US HC-SR04&lt;br /&gt;
int pos = 0;&lt;br /&gt;
long lecture_echo = 0; // variable sur 4 octets mesure de distance&lt;br /&gt;
long cm = 0; // variable sur 4 octets pour la conversion en cm&lt;br /&gt;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(N_LEDS, PIN, NEO_GRB + NEO_KHZ800);&lt;br /&gt;
void arreter()&lt;br /&gt;
{&lt;br /&gt;
	myservoGauche.write(90);&lt;br /&gt;
	myservoDroite.write(90);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void avancer()&lt;br /&gt;
{&lt;br /&gt;
	myservoGauche.write(0);&lt;br /&gt;
	myservoDroite.write(180);&lt;br /&gt;
	//chase(strip.Color(255, 0, 0)); // Red&lt;br /&gt;
	chase(strip.Color(0, 255, 0)); // Green&lt;br /&gt;
//	chase(strip.Color(0, 0, 255)); // Blue&lt;br /&gt;
//	rainbowCycle(20);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
void reculer(int temps)&lt;br /&gt;
{&lt;br /&gt;
	chase(strip.Color(255, 0, 0)); // Red&lt;br /&gt;
	myservoGauche.write(180);&lt;br /&gt;
	myservoDroite.write(0);&lt;br /&gt;
	delay(temps);&lt;br /&gt;
	arreter();&lt;br /&gt;
}&lt;br /&gt;
void tournerGauche()&lt;br /&gt;
{&lt;br /&gt;
	chase(strip.Color(255, 145, 0)); //orange&lt;br /&gt;
	myservoGauche.write(90);&lt;br /&gt;
	myservoDroite.write(180);&lt;br /&gt;
//	delay(temps);&lt;br /&gt;
	arreter();&lt;br /&gt;
}&lt;br /&gt;
void tournerDroite()&lt;br /&gt;
{&lt;br /&gt;
	chase(strip.Color(255, 145, 0)); //orange&lt;br /&gt;
	myservoGauche.write(0);&lt;br /&gt;
	myservoDroite.write(90);&lt;br /&gt;
//	delay(temps);&lt;br /&gt;
	arreter();&lt;br /&gt;
}&lt;br /&gt;
static void chase(uint32_t c)&lt;br /&gt;
{&lt;br /&gt;
	for(uint16_t i = 0; i &amp;lt; strip.numPixels() + 4; i++)&lt;br /&gt;
	{&lt;br /&gt;
		strip.setPixelColor(i  , c); // Draw new pixel&lt;br /&gt;
		strip.setPixelColor(i - 4, 0); // Erase pixel a few steps back&lt;br /&gt;
		strip.show();&lt;br /&gt;
		delay(25);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
void rainbowCycle()&lt;br /&gt;
{&lt;br /&gt;
	uint16_t i, j;&lt;br /&gt;
	for(j = 0; j &amp;lt; 256 * 5; j++) // 5 cycles of all colors on wheel&lt;br /&gt;
	{&lt;br /&gt;
		for(i = 0; i &amp;lt; strip.numPixels(); i++)&lt;br /&gt;
		{&lt;br /&gt;
			strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) &amp;amp; 255));&lt;br /&gt;
		}&lt;br /&gt;
		strip.show();&lt;br /&gt;
		//delay(wait);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
uint32_t Wheel(byte WheelPos)&lt;br /&gt;
{&lt;br /&gt;
	WheelPos = 255 - WheelPos;&lt;br /&gt;
	if(WheelPos &amp;lt; 85)&lt;br /&gt;
	{&lt;br /&gt;
		return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);&lt;br /&gt;
	}&lt;br /&gt;
	else if(WheelPos &amp;lt; 170)&lt;br /&gt;
	{&lt;br /&gt;
		WheelPos -= 85;&lt;br /&gt;
		return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		WheelPos -= 170;&lt;br /&gt;
		return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
	myservoGauche.attach(2);&lt;br /&gt;
	myservoDroite.attach(4);&lt;br /&gt;
	pinMode(trig, OUTPUT); // la broche trig est initialisée en sortie&lt;br /&gt;
	digitalWrite(trig, LOW); // met un niveau logique , LOW (BAS) sur la broche trig&lt;br /&gt;
	pinMode(echo, INPUT);  // la broche echo est initialisée en entree&lt;br /&gt;
	Serial.begin(115200);  // initialisation de la liaison série à 115200 bauds&lt;br /&gt;
	strip.begin();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
	digitalWrite(trig, HIGH); // met un niveau logique , HIGH (HAUT) sur la broche trig&lt;br /&gt;
	delayMicroseconds(10); // attente pendant 10 millisecondes&lt;br /&gt;
	digitalWrite(trig, LOW);  // met un niveau logique , LOW (BAS) sur la broche trig.&lt;br /&gt;
	lecture_echo = pulseIn(echo, HIGH); //  lit la durée du niveau HAUT appliqué sur la broche echo&lt;br /&gt;
	cm = lecture_echo / 58; // conversion de la distance en cm&lt;br /&gt;
//	Serial.print(&amp;quot;Distance en cm : &amp;quot;); // affiche le message : &amp;quot;Distance en cm&amp;quot; sur le moniteur série&lt;br /&gt;
//	Serial.println(cm); // affiche la mesure en cm avec retour à la ligne&lt;br /&gt;
	if (cm &amp;gt; 30)&lt;br /&gt;
	{&lt;br /&gt;
		avancer();&lt;br /&gt;
	}&lt;br /&gt;
	if (cm &amp;lt; 30 &amp;amp;&amp;amp; cm &amp;gt; 10)&lt;br /&gt;
	{&lt;br /&gt;
		tournerDroite();&lt;br /&gt;
	}&lt;br /&gt;
	if (cm &amp;lt; 10)&lt;br /&gt;
	{&lt;br /&gt;
		reculer(1000);&lt;br /&gt;
		//arreter();&lt;br /&gt;
		tournerGauche();&lt;br /&gt;
	}&lt;br /&gt;
	delay(1000);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Intégration d'un ring Led ==&lt;br /&gt;
&lt;br /&gt;
Se référer au tutoriel [Sur bandeau de LED].&lt;br /&gt;
Attention il ne s'agit pas du bandeau mais du Ring ce n'est donc pas les mêmes branchements.&lt;br /&gt;
Brancher le 5v au 5V, le Ground au Gnd et le Input à la Pin de votre choix.&lt;br /&gt;
Astuce pour brancher plusieurs 5V : souder des picots entre eux pour faire un pont commun. &lt;br /&gt;
[[Fichier:20150317 160550.jpg|200px|thumb|left|picots soudés]]&lt;br /&gt;
&lt;br /&gt;
== A savoir ==&lt;br /&gt;
1. Penser à avoir en stock des élastiques ou de la chambre pour le bon roulement des roues&lt;br /&gt;
2. Mieux vaut faire les pas de vis à l'impression du socle plutôt que rentrer en force par la suite&lt;/div&gt;</summary>
		<author><name>Adminsys</name></author>	</entry>

	</feed>