Differenze tra le versioni di "MultiFollower"
Riga 83: | Riga 83: | ||
[[File:Percorso_Foll.png]] | [[File:Percorso_Foll.png]] | ||
− | [https://www.youtube.com/watch?feature=player_embedded&v=Ph16DPK-Tq4 | + | ---- |
− | + | ||
− | ] | + | [https://www.youtube.com/watch?feature=player_embedded&v=Ph16DPK-Tq4 '''Clicca per vedere il Follower IR in funzione'''] |
'''Follower EM:''' | '''Follower EM:''' | ||
Riga 97: | Riga 97: | ||
[[File:Generatore.png]][[File:Delim_01.png]][[File:Delim_02.png]] | [[File:Generatore.png]][[File:Delim_01.png]][[File:Delim_02.png]] | ||
− | [https://www.youtube.com/watch?feature=player_embedded&v=Ph16DPK-Tq4 | + | ---- |
− | + | ||
− | ] | + | |
+ | [https://www.youtube.com/watch?feature=player_embedded&v=Ph16DPK-Tq4 '''Clicca per vedere il Follower in EM funzione''' ] | ||
'''Continuerà i lavori sono in corso ...''' | '''Continuerà i lavori sono in corso ...''' |
Versione delle 15:42, 11 set 2015
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”:
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.
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
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:
Algoritmi e gestione sensori
Il programma principale su Arduino ha la seguente struttura logica:
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.
dimensione sensore 7x7x6 mm - led IR assorbe 20 mA - distanza ottimale 3-9mm dal suolo.
Immagine: Schema elettrico dell'assemblaggio sensori IR:
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
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
Clicca per vedere il Follower in EM funzione
Continuerà i lavori sono in corso ...