ROBOT CONTRÔLÉ PAR ANDROID

ROBOT CONTRÔLÉ PAR ANDROID

Cet exemple vous montre l’exemple d’un robot à  deux roues commandées par une application Android via Bluetooth.
Matériels requis
        ·      Carte Arduino Mega ADK (ou autre type de carte Arduino)
        ·      CI de pilote de moteur L293D
        ·      2X (petit) moteurs à courant continu
        ·      Fils de raccordement
        ·      Module Bluetooth HC05
   Simulation

   Routage





Application Android  
L'application Android a étè developpe par l'outil MitAppInventor 2 

Interface d'identification

Interface de commande

Code
/ *
      DIY Electronics par Bessem BELGHITH 
      Robot commandé par Bluetooth via une application Android

* / 
// pins moteurs
//moteur gauche
int mg1=8; 
int mg2=9; 
int enableg=11 ;

//moteur droite
int md1=5;
int md2=6;
int enabled=4;

int vitesses=255;

//constantes
char c;

void setup(){

 Serial.begin(9600); 
 
  pinMode(mg1,OUTPUT);
  pinMode(mg2,OUTPUT);
  pinMode(md1,OUTPUT);
  pinMode(md2,OUTPUT);
  pinMode(enabled,OUTPUT);
  pinMode(enableg,OUTPUT);
  
}

void loop()
 if( Serial.available() )       // if data is available to read
  {
  c=Serial.read();
  Serial.println(c);
 
  switch(c)
  {
        case 'E':
         Avance();
         delay(250);
         Stop();
         delay(250);
        break;
       
        case 'F':
         Droite();
         delay(250);
         Stop();
         delay(250);
        break;
       
        case 'G':
         Gauche();
         delay(250);
         Stop();
         delay(250);
        break;
       
        case 'H':
         Arriere();
         delay(250);
         Stop();
         delay(250);
        break;
        default: Stop();
   
  }
  }
 
}   


ARDUINO: ROBOT SUIVEUR DE LIGNE


ROBOT Suiveur de ligne

Cet exemple vous montre l'exmple d'un robot suiveur de ligne à  deux roue. La fonction de ce robot est de suivre une trajectoire tracé en noire.
Matériel requis

      ·      Carte Arduino Mega ADK (ou autre type de carte Arduino)
      ·      CI de pilote de moteur L293D
      ·      2X (petit) moteurs à courant continu
      ·      fils de raccordement
      ·      Capteur Infrarouge TCRT 500
 




Conception du châssis
Pour la conception du châssis du robot nous avons utilisé le logiciel de CAO SolidWorks 2013. Et voici les différentes pièces de notre châssis.





Simulation

Pour la simulation de notre carte  de commande nous avons utilisés le logiciel ISIS V7.10.


Routage

Pour le routage de notre carte  de commande nous avons utilisés le logiciel ARES V7.10.



Code
/ *
      DIY Electronics par Bessem BELGHITH 
      Robot suiveur de ligne

* / 
 
void Suiveur(){

   
        Avance();
       
    
     
        while( (digitalRead(sensg1)== LOW)  ) // Si Capteur Gauche est sur la ligne Noire
         {
            Gauche();
         }
       
         while((digitalRead(sensd2)== LOW)  ) // Si Capteur Droite est sur la ligne Noire
         {
            Droite() ;
         }
        
        while( (digitalRead(sensd2)== LOW)  &&(digitalRead(sensg1)== LOW))
         {
           Avance();
          delay(100); 
         }  
         while( (digitalRead(sensd2)== HIGH) &&(digitalRead(sensg1)== HIGH) )
         {
           Stop(); 
         }     
}






ROBOT CONTRÔLÉ PAR IR

ROBOT CONTRÔLÉ PAR IR

Cet exemple vous montre l’exemple d’un robot à  deux roues commandées par IR.
Matériels requis
      ·      Carte Arduino Mega ADK (ou autre type de carte Arduino)
      ·      CI de pilote de moteur L293D
      ·      2X (petit) moteurs à courant continu
      ·      Fils de raccordement
      ·      Capteur IR


   Simulation


Routage








Code
/ *
      DIY Electronics par Bessem BELGHITH 
      Robot commandé par IR

* / 
#include <IRremote.h>
// pins moteurs
//moteur gauche
int mg1=8;  //4
int mg2=9;  //5
int enableg=11 ;

//moteur droite
int md1=5; //9
int md2=6; //10
int enabled=4;


int vitesses=200;

//constantes
char c;
int RECV_PIN = A0;

IRrecv irrecv(RECV_PIN);
decode_results results;
void setup(){
 Serial.begin(9600);  //init the Serial port to print the data
  irrecv.enableIRIn(); // Start the receiver
  pinMode(mg1,OUTPUT);
  pinMode(mg2,OUTPUT);
  pinMode(md1,OUTPUT);
  pinMode(md2,OUTPUT);
  pinMode(enabled,OUTPUT);
  pinMode(enableg,OUTPUT);
}

void loop()
 if (irrecv.decode(&results)) {
    Serial.println(results.value);
  switch(results.value)
  {
        case 1914982170 :
         Avance();
         delay(250);
         Stop();
         delay(250);
        break;
       
        case 3378760604 :
         Droite();
         delay(250);
         Stop();
         delay(250);
        break;
       
        case 4294967295:
         Gauche();
         delay(250);
         Stop();
         delay(250);
        break;
       
        case 255 :
         Arriere();
         delay(250);
         Stop();
         delay(250);
        break;       
        default: Stop();
   
  }
  }
    irrecv.resume(); // Receive the next value
  delay(100);



ARDUINO: KEYPAD

Keypad

Dans ce tutoriel, je vais vous montrer comment configurer un clavier sur l'Arduino. Je vais d'abord expliquer comment l'Arduino détecte les touches, puis je vais vous montrer comment trouver le brochage de n'importe quel clavier. Comme un exemple simple, je vais vous montrer comment afficher les touches sur le moniteur série et un écran LCD.
Je vais utiliser un  clavier  à membrane matricielle 4X4 dans cet article, mais il y a aussi des diagrammes de code et de câblage pour  les claviers matriciels 3X4.
Les calviers sont un excellent moyen de permettre aux utilisateurs d’intéragir avec vos projet.vous pouvez les utiliser pour naviguer dans les menu, entrer des mots de passe et contrôler des jeux et des robots.
Cet exemple utilise la bibliothèque keypad arduino.
Matériels requis
      ·      Carte Arduino
      ·      Keypad
      ·      LCD
      ·      fils de raccordement
Comment fonctionne les claviers
Les boutons d'un clavier sont disposés en rangées et en colonnes. Un clavier 3X4 a 4 lignes et 3 colonnes, et un clavier 4X4 a 4 lignes et 4 colonnes:


Sous chaque clé se trouve un interrupteur à membrane. Chaque commutateur d'une rangée est connecté aux autres commutateurs de la rangée par une trace conductrice sous le tampon. Chaque commutateur dans une colonne est connecté de la même manière - un côté du commutateur est connecté à tous les autres commutateurs dans cette colonne par une trace conductrice. Chaque rangée et chaque colonne est portée à une seule broche, pour un total de 8 broches sur un clavier 4X4:
Appuyer sur un bouton ferme le commutateur entre une trace de colonne et une trace de ligne, permettant au courant de circuler entre une broche de colonne et une broche de rangée.

Le schéma d'un clavier 4X4 montre comment les lignes et les colonnes sont connectées:


L'Arduino détecte quel bouton est enfoncé en détectant la broche de ligne et de colonne connectée au bouton.
Cela se passe en quatre étapes:
1. Tout d'abord, lorsque vous n'appuyez sur aucun bouton, toutes les broches de la colonne sont maintenues ÉLEVÉES et toutes les broches de la rangée sont maintenues LOW:
2. Lorsqu'un bouton est enfoncé, la goupille de la colonne est tirée vers le bas car le courant de la colonne HAUTE s'écoule vers la broche de la ligne BAS:

3. L'Arduino sait maintenant dans quelle colonne se trouve le bouton, donc maintenant il doit juste trouver la rangée dans laquelle se trouve le bouton. Il le fait en commutant chacune des broches de la ligne HIGH, et en même temps en lisant toute la colonne broches pour détecter quelle broche de colonne retourne à HAUT:
4. Lorsque la broche de la colonne redevient haute, l'Arduino a trouvé la broche de ligne qui est connectée au bouton:
À partir du diagramme ci-dessus, vous pouvez voir que la combinaison de la ligne 2 et de la colonne 2 ne peut que signifier que le bouton numéro 5 a été enfoncé.

Schématique
La disposition des broches pour la plupart des claviers à membrane ressemblera à ceci:


Suivez les schémas ci-dessous pour connecter le clavier à un Arduino Uno, selon que vous avez un clavier 3X4 ou 4X4:



On connecte maintenant l’afficheur pour visualiser le bouton appuyé comme suit :





 Code
/ *
       DIY Electronics par Bessem BELGHITH 
      Imprimer  bouton enfoncé d’un KEYPAD sur un LCD
 * / 

#include <LiquidCrystal.h>;
#include <Keypad.h>;

const byte ROWS = 4; // 4 lignes
const byte COLS = 3; //3 colonnes
char keys[ROWS][COLS] = {
    {'1','2','3'},
    {'4','5','6'},
    {'7','8','9'},
    {'*','0','#'}
};

byte rowPins[ROWS] = {10, 9, 8, 7}; //connecter au pins des lignes du keypad
byte colPins[COLS] = {13, 12, 11}; //connecter au pins des colonnes du keypad

LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup() {
   lcd.begin(16, 2);

  lcd.print("KEYPAD TEST ");
}

void loop() {
char key = keypad.getKey();

    if (key) {
        lcd.setCursor(0, 1);
        lcd.print(key);
    }
}