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 [1] Continuerà i lavori sono in corso ...