Turinys:
- 1 žingsnis: jutiklis (akis) QTR 8RC
- 2 žingsnis: mikrovaldiklis (smegenys) „Atmega328P“
- 3 žingsnis: variklis ir variklio tvarkyklė
- 4 žingsnis: važiuoklė ir kiti
Video: PID linijos sekėjas „Atmega328P“: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
ĮVADAS
Ši pamoka skirta efektyviam ir patikimam linijos sekėjui, kurio smegenyse veikia „PID“(proporcinio integralo darinio) valdiklis (matematinis) („Atmega328P“).
Linijos sekėjas yra autonominis robotas, kuris seka arba juodą liniją baltos spalvos, arba baltą liniją juodoje srityje. Robotas turi sugebėti aptikti tam tikrą liniją ir toliau ją sekti.
Taigi bus keletas dalių/žingsnių, kad padarytumėte LINE SEKĖJĄ, aš juos visus aptarsiu žingsnis po žingsnio.
- Jutiklis (akis mato liniją)
- Mikrokontroleris (smegenys atlikti tam tikrus skaičiavimus)
- Varikliai (raumenų jėga)
- Variklio vairuotojas
- Važiuoklė
- Baterija (energijos šaltinis)
- Ratas
- Įvairūs
Čia yra EILUTĖS VEIKLOS VIDEO
KITUOSE VEIKSMUOSE APDALYSIU IŠSAMIĄ APIE KIEKVIENĄ KOMPONENTĄ
1 žingsnis: jutiklis (akis) QTR 8RC
„Pololu“dėka pagamino šį nuostabų jutiklį.
Modulis yra patogus nešiklis aštuonioms IR spinduliuotės ir imtuvo (fototransistorių) poroms, tolygiai išdėstytoms 0,375 (9,525 mm) intervalais. Norėdami naudoti jutiklį, pirmiausia turite įkrauti išvesties mazgą (įkrauti kondensatorių), įjungdami įtampą OUT kaištį. Tada galite perskaityti atspindžio koeficientą ištraukdami išorinę įtampą ir nustatydami, kiek laiko išėjimo įtampa suyra dėl integruoto fototransistoriaus. Trumpesnis skilimo laikas rodo didesnį atspindį. Šis matavimo metodas turi keletą privalumų, ypač kartu su QTR-8RC modulio galimybe išjungti LED maitinimą:
- Nereikia analoginio skaitmeninio keitiklio (ADC).
- Patobulintas įtampos daliklio analoginės išvesties jautrumas.
- Su daugeliu mikrovaldiklių galima lygiagrečiai skaityti kelis jutiklius.
- Lygiagretus skaitymas leidžia optimaliai naudoti LED maitinimo įjungimo parinktį
Specifikacijos
- Matmenys: 2,95 x 0,5 x 0,125 colio (be sumontuotų antgalių)
- Darbinė įtampa: 3,3-5,0 V
- Maitinimo srovė: 100 mA
- Išvesties formatas: 8 skaitmeniniai įvesties/išvesties signalai, kuriuos galima nuskaityti kaip laiko impulsą
- Optimalus jutimo atstumas: 0,125 colio (3 mm) Maksimalus rekomenduojamas jutimo atstumas: 0,375 colio (9,5 mm)
- Svoris be kaiščių: 3,09 g
Sujungti QTR-8RC išėjimus su skaitmeninėmis įvesties/išvesties linijomis
„QTR-8RC“modulyje yra aštuoni identiški jutiklių išėjimai, kuriems, kaip ir „Parallax QTI“, reikalinga skaitmeninė įvesties/išvesties linija, galinti pakelti aukštą išėjimo liniją ir tada išmatuoti išėjimo įtampos sumažėjimo laiką. Įprasta jutiklio nuskaitymo seka yra tokia:
- Įjunkite IR šviesos diodus (neprivaloma).
- Nustatykite įvesties/išvesties liniją į išvestį ir padidinkite ją.
- Leiskite bent 10 μs, kad padidėtų jutiklio išėjimas.
- Padarykite įvesties/išvesties liniją įvestį (didelė varža).
- Išmatuokite įtampos sumažėjimo laiką, laukdami, kol I/O linija sumažės.
- Išjunkite IR šviesos diodus (neprivaloma).
Šie veiksmai paprastai gali būti atliekami lygiagrečiai keliose įvesties/išvesties linijose.
Esant stipriam atspindžiui, skilimo laikas gali siekti kelias dešimtis mikrosekundžių; be atspindžio, skilimo laikas gali būti iki kelių milisekundžių. Tikslus skilimo laikas priklauso nuo jūsų mikrovaldiklio I/O linijos charakteristikų. Reikšmingų rezultatų galima gauti per 1 ms tipiniais atvejais (t. Y. Kai nebandoma išmatuoti subtilių skirtumų mažo atspindžio scenarijuose), leidžiant atrinkti iki 1 kHz visų 8 jutiklių. Jei pakanka žemesnio dažnio mėginių ėmimo, išjungus šviesos diodus galima sutaupyti daug energijos. Pavyzdžiui, jei 100 Hz atrankos dažnis yra priimtinas, šviesos diodai gali būti išjungti 90% laiko, sumažindami vidutines srovės sąnaudas nuo 100 mA iki 10 mA.
2 žingsnis: mikrovaldiklis (smegenys) „Atmega328P“
Ačiū „Atmel Corporation“Šiam nuostabiam mikrovaldikliui AKA „Atmega328“gaminti.
Pagrindiniai ATmega328P parametrai
Parametro reikšmė
- Blykstė (baitais): 32 kb
- Smeigtukų skaičius: 32
- Maks. Veikimo dažnis (MHz): 20 MHz
- Centrinis procesorius: 8 bitų AVR
- Maksimalūs įvesties/išvesties kaiščiai: 23
- Papildomi pertraukimai: 24
- SPI: 2
- TWI (I2C): 1
- UART: 1
- ADC kanalai: 8
- ADC skiriamoji geba (bitai): 10
- SRAM (baitai): 2
- EEPROM (baitai): 1024
- Įvesties/išvesties tiekimo klasė: 1,8–5,5
- Darbinė įtampa (Vcc): 1,8–5,5
- Laikmačiai: 3
Norėdami gauti išsamesnės informacijos, eikite į „Atmega328P“duomenų lapą.
Šiame projekte aš naudoju „Atmega328P“dėl kelių priežasčių
- Pigu
- Turi pakankamai RAM skaičiavimams
- Šiam projektui pakanka įvesties/išvesties kaiščių
- „Atmega328P“naudojamas „Arduino“…. Paveikslėlyje ir vaizdo įraše galite pastebėti „Arduino Uno“, bet naktį aš naudoju „Arduino IDE“arba bet kurį „Arduino“. Aš naudoju tik aparatūrą kaip sąsajos plokštę. Aš ištryniau įkrovos tvarkyklę ir lusto programavimui naudojau USB ASP.
„Chip“programavimui naudojau „Atmel Studio 6“
Visas ŠALTINIO KODAS yra „GitHub“Atsisiųskite jį ir patikrinkite test.c failą.
Norėdami sudaryti šį paketą, turite atsisiųsti ir įdiegti POLOLU AVR BIBLIOTEKOS SĄRANGĄ Patikrinkite priedus …
Aš taip pat ĮKELIU „Atmega328P“plėtros lentos schemą ir lentos failą … Jūs galite jį pagaminti patys …
3 žingsnis: variklis ir variklio tvarkyklė
Aš kaip pavarą naudojau 350 aps / min 12V BO tipo pavarų nuolatinės srovės variklį. Norėdami sužinoti daugiau informacijos … MOTOR LINK
Kaip variklio vairuotojas naudojau L293D H-tilto IC.
Pridedu schemą ir lentos failą.
4 žingsnis: važiuoklė ir kiti
Botas pagamintas iš 6 mm storio medienos.
Rekomenduojamas:
Linijos sekėjas „HoGent“- „Synthese“projektas: 8 žingsniai
Linijos sekėjas HoGent - Syntheseproject: Voor het vak syntheseproject kregen we de opdracht een linefollower te maken. In deze instructable zal ik uitleggen hoe ik deze gemaakt heb, en tegen welke problemen ik o.a ben aangelopen
„Tinkercad“linijos sekėjas: 3 žingsniai
„Tinkercad“linijos sekėjas: „A-Line Follower Robot“, kaip rodo pavadinimas, yra automatizuota transporto priemonė, valdoma pagal vizualią liniją, įterptą į grindis ar lubas. Paprastai vaizdinė linija yra kelias, kuriuo eina linijos sekėjas robotas, ir tai bus juoda linija
Įterptas UCL - linijos sekėjas B0B: 9 žingsniai
„UCL Embedded“-B0B „Linefollower“: tai yra B0B.*B0B yra bendras radijo bangomis valdomas automobilis, laikinai aptarnaujantis liniją sekantį robotą. Kaip ir daugelis prieš jį sekančių robotų, jis padarys viską, kad išliktų linija, kurią sukelia perėjimas tarp grindų ir kintamosios srovės
Paprastas linijos sekėjas naudojant „Arduino“: 5 žingsniai
Paprastas linijos sekėjas naudojant „Arduino“: „Arduino“linijos sekimo robotas „Arduino Line“sekimo kompanija
3 dalis: GPIO: ARM Surinkimas: linijos sekėjas: TI-RSLK: 6 žingsniai
3 dalis: GPIO: ARM Surinkimas: linijos sekėjas: TI-RSLK: Sveiki. Tai yra kita dalis, kurioje mes ir toliau naudojame ARM surinkimą (vietoj aukštesnio lygio kalbos). Šios instrukcijos įkvėpėjas yra „Texas Instruments Robotics System Learning Kit“6 laboratorija arba TI-RSLK. Mes naudosime mikrofoną