Satura rādītājs:

INFRA SARKANAIS TĀLVALDĪBAS ROBOKARS AR AVR (ATMEGA32) MCU: 5 soļi
INFRA SARKANAIS TĀLVALDĪBAS ROBOKARS AR AVR (ATMEGA32) MCU: 5 soļi

Video: INFRA SARKANAIS TĀLVALDĪBAS ROBOKARS AR AVR (ATMEGA32) MCU: 5 soļi

Video: INFRA SARKANAIS TĀLVALDĪBAS ROBOKARS AR AVR (ATMEGA32) MCU: 5 soļi
Video: INFRASARKANAIS SIENAS SILDĪTĀJS - ИНФРАКРАСНЫЙ НАСТЕННЫЙ ОБОГРЕВАТЕЛЬ 2024, Jūlijs
Anonim
INFRA SARKANAIS TĀLVALDĪBAS ROBOKARS AR AVR (ATMEGA32) MCU
INFRA SARKANAIS TĀLVALDĪBAS ROBOKARS AR AVR (ATMEGA32) MCU

Š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

IntraRed komunikācija
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 sensors un NEC protokols Fromat
IR sensors un NEC protokols Fromat
IR sensors un NEC protokols Fromat
IR sensors un NEC protokols Fromat
IR sensors un NEC protokols Fromat
IR sensors un NEC protokols Fromat
IR sensors un NEC protokols Fromat
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 motora vadība, izmantojot L293D
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

Motora vadītāja un IR sensora shēmas
Motora vadītāja un IR sensora shēmas
Motora vadītāja un IR sensora shēmas
Motora vadītāja un IR sensora shēmas
Motora vadītāja un IR sensora shēmas
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

Avr programmas
Avr programmas
Avr programmas
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: