Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Am realizat un robot de linie cu microprocesor PIC16F84A echipat cu 4 senzori IR. Acest robot poate rula pe liniile alb-negru.
Pasul 1: Primul pas
Înainte de toate trebuie să știți cum să faceți o placă de circuite imprimate și cum să lipiți componente pe ea. De asemenea, trebuie să știți cum să programați un IC PIC16F84A. Iată linkurile către instructabile bune despre realizarea unui PCB și lipire:
- (Majoritatea) fabricarea ușoară a PCB-urilor
- Cum să lipiți
Pasul 2: Lucruri de care aveți nevoie
Pentru a face acest robot aveți nevoie de următoarele lucruri:
- Niște plăci de cupru
- Circuite imprimate
- A văzut
- Hârtie de șlefuit
- Fier
- Acidul plăcii de circuit
- Burghiu de 1 mm
- Ulei de lipit
- Sârmă de lipit
- Ciocan de lipit
- Cleste de sarma
- Niște sârmă
- 2x roți din plastic
- 1x roată față sferică
- Lipici
Componente ale circuitelor:
- Un suport pentru baterii de 4 AA
- U1 = Microcontroler PIC16F84A + soclu
- U2 = 7805 = 5V Regulator de tensiune
- U3 = LM324 Comparator
- U4 = L298 Motor Driver + Radiator din aluminiu
- XT = Cristal de 4 MHz
- C1 = C2 = 22pF Condensatoare ceramice
- C3 = 100uF condensator de electroliți
- C4 = C5 = 100nF Condensatoare ceramice (104)
- D = 8 x 1N4148 diode
- R1 = 4.7K rezistor
- R2 = R3 = 10K Rezistențe
- R4 = R5 = R6 = R7 = 1K Rezistențe
- R8 = 10K rezistor
- R9 = 1K rezistor
- R10 = R11 = 47K Rezistențe
- R12 = R13 = R14 = R15 = 100ohm Rezistențe
- R16 = R17 = R18 = R19 = 10K Rezistențe
- RP = LP = MP = FP = 10K Potențiometre
- Motor L = Motor R = 60 rpm Mini-motoare cu cutie de viteze (6V)
- Senzor R = Senzor L = Senzor M = Senzor F = Senzori infraroșii TCRT5000
- Mod LED = LBLED = RBLED = LED-uri roșii mici
- LFLED = RFLED = LED-uri verzi mici
- Mod = Stânga = Dreapta = Butoane mici
- SW = Comutator de comutare = Comutator pornit / oprit
- J = Jumper = O bucată de sârmă
Pasul 3: Realizarea plăcilor de circuit
Imprimați circuitele pe o hârtie lucioasă cu o imprimantă laser. Tăiați plăcile de cupru, curățați-le cu șmirghel și puneți circuitele imprimate pe ele. După ce ați apăsat fierul fierbinte pe plăci, îndepărtați hârtia și înmuiați plăcile în acid, așteptați până când cuprul vizibil dispare. Spălați scândurile, faceți găurile și curățați-le cu șmirghel.
* Am doar o diagramă simbolică a robotului pe care o puteți vedea aici.
Pasul 4: Componente de lipit
Lipiți toate piesele de pe plăci. Aveți grijă la direcția corectă a componentelor. Folosiți o priză pentru IC PIC16F84A. Lipiți motoarele și suportul bateriei pe partea din spate a plăcii inferioare și puneți câteva bucăți de hârtie în jurul motoarelor pentru a evita contactele neașteptate în circuit. Lipiți C4 și C5 chiar pe motoare. Puneți o bucată de hârtie printre picioarele potențiometrelor pentru a evita contactele.
Pasul 5: lipirea tuturor împreună
Conectați terminalele cu același nume de pe plăci împreună printr-o bucată de fire (Puteți utiliza picioarele suplimentare ale celorlalte componente). Lipiți placa din spate pe placa de sus. Lipiți placa frontală pe placa superioară. Îndoiți firele și puneți trei plăci pe suportul bateriei și lipiți Placa frontală și placa din spate pe placa de jos (Utilizați câteva fire flexibile lungi pentru a contacta terminalele plăcilor din spate și de jos). Conectați + terminalul de pe placa superioară la suporturile bateriei + stâlpul.
Pasul 6: Roți
Conectați 2 roți din plastic la motoare și acoperiți-le cu o bandă de cauciuc. Atașați o roată pe panoul din spate în fața robotului cu ceva lipici, am folosit un LED mort ca roată din față, dar face ca robotul să se miște lent și vă recomand să folosiți o roată sferică. Acoperiți cutiile de viteze cu foi de plastic subțire.
Pasul 7: Programarea robotului
Descărcați programul robot (Code.hex) și programați IC PIC16F84A. Setați cuvântul de configurare la 0x3FF2. Codul este scris și compilat de „PIC Basic PRO”.
Pasul 8: RUN
Puneți 4 baterii AA în suportul bateriei, faceți o cale și porniți robotul. Dacă robotul nu funcționează, verificați cu atenție lipirea. Acum trebuie să reglați potențiometrele pentru ca robotul să poată detecta zonele alb-negru. Rotiți toate potențiometrele în poziția cea mai stângă, apoi întoarceți-vă cu 90 de grade înapoi la dreapta. Țineți robotul pe linie, deplasați-l peste o rotire dacă starea motoarelor nu s-a schimbat, modificați valoarea potențiometrelor. Acum pune robotul pe calea de urmat.
Pasul 9: Mișcare personalizată
Puteți defini o mișcare personalizată pentru robot apăsând butonul Mode. Când LED-ul Mode este oprit, robotul se află în starea implicită. După apăsarea butonului Mode, LED-ul Mode se aprinde, acum puteți ține robotul în diferite stări și puteți schimba starea motoarelor în funcție de starea lor implicită prin butoanele Stânga și Dreapta. După ce ați apăsat din nou butonul Mode, LED-ul Mode începe să clipească, acum puteți ține robotul în diferite stări și puteți schimba starea motoarelor în funcție de valorile senzorilor prin butoanele Stânga și Dreapta. Pentru a comuta la starea implicită, apăsați din nou butonul Mode. Există patru stări pentru motoare:
- Stare implicită
- Înainte (LED-ul verde este aprins)
- Înapoi (LED-ul roșu este aprins)
- Opriți (LED-urile verzi și roșii sunt aprinse)
Pasul 10: Cum funcționează?
Acest robot are 4 senzori IR care scanează calea. Dacă senzorii din dreapta și din stânga au aceleași valori și valorile acestora sunt diferite de senzorii din mijloc sau din față, robotul este pe linie și motoarele rulează înainte. În caz contrar, robotul este în afara liniei, astfel încât robotul continuă să se miște până când una dintre senzorii laterali se schimbă, apoi se întoarce în direcția în care s-a schimbat valoarea senzorului. Puteți citi codul sursă al programului (Code.bas) pentru a-l înțelege mai bine.
Pasul 11: Ce ai făcut
Utkarsh Verma a făcut același robot cu câteva modificări, și-a împărtășit proiectul pe https://github.com/TheProtoElectricEffect/LineFollower. Vă sfătuiesc să-i revizuiți lucrările înainte de a începe să vă creați propriul robot. Utkarsh, vă mulțumim pentru partajarea proiectului dvs.