Cuprins:

PID Line Follower Atmega328P: 4 pași
PID Line Follower Atmega328P: 4 pași

Video: PID Line Follower Atmega328P: 4 pași

Video: PID Line Follower Atmega328P: 4 pași
Video: A possible solution for "error occurred while uploading the sketch" on your Arduino 2024, Noiembrie
Anonim
Image
Image

INTRODUCERE

Această instrucțiune este despre realizarea unui Line Follower eficient și fiabil cu control PID (proporțional-integral-derivat) (matematic) care rulează în creierul său (Atmega328P).

Următorul de linie este un robot autonom care urmează fie linia neagră în alb, fie linia albă în zona neagră. Robotul trebuie să fie capabil să detecteze o anumită linie și să o urmărească în continuare.

Așadar, vor fi câteva părți / pași pentru a face o LINIE DE URMĂTORI. Voi discuta toate acestea pas cu pas.

  1. Senzor (Ochi pentru a vedea linia)
  2. Microcontroler (Brain pentru a face unele calcule)
  3. Motoare (Puterea musculară)
  4. Șofer de motor
  5. Şasiu
  6. Baterie (sursă de energie)
  7. Roată
  8. Diverse

Iată VIDEO-UL URMĂTORULUI

În pașii următori voi discuta în detalii despre fiecare componentă

Pasul 1: senzor (ochi) QTR 8RC

Senzor (ochi) QTR 8RC
Senzor (ochi) QTR 8RC
Senzor (ochi) QTR 8RC
Senzor (ochi) QTR 8RC
Senzor (ochi) QTR 8RC
Senzor (ochi) QTR 8RC

Mulțumim fabricării Pololufor pentru acest senzor minunat.

Modulul este un purtător convenabil pentru opt perechi de emițător și receptor IR (fototranzistor) distanțate uniform la intervale de 0,375 (9,525 mm). Pentru a utiliza un senzor, trebuie mai întâi să încărcați nodul de ieșire (Încărcarea condensatorului) prin aplicarea unei tensiuni la pinul OUT. Puteți citi apoi reflectanța retrăgând tensiunea furnizată extern și sincronizând cât durează tensiunea de ieșire pentru a se descompune datorită fototranzistorului integrat. Timpul de decădere mai scurt este o indicație a unei reflexii mai mari. mai ales atunci când este asociat cu capacitatea modulului QTR-8RC de a opri alimentarea cu LED-uri:

  • Nu este necesar un convertor analog-digital (ADC).
  • Sensibilitate îmbunătățită la ieșirea analogică a divizorului de tensiune.
  • Citirea în paralel a mai multor senzori este posibilă cu majoritatea microcontrolerelor.
  • Citirea în paralel permite utilizarea optimizată a opțiunii de activare a puterii cu LED-uri

Specificații

  • Dimensiuni: 2,95 "x 0,5" x 0,125 "(fără știfturi antet instalate)
  • Tensiune de funcționare: 3,3-5,0 V
  • Curent de alimentare: 100 mA
  • Format de ieșire: 8 semnale digitale compatibile I / O care pot fi citite ca un impuls de mare timp
  • Distanță de detectare optimă: 0,125 "(3 mm) Distanță maximă de detectare recomandată: 0,375" (9,5 mm)
  • Greutate fără știfturi de antet: 3,09 g

Interfațarea ieșirilor QTR-8RC la liniile digitale I / O

Modulul QTR-8RC are opt ieșiri de senzori identice care, la fel ca Parallax QTI, necesită o linie de I / O digitală capabilă să conducă linia de ieșire la înălțime și apoi să măsoare timpul pentru ca tensiunea de ieșire să se descompună. Secvența tipică pentru citirea unui senzor este:

  1. Porniți LED-urile IR (opțional).
  2. Setați linia I / O la o ieșire și ridicați-o.
  3. Lăsați cel puțin 10 μs să crească ieșirea senzorului.
  4. Faceți linia I / O o intrare (impedanță ridicată).
  5. Măsurați timpul pentru ca tensiunea să se descompună așteptând ca linia I / O să scadă.
  6. Opriți LED-urile IR (opțional).

Acești pași pot fi de obicei executați în paralel pe mai multe linii I / O.

Cu o reflectanță puternică, timpul de descompunere poate fi la fel de mic ca câteva zeci de microsecunde; fără reflectanță, timpul de descompunere poate fi de până la câteva milisecunde. Ora exactă a descompunerii depinde de caracteristicile liniei I / O a microcontrolerului. Rezultatele semnificative pot fi disponibile în decurs de 1 ms în cazuri tipice (adică atunci când nu se încearcă măsurarea diferențelor subtile în scenarii cu reflectanță redusă), permițând prelevarea de probe de până la 1 kHz pentru toți cei 8 senzori. Dacă eșantionarea cu frecvență mai mică este suficientă, se pot realiza economii substanțiale de energie prin oprirea LED-urilor. De exemplu, dacă o rată de eșantionare de 100 Hz este acceptabilă, LED-urile pot fi stinse 90% din timp, reducând consumul mediu de curent de la 100 mA la 10 mA.

Pasul 2: Microcontroler (creier) Atmega328P

Microcontroler (creier) Atmega328P
Microcontroler (creier) Atmega328P
Microcontroler (creier) Atmega328P
Microcontroler (creier) Atmega328P

Mulțumesc Atmel Corporation Pentru producerea acestui microcontroler minunat AKA Atmega328.

Parametrii cheie pentru ATmega328P

Valoarea parametrului

  • Bliț (Kbytes): 32 Kbytes
  • Numărul pinilor: 32
  • Max. Frecvență de funcționare (MHz): 20 MHz
  • CPU: AVR pe 8 biți
  • Pin I / O max.: 23
  • Întreruperi ext: 24
  • SPI: 2
  • TWI (I2C): 1
  • UART: 1
  • Canale ADC: 8
  • Rezoluție ADC (biți): 10
  • SRAM (Kbytes): 2
  • EEPROM (octeți): 1024
  • Clasa de alimentare I / O: 1,8 până la 5,5
  • Tensiune de funcționare (Vcc): 1,8 până la 5,5
  • Cronometre: 3

Pentru informații detaliate, consultați fișa tehnică a Atmega328P.

În acest proiect, folosesc Atmega328P din câteva motive

  1. Ieftin
  2. Are suficientă memorie RAM pentru calcul
  3. Pinuri I / O suficiente pentru acest proiect
  4. Atmega328P este utilizat în Arduino…. S-ar putea să observați în imagine și video un Arduino Uno, dar mai târziu folosesc Arduino IDE sau Orice Arduino.. Am folosit doar hardware-ul ca placă de interfață. Am șters bootloader-ul și am folosit USB ASP pentru programarea cipului.

Pentru programarea cipului, am folosit Atmel Studio 6

Tot CODUL SURSEI ESTE ÎN GitHub Descărcați-l și verificați fișierul test.c.

Pentru a compila acest pachet trebuie să descărcați și să instalați POLOLU AVR LIBRARY SETUP Verificați atașamentele …

ÎNCARC, de asemenea, o schemă și un fișier de bord pentru placa de dezvoltare Atmega328P … Îl puteți fabrica singur …

Pasul 3: Motor și driverul motorului

Motor și șofer de motor
Motor și șofer de motor
Motor și șofer de motor
Motor și șofer de motor
Motor și șofer de motor
Motor și șofer de motor

Am folosit motor DC cu transmisie de 350RPM 12V BO ca actuator. Pentru a afla mai multe informații … MOTOR LINK

În calitate de șofer de motor, am folosit L293D H- bridge IC.

Atașez fișierul Schematic și Board pentru același lucru.

Pasul 4: Șasiu și diverse

Șasiu și diverse
Șasiu și diverse
Șasiu și diverse
Șasiu și diverse
Șasiu și diverse
Șasiu și diverse

Botul este format din lemn stratificat cu grosimea de 6 mm.

Recomandat: