Robot "ABC" en bois : Différence entre versions

Ligne 27 : Ligne 27 :
 
|ExternalAttachmentsLinks={{ExternalAttachmentsLinks
 
|ExternalAttachmentsLinks={{ExternalAttachmentsLinks
 
|ExternalAttachmentsLinks=https://framadrive.org/index.php/s/oHlHOqSsc18I4U1
 
|ExternalAttachmentsLinks=https://framadrive.org/index.php/s/oHlHOqSsc18I4U1
 +
}}
 +
|Tuto_Attachments={{Tuto Attachments
 +
|Attachment=Robot-1.ino.pdf
 
}}
 
}}
 
}}
 
}}
Ligne 77 : Ligne 80 :
 
|Step_Title=Code
 
|Step_Title=Code
 
|Step_Content=Voici le code à mettre dans le logiciel arduino.
 
|Step_Content=Voici le code à mettre dans le logiciel arduino.
 
<code>
 
#include "IRremote.h"
 
#include "Servo.h"
 
#undef round
 
 
//contrôle moteur
 
const int sensMotA=12;    //moteur A (droit) Direction (High=sens 1 - Low=sens 2)
 
const int vitesseMotA=3;    //moteur A (droit) PWM (Vitesse= 0 -255)
 
const int sensMotB=13;    //moteur B (gauche) Direction (High=sens 1 - Low=sens 2)
 
const int vitesseMotB=11;    //moteurr B (gauche) PWM (Vitesse= 0 -255)
 
 
//Pin Module récepteur IR et variable
 
int RECV_PIN = 5;
 
IRrecv irrecv(RECV_PIN);
 
decode_results results;
 
 
 
void setup()
 
{
 
 
//configurer tous les broches de commande du moteur en sortie
 
pinMode(sensMotA,OUTPUT);
 
pinMode(vitesseMotA,OUTPUT);
 
pinMode(sensMotB,OUTPUT);
 
pinMode(vitesseMotB,OUTPUT);
 
 
 
 
 
Serial.begin(9600);
 
 
//le récepteur IR
 
irrecv.enableIRIn();
 
}
 
 
 
void loop()
 
{
 
Serial.println(results.value, DEC);
 
 
//IR signal reçu
 
if(irrecv.decode(&results))
 
{
 
 
//avant
 
if(results.value==3031700205)
 
{
 
    digitalWrite(sensMotA, HIGH); //Establishes forward direction of Channel A
 
  analogWrite(vitesseMotA, 55);    //Spins the motor on Channel B at half speed
 
    digitalWrite(sensMotB, LOW);  //Disengage the Brake for Channel B
 
  analogWrite(vitesseMotB, 55);    //Spins the motor on Channel B at half speed
 
}
 
//recule
 
else if(results.value==3031753245)
 
{
 
digitalWrite(sensMotA, LOW); //Establishes forward direction of Channel A
 
  analogWrite(vitesseMotA, 255);    //Spins the motor on Channel B at half speed
 
  digitalWrite(sensMotB, HIGH); //Establishes forward direction of Channel A
 
  analogWrite(vitesseMotB, 255);    //Spins the motor on Channel B at half speed
 
//pivoter vers la gauche (PREVIOUS)
 
}
 
else if(results.value==3031718565)
 
{
 
digitalWrite(12, LOW); //Establishes forward direction of Channel A
 
  analogWrite(3, 255);    //Spins the motor on Channel B at half speed
 
  digitalWrite(13, LOW); //Establishes forward direction of Channel A
 
  analogWrite(11, 255);    //Spins the motor on Channel B at half speed
 
 
 
//pivoter vers la droite (NEXT)
 
}
 
else if(results.value==3031734885)
 
{
 
digitalWrite(12, HIGH); //Establishes forward direction of Channel A
 
  analogWrite(3, 255);    //Spins the motor on Channel B at half speed
 
  digitalWrite(13, HIGH); //Establishes forward direction of Channel A
 
  analogWrite(11, 255);    //Spins the motor on Channel B at half speed
 
}
 
//recevoir la prochaine valeur
 
irrecv.resume();
 
 
//court délai d'attente pour répéter le signal IR
 
// (empêcher de s'arrêter si aucun signal reçu)
 
delay(150);
 
}
 
 
else
 
{
 
digitalWrite(sensMotA, LOW);    //Spins the motor on Channel B at half speed
 
digitalWrite(vitesseMotA, LOW);    //Spins the motor on Channel B at half speed
 
digitalWrite(sensMotB,LOW);    //Spins the motor on Channel B at half speed}}}
 
digitalWrite(vitesseMotB, LOW);    //Spins the motor on Channel B at half speed
 
 
 
}
 
}
 
</code>
 
 
}}
 
}}
 
{{Tuto Step
 
{{Tuto Step
Ligne 181 : Ligne 88 :
 
{{Tuto Status
 
{{Tuto Status
 
|Complete=Cochez cette case si vous considérez ce tutoriel terminé
 
|Complete=Cochez cette case si vous considérez ce tutoriel terminé
 +
}}
 +
}
 +
</code>
 
}}
 
}}

Version du 28 juin 2016 à 18:11

Auteur avatarMr 3D Robots | Dernière modification 22/02/2023 par Flow talk page manager

RobotTelecommande 09.jpg
Vous allez apprendre a construire un petit robot piloté par télécommande. Ce robot est construit en bois avec une carte électronique (arduino uno) et une extension de contrôle pour les deux moteurs. Vidéo démonstration : https://www.youtube.com/watch?v=D8cRWR_TL4g
Difficulté
⧼wf-propertyvalue-difficulty-Facile⧽
Durée
1 ⧼wf-propertyvalue-durationtype-jour(s)⧽
Catégories
⧼wf-propertyvalue-area-Robotique⧽
Coût
50 EUR (€)
Autres langues :
Deutsch • ‎English • ‎español • ‎français • ‎italiano
Licence : Attribution - Partage dans les Mêmes Conditions (CC BY-SA)

Matériaux

  • 1x planche de bois épaisseur 5mm 610mm X 407mm
  • 1x Arduino Uno
  • 2x Moteurs DC
  • 1x Motor Shield
  • 1x capteur infrarouge
  • 1x télécommande infrarouge (lecteur Dvd)
  • 2x supports de pile (6 pile LR6 1,5Volt) (Alimentation principale Arduino Uno)
  • 4x Piles 4,5Volts (2 pack montés en parallèle, chaque pack comporte 2 piles 4,5V montées en série) - (ça fait une alimentation sous 9V pour l’alimentation de puissance j’ai mis en parallèle pour avoir une plus longue autonomie)
  • 8x Ecrous M4
  • 8x vis M4 – 50
  • 4x Embase M4
  • 1x roue folle

Outils

Étape 1 - Plans

Voici les plans de chaque pièces pour faire le robot avec cotation ( en mm)

Téléchargement des fichiers : https://framadrive.org/index.php/s/oHlHOqSsc18I4U1




Étape 2 - Base

Commençons par prendre la base en ajoutant le support avec c’est pile relier au 3 LEDs vertes.

Prendre 4 vis M4 les insérer dans les 4 trous puis fixer 1 écrou sur chaque vis.


Étape 3 - Dessous

Insérer 4 vis M4 50mm avec leurs écrous et embase, puis retourner l’ensemble pour fixer la roue folle.



Étape 4 - Assemblage Base + Dessous

Assembler la base et le dessous en vissant chaque vis.




Étape 5 - Electronique

Fixer le moteur sur les cotés en bois.




Étape 6 - Assemblage final

Assembler les arrondis ainsi que les cotés avec moteur sur l’illustration vu en étape 4.




Étape 7 - Vue d’ensemble du robot


Étape 8 - Code

Voici le code à mettre dans le logiciel arduino.

Étape 9 - Évolutions envisagées

Prochaine évolution mettre un capteur ultrason pour détection et évitement d’obstacle et un suiveur de ligne.

Commentaires

Cochez cette case si vous considérez ce tutoriel terminé } }}