Satura rādītājs:
- 1. darbība. IntraRed komunikācija
- 2. solis: IR sensors un NEC protokols Fromat
- 3. darbība: līdzstrāvas motora vadība, izmantojot L293D
- 4. darbība. Motora vadītāja un IR sensora shēmas
- 5. darbība. Avr programmas
Video: INFRA SARKANAIS TĀLVALDĪBAS ROBOKARS AR AVR (ATMEGA32) MCU: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:55
Šis PROJEKTS apraksta infrasarkano (IR) tālvadības RoboCar dizainu un ieviešanu, ko var izmantot dažādiem automatizētiem bezpilota vadības lietojumiem. Esmu izstrādājis RoboCar ar tālvadību (kustība pa kreisi/pa labi/priekšā-aizmugurē). Visa sistēma ir balstīta uz mikrokontrolleru (Atmega32), kas padara vadības sistēmu gudrāku un viegli modificējamu citām lietojumprogrammām. Tas ļauj lietotājam vadīt vai vadīt RoboCar un darbināt strāvas padeves slēdzi aptuveni 5 metru attālumā.
Atslēgas vārdi: IR dekodētājs, AVR (Atmega32) mikrokontrolleris, televizora tālvadības pults, bezvadu sakari
_
1. darbība. IntraRed komunikācija
IR komunikācijas princips:
a) IR pārraide
IR gaismas diodes raidītājs tās ķēdē, kas izstaro infrasarkano gaismu par katru tam doto elektrisko impulsu. Šis impulss tiek ģenerēts, nospiežot pogu uz tālvadības pults, tādējādi pabeidzot ķēdi, nodrošinot gaismas diodes neobjektivitāti. Ieslēgta gaismas diode izstaro gaismu ar viļņa garumu 940 nm kā impulsu sērija, kas atbilst nospiestajai pogai. Tomēr, tā kā kopā ar IR LED daudzi citi infrasarkanās gaismas avoti, piemēram, mēs, cilvēki, spuldzes, saule utt., Var tikt traucēta pārraidītā informācija. Šīs problēmas risinājums ir modulācija. Pārraidītais signāls tiek modulēts, izmantojot nesējfrekvenci 38 KHz (vai jebkuru citu frekvenci no 36 līdz 46 KHz). IR gaismas diode ir paredzēta svārstībām ar šo frekvenci pulsa laikā. Informācija vai gaismas signāli tiek modulēti ar impulsa platumu un ir iekļauti 38 KHz frekvencē. Infrasarkanā pārraide attiecas uz enerģiju elektromagnētiskā starojuma spektra reģionā pie viļņu garumiem, kas garāki par redzamās gaismas viļņu garumu, bet īsāki par radioviļņiem. Attiecīgi infrasarkanās frekvences ir augstākas nekā mikroviļņu frekvences, bet zemākas nekā redzamās gaismas frekvences. Zinātnieki iedala infrasarkanā starojuma (IR) spektru trīs reģionos. Viļņu garumi ir norādīti mikronos (simbolizēti µ, kur 1 µ = 10–6 metri) vai nanometros (saīsināti nm, kur 1 nm = 10–9 metri = 0,001 5). Tuvā IR josla satur enerģiju viļņu garuma diapazonā, kas ir vistuvāk redzamajam, no aptuveni 0,750 līdz 1,300 5 (750 līdz 1300 nm). Starpposma IR josla (saukta arī par vidējo IR joslu) sastāv no enerģijas diapazonā no 1.300 līdz 3.000 5 (1300 līdz 3000 nm). Tālākā IR josla stiepjas no 2000 līdz 14 000 5 (3000 nm līdz 1,4000 x 104 nm).
b) IR uztveršana
Uztvērējs sastāv no foto detektora, kas, izstarojot gaismu, attīsta elektrisko signālu. Detektora izeja tiek filtrēta, izmantojot šaurjoslas filtru, kas izmet visas frekvences zem vai virs nesējfrekvences (šajā gadījumā 38 KHz). Filtrētā izeja tiek nodota atbilstošai ierīcei, piemēram, mikrokontrollerim vai mikroprocesoram, kas kontrolē tādas ierīces kā dators vai robots. Filtru izvadi var pievienot arī osciloskopam, lai nolasītu impulsus.
IR pielietojums:
Infrasarkano staru izmanto dažādās bezvadu sakaru, uzraudzības un vadības lietojumprogrammās. Šeit ir daži piemēri:
· Mājas izklaides tālvadības kastes
· Bezvadu (lokālie tīkli)
· Saites starp piezīmjdatoriem un galddatoriem
· Bezvadu modems
· Ielaušanās detektori
· Kustību detektori
· Ugunsgrēka sensori
· Nakts redzamības sistēmas
· Medicīniskās diagnostikas iekārtas
· Raķešu vadības sistēmas
· Ģeoloģiskās uzraudzības ierīces
IR datu pārraidi no vienas ierīces uz citu dažreiz sauc par staru.
2. solis: IR sensors un NEC protokols Fromat
IR sensori (1. attēls)
TSOP1738, SFH-5110-38 (38 kHz)
TSOP sensoru funkcijas:
- Priekšpastiprinātājs un foto detektors ir vienā iepakojumā
- Iekšējais filtrs PCM frekvencei
- Uzlabota aizsardzība pret elektriskā lauka traucējumiem
- TTL un CMOS saderība
- Izeja aktīva zems Zems enerģijas patēriņš
- Augsta imunitāte pret apkārtējo gaismu
- Iespējama nepārtraukta datu pārraide
NEC protokols:
NEC IR pārraides protokols izmanto ziņojumu bitu impulsa attāluma kodējumu. Katra impulsa pārrāvuma garums ir 562,5 µs ar nesējfrekvenci 38 kHz (26,3 µs). Loģiskie biti tiek pārraidīti šādi (2. attēls):
- Loģisks “0” - 562,5 µs impulsa pārrāvums, kam seko 562,5 µs atstarpe ar kopējo pārraides laiku 1,125 ms
- Loģisks “1” - 562,5 µs impulsa pārrāvums, kam seko 1,6875 ms atstarpe ar kopējo pārraides laiku 2,25 ms
Nesēja impulss sastāv no 21 cikla pie 38 kHz. Lai samazinātu strāvas patēriņu, impulsu zīmes/telpas attiecība parasti ir 1: 4:
(3. attēls)
Katra koda secība sākas ar 9 ms impulsu, kas pazīstams kā AGC impulss. Tam seko 4,5 ms klusums:
(4. attēls)
Pēc tam dati sastāv no 32 bitiem, 16 bitu adreses, kam seko 16 bitu komanda, kas parādīta to pārraides secībā (no kreisās uz labo):
(5. attēls)
Katrs datu bitu četrs baits vispirms tiek nosūtīts vismazāk nozīmīgais bits. 1. attēlā parādīts NEC IR pārraides rāmja formāts adresei 00h (00000000b) un ADh komandai (10101101b).
Ziņojumu rāmja pārraidei kopumā nepieciešami 67,5 ms. Tam nepieciešami 27 ms, lai pārsūtītu 16 adreses bitus (adrese + apgrieztais) un 16 komandu bitus (komanda + apgrieztais).
(6. attēls)
Kadra pārsūtīšanai nepieciešamais laiks:
16 bitiem adresei (adrese + apgrieztais) ir nepieciešami 27 ms, lai pārsūtītu laiku. jo (adrese + adreses apgrieztais) vai (komanda + komandas apgrieztais) vienmēr saturēs 8 '0 un 8' 1, tātad (8 * 1,125 ms) + (8 * 2,25 ms) == 27 ms. saskaņā ar šo kopējo kadra pārraides laiku ir (9ms +4,5ms +27ms +27ms) = 67,5 ms.
ATKĀRTOTI KODI: Ja tālvadības pults taustiņš tiek turēts nospiests, tiks izsniegts atkārtots kods, parasti apmēram 40 ms pēc impulsa pārsprāgšanas, kas nozīmēja ziņojuma beigas. Atkārtots kods tiks nosūtīts ar 108 ms intervālu, līdz atslēga beidzot tiks atbrīvota. Atkārtotais kods šādā secībā sastāv no:
- 9 ms vadošais impulsa pārsprāgt
- 2, 25 ms
- 562,5 µs impulss pārsprāga, lai atzīmētu atstarpi (un līdz ar to arī pārraidītā atkārtotā koda beigas).
(7. attēls)
Kavēšanās aprēķins (1 ms):
Pulksteņa frekvence = 11,0592 Mhz
Mašīnas cikls = 12
Kavēšanās = 1 ms
TimerValue = 65536 - ((Delay * ClockFreq)/Machine Cycle) = 65536 - (((1ms * 11,0592Mhz)/12)
= 65536 - 921 = 0xFC67
3. darbība: līdzstrāvas motora vadība, izmantojot L293D
Līdzstrāvas motors
Līdzstrāvas motors elektrisko enerģiju pārvērš mehāniskā enerģijā, ko var izmantot daudzu noderīgu darbu veikšanai. Tas var radīt mehānisku kustību, piemēram, Go Forward/Backword of my RoboCar. Līdzstrāvas motoriem ir dažādi vērtējumi, piemēram, 6V un 12V. Tam ir divi vadi vai tapas. Mēs varam mainīt rotācijas virzienu, mainot ievades polaritāti.
Šeit mēs dodam priekšroku L293D, jo 600 mA vērtējums ir piemērots mazu līdzstrāvas motoru darbināšanai, un aizsardzības diodes ir iekļautas pašā IC. Katras tapas apraksts ir šāds: Iespējot tapas: Tie ir tapas Nr. 1 un tapa Nr. 9. Piespraude Nr. 1 tiek izmantots, lai iespējotu Half-H vadītāju 1 un 2. (H tilts kreisajā pusē). Piespraude Nr. 9 tiek izmantots, lai iespējotu H-tilta vadītāju 3 un 4 (H tilts labajā pusē).
Koncepcija ir vienkārša, ja vēlaties izmantot konkrētu H tiltu, jums ir jāpiešķir augsta loģika atbilstošajām iespējošanas tapām kopā ar strāvas padevi IC. Šo tapu var izmantot arī, lai kontrolētu motora ātrumu, izmantojot PWM tehniku. VCC1 (16. tapa): barošanas tapas. Pievienojiet to 5V barošanas avotam. VCC2 (8. tapa): motora barošanas avots. Pielietojiet tam +ve spriegumu atbilstoši motora vērtējumam. Ja vēlaties vadīt motoru ar 12 V spriegumu, uz šīs tapas piestipriniet 12 V spriegumu.
Ir iespējams arī vadīt motoru tieši uz akumulatora, izņemot to, ko izmanto strāvas padevei ķēdē. Vienkārši pievienojiet šī akumulatora +ve spaili VCC2 tapai un padariet abu akumulatoru GND kopīgu. (MAX spriegums šajā tapā ir 36V, kā norādīts tās datu lapā). GND (4., 5., 12., 13. tapa): pievienojiet tos kopējai ķēdes GND. Ieejas (2., 7., 10., 15. tapa):
Tās ir ievades tapas, caur kurām vadības signālus sniedz mikrokontrolleri vai citas shēmas/IC. Piemēram, ja uz tapas 2 (pirmā puslaika H draivera ievade) mēs dodam loģiku 1 (5 V), mēs iegūsim spriegumu, kas vienāds ar VCC2, uz atbilstošās H puses pirmās puses izejas tapas, ti, tapas Nr. 3. Līdzīgi loģikai 0 (0V) uz 2. tapas parādās 0V uz 3. tapas. Izejas (3., 6., 11., 14. tapa): izejas tapas. Saskaņā ar ieejas signālu nāk izejas signāls.
Motora kustības A B
-----------------------------------------------------------------------------------------
…………… Apstāties: zems: zems
…… Pulksteņa rādītāja virzienā: zems: augsts
Pretēji pulksteņrādītāja virzienam: augsts: zems
……………. Apturēt: augsts: augsts
4. darbība. Motora vadītāja un IR sensora shēmas
ATmega32 ir mazjaudas 8 bitu CMOS mikrokontrolleris, kura pamatā ir uzlabota AVR RISCarchitecture. Izpildot spēcīgus norādījumus vienā pulksteņa ciklā, ATmega32 sasniedz caurlaidību, kas tuvojas 1 MIPS uz MHz, ļaujot sistēmas izstrādātājam optimizēt enerģijas patēriņu salīdzinājumā ar apstrādes ātrumu.
AVR kodols apvieno bagātīgu instrukciju komplektu ar 32 vispārējas nozīmes darba reģistriem. Visi 32 reģistri ir tieši savienoti ar aritmētiskās loģikas vienību (ALU), ļaujot piekļūt diviem neatkarīgiem reģistriem vienā instrukcijā, kas tiek izpildīta vienā pulksteņa ciklā. Rezultātā iegūtā arhitektūra ir koda efektīvāka, vienlaikus sasniedzot līdz pat desmit reizēm ātrāku caurlaidību nekā parastie CISC mikrokontrolleri.
ATmega32 nodrošina šādas funkcijas:
- 32 Kbaiti programmējamas Flash programmas atmiņas ar lasīšanas un rakstīšanas iespējām,
- 1024 baiti EEPROM, 2K baiti SRAM,
- 32 vispārējas nozīmes I/O līnijas,
- 32 vispārēji darba reģistri,
- JTAG saskarne Boundaryscan,
- Mikroshēmas atkļūdošanas atbalsts un programmēšana, trīs elastīgi taimeri/skaitītāji ar salīdzināšanas režīmiem, iekšējie un ārējie pārtraukumi, sērijveidā programmējams USART, baitu orientēts divu vadu seriālais interfeiss, 8 kanāli,
- 10 bitu ADC ar papildu diferenciālās ievades pakāpi ar programmējamu pastiprinājumu (tikai TQFP pakete),
- programmējams sargsuņa taimeris ar iekšējo oscilatoru,
- SPI seriālais ports un
-
seši programmatūras izvēles enerģijas taupīšanas režīmi.
- Gaidīšanas režīms aptur CPU, vienlaikus ļaujot USART,
- Divu vadu saskarne, A/D pārveidotājs,
- SRAM,
- Taimeris/skaitītāji,
- SPI ports un
- pārtraukt sistēmas darbību.
- Izslēgšanas režīms saglabā reģistra saturu, bet iesaldē oscilatoru, atspējojot visas citas mikroshēmas funkcijas līdz nākamajam ārējam pārtraukumam vai aparatūras atiestatīšanai.
- Enerģijas taupīšanas režīmā asinhronais taimeris turpina darboties, ļaujot lietotājam saglabāt taimera bāzi, kamēr pārējā ierīce guļ.
- ADC trokšņu samazināšanas režīms aptur CPU un visus I/O moduļus, izņemot asinhrono taimeri un ADC, lai samazinātu pārslēgšanās troksni ADC pārveidošanas laikā
- Gaidīšanas režīmā kristāla/rezonatora oscilators darbojas, kamēr pārējā ierīce guļ. Tas nodrošina ļoti ātru palaišanu kopā ar mazu enerģijas patēriņu.
- Paplašinātā gaidstāves režīmā turpina darboties gan galvenais oscilators, gan asinhronais taimeris.
Šeit ir norādītas visas saistītās shēmas, kā arī galvenā ķēde (atmega32).
5. darbība. Avr programmas
1. "Tālvadības sensoram":
#iekļaut #iekļaut
#include "remote.h"
// Globals volatile unsigned int Time; // Galvenais taimeris, saglabā laiku 10us, // Atjaunināja ISR (TIMER0_COMP) gaistošs neparakstīts simbols BitNo; // Pos of next BIT gaistošs neparakstīts char ByteNo; // Pašreizējā baita poz
gaistoša neparakstīta ogle IrData [4]; // Četri datu baiti Ir paketes // 2 baitu adrese 2 baitu Dati nepastāvīga neparakstīta zīme IrCmdQ [QMAX]; // Saņemta galīgā komanda (buferis)
gaistošs neparakstīts char PrevCmd; // Izmanto atkārtošanai
// Mainīgie, kas tiek izmantoti atkārtošanai tikai pēc tam, kad kādu laiku ir nospiesta taustiņa
gaistošs neparakstīts char Atkārtojiet; // 1 = jā 0 = nē nepastāvīgs neparakstīts simbols RCount; // Atkārtojiet skaitīšanu
gaistošā ogle QFront = -1, QEnd = -1;
gaistošs neparakstīts ogles stāvoklis; // Saņēmēja stāvoklis
gaistošs neparakstīts char Edge; // Pārtraukuma mala [RISING = 1 OR FALLING = 0]
gaistošs neparakstīts int stop;
/************************************************ ******************************************** / /*FUNCTIONSSTARTS* / / *********************************************** *********************************************
void RemoteInit () {
char i; par (i = 0; i <4; i ++) IrData = 0;
stop = 0; Valsts = IR_VALIDATE_LEAD_HIGH; Mala = 0; Atkārtot = 0;
// Iestatīšanas taimeris1 // ------------ TCCR0 | = ((1 <
TIMSK | = (1 <
OCR0 = TIMER_COMP_VAL; // Iestatiet salīdzināšanas vērtību
neparakstīts char GetRemoteCmd (char wait) {unsigned char cmd;
ja (pagaidiet), kamēr (QFront ==-1); cits if (QFront ==-1) return (RC_NONE);
cmd = IrCmdQ [QFront];
ja (QFront == QEnd) QFront = QEnd = -1; cits {ja (QFront == (QMAX-1)) QFront = 0; cits QFront ++; }
atgriezties cmd;
}
2. galvenais ():
int main (void) {
uint8_t cmd = 0; DDRB = 0x08;
DDRD = 0x80;
DDRC = 0x0f; PORTC = 0x00;
kamēr (1) // Bezgalīga cilpa līdz aktīvajam IR sensoram {
cmd = GetRemoteCmd (1);
slēdzis (cmd) {
gadījums xx: {// BOT virzās uz priekšu // Ch+ btn forwardmotor ();
pārtraukums; // Abi motori uz priekšu
}
………………………………………………….
………………………………………………….
………………………………………………….
noklusējums: PORTC = 0x00; pārtraukums; // Aptur gan kreiso, gan labo motoru}
}
}/*Galvenā beigas*/
……………………………………………………………………………………………………………………
// Tas ir pamata modelis, bet es varu to izmantot PWM režīmā.
//…………………………………………… izklaidējieties …………………………………………………… //
Ieteicams:
Node Mcu Indijas automašīnu centrālā atslēga ar RFID un Blynk taimera atbloķēšanu: 9 soļi
Node Mcu Indijas automašīnu centrālā atslēga ar Rfid un Blynk Timer Unlock: šodien es jums parādīšu indiešu stila automašīnu pilnībā automatizētu centrālo atslēgu ar RFID tagu blynk wifi vadību un laika atbloķēšanu. Tai ir arī visas parastās centrālās atslēgas funkcijas. Šī automašīna centrālā atslēga DARBOJAS BEZSAISES AKTIVIZĒŠANAI NEPIECIEŠAMS TĪKLA ATSLĒGŠANA
MCU Piekļuve interneta pakalpojumam, izmantojot IFTTT - Ameba Arduino: 3 soļi
MCU Piekļuve interneta pakalpojumam, izmantojot IFTTT - Ameba Arduino: Piekļuve interneta pakalpojumam ir vienkāršs uzdevums viedierīcei, piemēram, Android tālrunim, planšetdatoram vai personālajam datoram, bet ne tik viegli mikrokontrolleriem, jo parasti tas prasa labāku savienojumu un apstrādes jaudu. Tomēr mēs varam izkraut smago daļu
Arduino Kā ISP -- Ierakstīt hex failu AVR -- Drošinātājs AVR -- Arduino kā programmētājs: 10 soļi
Arduino Kā ISP || Ierakstīt hex failu AVR || Drošinātājs AVR || Arduino kā programmētājs: ……………………… Lūdzu, abonējiet manu YouTube kanālu, lai iegūtu vairāk videoklipu …….. Šis raksts viss ir par arduino kā isp. Ja vēlaties augšupielādēt hex failu vai ja vēlaties iestatīt drošinātāju AVR, jums nav jāiegādājas programmētājs, varat to darīt
Temperatūras sensors (LM35) ar ATmega32 un LCD displeju - Automātiskā ventilatora vadība: 6 soļi
Temperatūras sensors (LM35) ar ATmega32 un LCD displeju | Automātiskā ventilatora vadība: temperatūras sensors (LM35), saskarne ar ATmega32 un LCD displeju
Récupérer Les Codes Infra-Rouge Et 433mhz: 4 soļi
Récupérer Les Codes Infra-Rouge Et 433mhz: Le but est est " afficher les kodeks des t é l é commandes du style commande de lampe, porte de garage and autre fonctionnant sous 433 mhz (RX433) more aussi ceux des t é command infra-rouge de t é l é vision au a