Build Your Own Robot

Foto




Schema elettrico


Codice sorgente Arduino

#define M1r 3
#define M1b 5

#define M2r 10
#define M2b 11
String readString;
String lcd1;
String lcd2;
#define SONAR_TRIGGER_PIN 6
#define SONAR_ECHO_PIN 7

#define led_stop 7
#define led_sx 2
#define led_dx 6
int tx = 1;
int rx = 0;
char com = 'fermo';
int clacson = 8;
int i2=0;
#include <LiquidCrystal.h>
int pinsensore = 0;
int livello = 0;
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(18, 19, 14, 15, 16, 17);


void setup() {
 lcd.begin(16, 2);
 lcd.setCursor(0,0);
  lcd.print(lcd1);
Serial.begin(9600);
pinMode(SONAR_TRIGGER_PIN, OUTPUT);
pinMode(SONAR_ECHO_PIN, INPUT);
pinMode(M1r, OUTPUT);
pinMode(M1b, OUTPUT);
pinMode(M2r, OUTPUT);
pinMode(M2b, OUTPUT);
pinMode(8, OUTPUT);
pinMode(6, OUTPUT);


pinMode(led_stop, OUTPUT);
pinMode(led_sx, OUTPUT);
pinMode(led_dx, OUTPUT);

}

void loop() {
  


 while (Serial.available()) {
    delay(3);  
    char c = Serial.read();
    readString += c; 
  }
  if (readString.length() >0) {
    Serial.println(readString);
    if (readString == "avanti")     
    {
      avanti();
    }
    if (readString == "sinistra")     
    {
      sinistra();
    }
    if (readString == "destra")     
    {
      destra();
    }
    if (readString == "indietro")     
    {
       indietro();
    }
    if (readString == "fermo")     
    {
      fermo();
    }
    if (readString == "clacson")     
    {
     digitalWrite(8, HIGH);
     delay(150);
    digitalWrite(8, LOW);
    }
    if (readString == "luci_on")     
    {
     digitalWrite(6, HIGH);
    }
     if (readString == "luci_off")     
    {
     digitalWrite(6, LOW);
    }
     if (readString[0] == '#')     
    {
       lcd.setCursor(0, 0);
    lcd.print("               ");
   
    lcd1 = readString;
    for(int i2=0;i2<17;i2++)
    {lcd1[i2]=lcd1[i2+1];}
    lcd1[readString.length()-1]=' ';
    
    for(int indice = lcd1.length(); indice < 16; indice++){
      lcd1[indice] = ' ';
      }
    Serial.print(lcd1.length());  
    }
    if (readString[0] == '*')     
    {
    lcd.setCursor(0, 1);
    lcd.print("               ");
    lcd2 = readString;
     for(int i2=0;i2<17;i2++)
    {lcd2[i2]=lcd2[i2+1];}
    lcd2[readString.length()-1]=' ';
    Serial.print(lcd2);  
    }
    lcd.setCursor(0, 0);
       lcd.print(lcd1);
        lcd.setCursor(0, 1);
       lcd.print(lcd2);
    readString="";
     
  } 
  
}


void avanti(){
  
  digitalWrite(M1r, HIGH);
  digitalWrite(M1b, LOW);  
  digitalWrite(M2r, HIGH);
  digitalWrite(M2b, LOW);
  digitalWrite(led_sx, LOW);
digitalWrite(led_dx, LOW);
digitalWrite(led_stop, LOW);
  }
void sinistra(){
  
  digitalWrite(M1r, LOW);
  digitalWrite(M1b, HIGH);  
  digitalWrite(M2r, LOW);
  digitalWrite(M2b, HIGH);
  digitalWrite(led_sx, HIGH);
  digitalWrite(led_dx, LOW);
  digitalWrite(led_stop, LOW);
  }
 void destra(){
  
  digitalWrite(M1r, HIGH);
  digitalWrite(M1b, LOW);  
  digitalWrite(M2r, LOW);
  digitalWrite(M2b, LOW);
  digitalWrite(led_dx, HIGH);
  digitalWrite(led_sx, LOW);
  digitalWrite(led_stop, LOW);
  }
  void indietro(){
  
  digitalWrite(M1r, LOW );
  digitalWrite(M1b, HIGH);  
  digitalWrite(M2r, LOW);
  digitalWrite(M2b, HIGH);
   digitalWrite(led_dx, LOW);
  digitalWrite(led_sx, LOW);
  digitalWrite(led_stop, LOW);
  }
  void fermo(){
  
  digitalWrite(M1r, HIGH);
  digitalWrite(M1b, HIGH);  
  digitalWrite(M2r, LOW);
  digitalWrite(M2b, LOW);
  digitalWrite(led_stop, HIGH);
  digitalWrite(led_dx, LOW);
  digitalWrite(led_sx, LOW);
  }

Screenshot app Android


Codice sorgente app Android (MIT App Inventor)


Download app Android (clicca o scannerizza il seguente codice QR)


Video dimostrativi




Commenti

Aggiungi un nuovo commento

Accedi per poter commentare.