Sommario:

Inseguitore di linea PID Atmega328P: 4 passaggi
Inseguitore di linea PID Atmega328P: 4 passaggi

Video: Inseguitore di linea PID Atmega328P: 4 passaggi

Video: Inseguitore di linea PID Atmega328P: 4 passaggi
Video: robot inseguitore evita ostacolo 2024, Novembre
Anonim
Image
Image

INTRODUZIONE

Questa istruzione riguarda la creazione di un Line Follower efficiente e affidabile con controllo PID (proporzionale-integrale-derivato) (matematico) in esecuzione all'interno del suo cervello (Atmega328P).

Il seguace di linea è un robot autonomo che segue la linea nera nell'area bianca o la linea bianca nell'area nera. Il robot deve essere in grado di rilevare una linea particolare e continuare a seguirla.

Quindi ci saranno poche parti / passaggi per creare un LINE FOLLOWER. Discuterò tutti loro passo dopo passo.

  1. Sensore (occhio per vedere la linea)
  2. Microcontrollore (Cervello per fare alcuni calcoli)
  3. Motori (potenza muscolare)
  4. Driver del motore
  5. Telaio
  6. Batteria (fonte di energia)
  7. Ruota
  8. Varie

Ecco il VIDEO DELLA LINEA FOLLOWER

NEI PROSSIMI PASSI DISCUTER IN DETTAGLI SU OGNI COMPONENTE

Passaggio 1: sensore (occhio) QTR 8RC

Sensore (occhio) QTR 8RC
Sensore (occhio) QTR 8RC
Sensore (occhio) QTR 8RC
Sensore (occhio) QTR 8RC
Sensore (occhio) QTR 8RC
Sensore (occhio) QTR 8RC

Grazie a Pololu per aver prodotto questo fantastico sensore.

Il modulo è un comodo supporto per otto coppie di emettitori e ricevitori IR (fototransistor) equidistanti a intervalli di 0,375 (9,525 mm). Per utilizzare un sensore, è necessario prima caricare il nodo di uscita (Caricamento del condensatore) applicando una tensione a il suo pin OUT. È quindi possibile leggere la riflettanza ritirando la tensione fornita dall'esterno e calcolando quanto tempo impiega la tensione di uscita a decadere a causa del fototransistor integrato. Un tempo di decadimento più breve è indice di una maggiore riflessione. Questo approccio di misurazione presenta diversi vantaggi, soprattutto se abbinato alla capacità del modulo QTR-8RC di spegnere l'alimentazione dei LED:

  • Non è richiesto alcun convertitore analogico-digitale (ADC).
  • Sensibilità migliorata sull'uscita analogica del divisore di tensione.
  • La lettura parallela di più sensori è possibile con la maggior parte dei microcontrollori.
  • La lettura parallela consente un uso ottimizzato dell'opzione di abilitazione alimentazione LED

Specifiche

  • Dimensioni: 2,95 "x 0,5" x 0,125" (senza pin di intestazione installati)
  • Tensione di esercizio: 3,3-5,0 V
  • Corrente di alimentazione: 100 mA
  • Formato di uscita: 8 segnali digitali compatibili con I/O che possono essere letti come un impulso alto temporizzato
  • Distanza di rilevamento ottimale: 0,125" (3 mm) Distanza di rilevamento massima consigliata: 0,375" (9,5 mm)
  • Peso senza perni di testata: 0,11 once (3,09 g)

Interfacciamento delle uscite QTR-8RC alle linee I/O digitali

Il modulo QTR-8RC ha otto uscite sensore identiche che, come il Parallax QTI, richiedono una linea I/O digitale in grado di pilotare la linea di uscita in alto e quindi misurare il tempo di decadimento della tensione di uscita. La sequenza tipica per la lettura di un sensore è:

  1. Accendere i LED IR (opzionale).
  2. Imposta la linea I/O su un'uscita e portala in alto.
  3. Attendere almeno 10 μs affinché l'uscita del sensore aumenti.
  4. Rendere la linea I/O un ingresso (alta impedenza).
  5. Misurare il tempo di decadimento della tensione aspettando che la linea I/O si abbassi.
  6. Spegni i LED IR (opzionale).

Questi passaggi possono essere generalmente eseguiti in parallelo su più linee di I/O.

Con una forte riflettanza, il tempo di decadimento può essere di diverse decine di microsecondi; senza riflettanza, il tempo di decadimento può arrivare fino a pochi millisecondi. Il tempo esatto del decadimento dipende dalle caratteristiche della linea I/O del microcontrollore. Risultati significativi possono essere disponibili entro 1 ms in casi tipici (cioè quando non si tenta di misurare sottili differenze in scenari a bassa riflettanza), consentendo un campionamento fino a 1 kHz di tutti gli 8 sensori. Se il campionamento a frequenza inferiore è sufficiente, è possibile ottenere risparmi energetici sostanziali spegnendo i LED. Ad esempio, se una frequenza di campionamento di 100 Hz è accettabile, i LED possono essere spenti per il 90% del tempo, riducendo il consumo medio di corrente da 100 mA a 10 mA.

Passaggio 2: Microcontrollore (Cervello) Atmega328P

Microcontrollore (Cervello) Atmega328P
Microcontrollore (Cervello) Atmega328P
Microcontrollore (Cervello) Atmega328P
Microcontrollore (Cervello) Atmega328P

Grazie a Atmel Corporation per la produzione di questo fantastico microcontrollore AKA Atmega328.

Parametri chiave per ATmega328P

Valore del parametro

  • Flash (Kbyte): 32 Kbyte
  • Conteggio pin: 32
  • massimo Freq. Operativa (MHz): 20 MHz
  • CPU: AVR a 8 bit
  • Pin I/O massimi: 23
  • Interruzioni est: 24
  • SPI: 2
  • TWI (I2C): 1
  • UART: 1
  • Canali ADC: 8
  • Risoluzione ADC (bit): 10
  • SRAM (Kbyte): 2
  • EEPROM (byte): 1024
  • Classe di alimentazione I/O: da 1,8 a 5,5
  • Tensione di esercizio (Vcc): da 1,8 a 5,5
  • Timer: 3

Per Informazioni Dettagliate consultare il Datasheet di Atmega328P.

In questo progetto sto usando Atmega328P per pochi motivi

  1. A buon mercato
  2. Ha abbastanza RAM per il calcolo
  3. Pin I/O sufficienti per questo progetto
  4. Atmega328P è utilizzato in Arduino …. Potresti notare nell'immagine e nel video un Arduino Uno ma di notte sto usando Arduino IDE o Any Arduino.. Ho usato solo l'hardware come scheda di interfaccia. Ho cancellato il bootloader e ho usato USB ASP per la programmazione del chip.

Per la programmazione del chip ho usato Atmel Studio 6

Tutto IL CODICE SORGENTE È IN GitHub Scaricalo e controlla il file test.c.

Per compilare questo pacchetto devi scaricare e installare The POLOLU AVR LIBRARY SETUP Controlla gli allegati …

Sto anche caricando uno schema della scheda di sviluppo Atmega328P e un file della scheda … Puoi fabbricarlo da solo …

Passaggio 3: motore e driver del motore

Motore e driver del motore
Motore e driver del motore
Motore e driver del motore
Motore e driver del motore
Motore e driver del motore
Motore e driver del motore

Ho usato un motore CC con riduttore tipo BO 350RPM 12V come attuatore. Per saperne di più… MOTOR LINK

Come driver del motore ho usato L293D H-bridge IC.

Allego lo schema e il file di bordo per lo stesso.

Passaggio 4: telaio e varie

Telaio e Varie
Telaio e Varie
Telaio e Varie
Telaio e Varie
Telaio e Varie
Telaio e Varie

Il Bot è realizzato in compensato di 6 mm di spessore.

Consigliato: