MultiFollower

Da raspibo.
Jump to navigation Jump to search

Progetto robot multi follower (2015)

Obiettivi:

1  Costruire un Robot Follower (didattico) sensibile a diverse “guide”
1.1  Montare tre tipi di sensori: InfraRed, elettromagnetico di linea, di delimitazione e a ultrasuoni per ostacoli;
1.2  Verificare algoritmi per i diversi sensori;
1.3  Programmare Arduino Sensori e Motori con Raspy WIFI via Rete;
1.4  Usare Raspy con telecamera di “riconoscimento di segnali direzionali”;

La struttura fisica e logica del robot

Il robot ha una struttura dedicata a contenere Motori e azionamenti, Sensori, Alimentazioni e Logiche di controllo. Ha due ruote motrici indipendenti e una ruota “pivotante”.

Questo è il profilo “sommario”:

Robot schema.png

Quanti sensori montare

La scelta, dopo prove e ricerche è caduta sulle seguenti opzioni, schematizzate in figura:

1) Due sensori  del tipo CNY70 per following di linea (IR Foll.)
2) Due sensori elettromagnetici (bobina-capacità-controllo) sensibili al campo elettromagnetico 
  generato su un filo di percorso/delimitazione (Bobina/Logica locale di controllo)
3) Due  sensori a ultrasuoni per “vedere” ostacoli improvvisi (US/Logica locale di controllo)
4) Telecamera Raspy per “vedere” segnali direzionali (Raspberry/camera)

Foto: Sensori CNY70 IR Follower, Sensore elettromagnetico con Bobina, Tutti i sensori visti da sotto.

Sensori.png

Altri dispositivi

Sono visibili nel profilo anche:

5) Il Driver motori governato da Arduino
6) Il Controllo delle alimentazioni elettriche. Le 3 alimentazioni necessarie sono state separate per ragioni di stabilità circuitale: 
   a) Motori, b)Raspberry , c)Arduino. 
   Le batterie a 12 Volt sono DUE. Una per i Motori e una per le logiche. 
   Sono previsti uno Switch e due connettori per la ricarica delle singole Batterie.
7) Arduino Mega controlla sia il Driver dei Motori che la gestione dei sensori.
8) RaspberryPi 2 dotata di HD e Camera, consente la programmazione in remoto (WIFI) di Arduino e in futuro 
   l'uso della camera per identificare Segnali Direzionali (da sviluppare).

Foto: Driver Motori tipo L298n, Controllo Alimentazioni, Shield Connessioni su Arduino Mega

Altri disp.png

Lo shield è stato costruito per ragioni di stabilità delle connessioni coi sensori, per inserire un paio di led con funzioni di monitor, un deep switch per selezionare all'avvio l'algoritmo da eseguire e un pulsante di start dell'algoritmo.

Immagine d'insieme allo stato attuale:

Stato attuale.png



Algoritmi e gestione sensori

Il programma principale su Arduino ha la seguente struttura logica:

Diagramma flusso.png

Follower IR:

Si tratta del classico inseguitore di una linea Scura su spazio Chiaro (o viceversa). Per “vedere” la linea utilizza 2 sensori IR di tipo CNY70 che sono collocati a circa 5mm dal pavimento.

Immagine: Foto del sensore, Schema sensore.

CNY70.png

dimensione sensore 7x7x6 mm - led IR assorbe 20 mA - distanza ottimale 3-9mm dal suolo.

Immagine: Schema elettrico dell'assemblaggio sensori IR:

Uso CNY.png

Si tratta di realizzare una procedura di lettura della quantità di “illuminamento” dei due ricevitori usando due convertitori ADC di Arduino. E' necessario avere al termine della procedura un “Valore pesato” che indica la posizione della linea rispetto ai sensori e quindi al Robot. I sistema utilizzato è il seguente: Se la coppia di sensori esce a “sinistra” viene restituito il valore 0, se il primo IR e sulla Linea Scura viene restituito 1000, se entrambi sono sulla linea il valore è 1500, se solo il secondo 2000, se esce a “destra” 2000. Il “valore pesato” viene dato in INPUT ad un algoritmo PID (Proporzionale Integrale, Derivato) di cui esiste una sperimentata libreria on-line (PID.h), che restituisce un valore proporzionale tra 0 e 255 che indica se svoltare a “destra” se <127 o a “sinistra” se >128 in modo più o meno aggressivo. Evidentemente Arduino invierà al driver Motori gli opportuni valori per azionare i motori in modo corretto.

Foto: il percorso da seguire disegnato con Nastro Nero

Percorso Foll.png


Clicca per vedere il Follower IR in funzione


Follower EM:

La differenza rispetto al precedente Follower consiste nel fatto che la linea da seguire e generata da un segnale elettromagnetico con frequenza di circa 34 KHz immesso su un filo conduttore chiuso per delimitare il tragitto. La frequenza viene generata da un semplice circuito dotato di integrato 555 e alimentato a 12v. I sensori sono costituiti da due coppie Bobina-Condensatore che “risuonano” alla frequenza di circa 34 KHz si tratta di “regolare l'amplificazione del segnale” e darlo in input a un integrato “decodificatore di tono” tipo NE567 che commuta da ALTO a BASSO quando la bobina è in “prossimità del filo”. La procedura da realizzare su Arduino per individuare la quantità di “illuminamento” è simile alla precedente dei sensori IR con la differenza che i due sensori sono Digitali e non Analogici. Le uscite della procedura da dare in INPUT al PID funzionano come le precedenti e variano da 0 a 2000.

Foto: Il generatore del segnale alimentato da Batteria, Il filo che delimita il campo/percorso

Generatore.pngDelim 01.pngDelim 02.png


Clicca per vedere il Follower in EM funzione



Continuerà i lavori sono in corso ...