Automobile telecomandata con Arduino

Questa risorsa è stata scritta dagli studenti dell'Istituto ITIS "Enrico Mattei" di Urbino, della classe 3B/EN nell'a.s. 2021/2022, all'interno del corso di Sistemi automatici per le superiori 1.

Per favore, prima di apportare modifiche, attendi sino alla fine dell'anno scolastico (termina il 30 giugno 2022) oppure contatta il docente di riferimento Giacomo Alessandroni nel caso venissero rilevati contenuti non in linea con le linee guida della comunità.

Se leggi questo avviso ad anno scolastico concluso puoi rimuoverlo.

Questa lezione progettiamo una automobile telecomandata. L'automobile è abilitata alla ricezione di quattro comandi: avanti, destra, sinistra e stop .

laboratorio
laboratorio
Automobile telecomandata con Arduino
Tipo di risorsa Tipo: laboratorio
Materia di appartenenza Materia: Sistemi automatici per le superiori 1
Avanzamento Avanzamento: laboratorio completa al 75%

Il progetto è diviso in due parti:

  • l'automobile vera e propria;
  • il telecomando (anche un vecchio telecomando che non si usa più).

Sensori e attuatori modifica

Sensore a infrarossi modifica

I sensori a infrarossi attivi sono costituiti da due elementi: sorgente a infrarossi e rilevatore a infrarossi. Le sorgenti a infrarossi includono un LED o un diodo laser a infrarossi. I rivelatori a infrarossi includono fotodiodi o fototransistor. L’energia emessa dalla sorgente a infrarossi viene riflessa da un oggetto e cade sul rivelatore a infrarossi. Il trasmettitore a infrarossi è un diodo a emissione di luce (LED) che emette radiazioni infrarosse (LED IR), perciò la radiazione emessa è invisibile all’occhio.

Motori a corrente continua modifica

Un motore in corrente continua (CC) è un tipo di macchina elettrica che converte l'energia elettrica in energia meccanica. Assorbe energia elettrica attraverso la corrente continua e la converte in rotazione meccanica.

Telecomando modifica

Altro non è che la sorgente infrarossi che utilizziamo nel nostro circuito e che ci permetterà di muovere l'apparato da distanza.

Schema di montaggio modifica

Di seguito lo schema di montaggio:

 


Codice modifica

 /*
  * ROBOT TELECOMANDATO IR
  * Starodub Cristian
  * 3B EN
  * a.s. 2021/2022    
  */

/* 
 * Costanti, variabili locali e librerie accessorie (es. telecomando)
 */

#include <IRremote.h>
#define AVANTI   1234567890
#define SINISTRA 1234567891
#define DESTRA   1234567892
#define FERMA    1234567893

int remoteInputPin = 2;
long remoteInput;
IRrecv receiver(remoteInputPin);
decode_results results;

int motorD = 8;
int motorS = 9;

/*
 * Setup iniziale del programma
 */

void setup() {
  Serial.begin(9600);
  receiver.enableIRIn();

  pinMode(motorD, OUTPUT);
  pinMode(motorS, OUTPUT);
}

/*
 * In base ai dati ricevuti dal telecomando, movimenta il veicolo
 */

void loop() {
  if (IrReceiver.decode()) {
    remoteInput = Serial.println(results.value, HEX);

    switch (remoteInput) {
      case AVANTI:
        avanti();
        break;
      case SINISTRA:
        sinistra();
        break;
      case DESTRA:
        destra();
        break;
      case FERMA:
        ferma();
        break;
     default:
        receiver.resume();
        break;
    }
    receiver.resume();
  }
}

/*
 * Funzioni aggiuntive per movimentare il veicolo
 */

void avanti() {
  Serial.println("AVANTI");
  digitalWrite(motorD, HIGH);
  digitalWrite(motorS, HIGH);
}

void sinistra() {
  Serial.println("SINISTRA");
  digitalWrite(motorD, HIGH);
  digitalWrite(motorS, LOW);
}

void destra() {
  Serial.println("DESTRA");
  digitalWrite(motorD, LOW);
  digitalWrite(motorS, HIGH);
}

void ferma() {
  Serial.println("FERMA");
  digitalWrite(motorS, LOW);
  digitalWrite(motorD, LOW);
}

Espansioni suggerite modifica

Per migliorare il progetto:

  • si può lavorare sulla connessione telecomando e auto;
  • è possibile migliorare il telecomando, per esempio utilizzando un joystick per migliorare il comfort di guida;
  • si può implementare un arto meccanico per rendere l'intero apparato mobile, in grado di trasportare e prelevare oggetti.