Innehållsförteckning:
- Steg 1: IntraRed -kommunikation
- Steg 2: IR -sensor och NEC Protocol Fromat
- Steg 3: DC -motorstyrning med L293D
- Steg 4: Kretsdiagram för motorförare och IR -sensor
- Steg 5: Avr -program
Video: INFRA RÖD FJÄRRKONTROLLerad ROBOCAR MED AVR (ATMEGA32) MCU: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Föreliggande PROJEKT beskriver en design och implementering av en infraröd (IR) fjärrstyrd RoboCar som kan användas för olika automatiska obemannade kontrollapplikationer. Jag har designat fjärrstyrd RoboCar (vänster-höger/fram-bak-rörelse). Hela systemet är baserat på mikrokontroller (Atmega32) som gör styrsystemet smartare och lätt att modifiera för andra applikationer. Det gör det möjligt för användaren att styra eller styra en RoboCar och styra strömbrytaren från cirka 5 meter bort.
Nyckelord: IR -avkodare, AVR (Atmega32) mikrokontroller, fjärrkontroll för TV, trådlös kommunikation
_
Steg 1: IntraRed -kommunikation
IR -kommunikationsprincip:
a) IR -överföring
Sändaren av en IR -LED inuti dess krets, som avger infrarött ljus för varje elektrisk puls som ges till den. Denna puls genereras när en knapp på fjärrkontrollen trycks in, vilket slutför kretsen, vilket ger förspänning till lysdioden. Lysdioden vid förspänning avger ljus med våglängden 940 nm som en serie pulser, motsvarande den tryckta knappen. Men eftersom tillsammans med IR -LED många andra källor till infrarött ljus som oss människor, glödlampor, sol, etc, kan den överförda informationen störas. En lösning på detta problem är genom modulering. Den överförda signalen moduleras med en bärfrekvens på 38 KHz (eller någon annan frekvens mellan 36 och 46 KHz). IR -lysdioden är gjord för att pendla vid denna frekvens under pulsens varaktighet. Informationen eller ljussignalerna är pulsbreddsmodulerade och ingår i 38 KHz -frekvensen. Infraröd överföring avser energi i området för det elektromagnetiska strålningsspektrumet vid våglängder längre än för synligt ljus, men kortare än för radiovågor. På motsvarande sätt är infraröda frekvenser högre än för mikrovågor, men lägre än för synligt ljus. Forskare delar upp det infraröda strålningsspektret (IR) i tre regioner. Våglängderna anges i mikron (symboliserat µ, där 1 µ = 10-6 meter) eller i nanometer (förkortade nm, där 1 nm = 10-9 meter = 0,001 5). Nära IR -bandet innehåller energi i intervallet av våglängder närmast det synliga, från cirka 0,750 till 1,300 500 (750 till 1300 nm). Det mellanliggande IR -bandet (även kallat det mellersta IR -bandet) består av energi i intervallet 1.300 till 3.000 5 (1300 till 3000 nm). Fjärr -IR -bandet sträcker sig från 2.000 till 14.000 5 (3000 nm till 1.4000 x 104nm).
b) IR -mottagning
Mottagaren består av en fotodetektor som utvecklar en elektrisk utsignal när ljus infaller på den. Detektorns utsignal filtreras med ett smalt bandfilter som kasserar alla frekvenser under eller över bärfrekvensen (38 KHz i detta fall). Den filtrerade utmatningen ges sedan till den lämpliga enheten som en mikrokontroller eller en mikroprocessor som styr enheter som en dator eller en robot. Utsignalen från filtren kan också anslutas till oscilloskopet för att läsa av pulserna.
IR -tillämpningar:
Infrarött används i en mängd olika trådlösa kommunikations-, övervaknings- och kontrollapplikationer. Här är några exempel:
· Hem-underhållning fjärrkontroll lådor
· Trådlöst (lokala nätverk)
· Länkar mellan bärbara datorer och stationära datorer
· Sladdlöst modem
· Inbrottsdetektorer
· Rörelsedetektorer
· Brandgivare
· Nattvisionssystem
· Medicinsk diagnostisk utrustning
· Missilstyrningssystem
· Geologiska övervakningsanordningar
Överföring av IR -data från en enhet till en annan kallas ibland för strålning.
Steg 2: IR -sensor och NEC Protocol Fromat
IR -sensorer (bild 1)
TSOP1738, SFH-5110-38 (38kHz)
TSOP -sensorer Funktioner:
- Förförstärkaren och fotodetektorn är båda i ett enda paket
- Internt filter för PCM -frekvens
- Förbättrad skydd mot elektriska fältstörningar
- TTL- och CMOS -kompatibilitet
- Utgång aktiv låg Låg strömförbrukning
- Hög immunitet mot omgivande ljus
- Kontinuerlig dataöverföring möjlig
NEC -protokoll:
NEC IR -överföringsprotokollet använder pulsavståndskodning av meddelandebitarna. Varje pulsskur är 562,5 µs lång, med en bärfrekvens på 38 kHz (26,3 µs). Logiska bitar överförs enligt följande (fig 2):
- Logiskt '0' - en pulsskurning på 562,5 µs följt av ett utrymme på 562,5 µs, med en total sändningstid på 1,125 ms
- Logiskt '1' - en pulssprängning på 562,5 μs följt av ett utrymme på 1,6875 ms, med en total sändningstid på 2,25 ms
Bärpulsen består av 21 cykler vid 38 kHz. Pulserna har vanligtvis ett märke/utrymme -förhållande på 1: 4, för att minska strömförbrukningen:
(Fig3)
Varje kodsekvens börjar med en 9ms puls, känd som AGC -pulsen. Detta följs av en tystnad på 4,5 ms:
(Fig4)
Data består sedan av 32 bitar, en 16-bitars adress följt av ett 16-bitars kommando, som visas i den ordning de överförs (vänster till höger):
(Fig5)
De fyra byten med databitar skickas var och en med minst signifikant bit först. Figur 1 illustrerar formatet för en NEC IR -överföringsram för en adress på 00h (00000000b) och ett kommando för ADh (10101101b).
Totalt krävs 67,5 ms för att överföra en meddelanderam. Den behöver 27 ms för att överföra de 16 bitarna av adressen (adress + invers) och de 16 kommandobitarna (kommando + invers).
(Fig6)
Tid som krävs för att överföra ramen:
16 bitar för adressen (adress + invers) kräver 27 ms för att sända tid. Och de 16 bitarna för kommandot (kommando + invers) kräver också 27 ms för att sända tid. eftersom (adress + adress invers) eller (kommando + kommando invers) alltid kommer att innehålla 8 '0s och 8' 1's så (8 * 1.125ms) + (8 * 2.25ms) == 27 ms. enligt denna totala tid som krävs för att överföra ramen är (9ms +4,5ms +27ms +27ms) = 67,5 ms.
REPEAT CODES: Om nyckeln på fjärrkontrollen hålls intryckt kommer en upprepningskod att utfärdas, vanligtvis cirka 40 ms efter pulsutbrottet som innebar slutet på meddelandet. En upprepningskod kommer att fortsätta att skickas ut med 108 ms mellanrum tills nyckeln slutligen släpps. Upprepningskoden består av följande, i ordning:
- en 9 ms ledande pulsutbrott
- ett utrymme på 2,25 ms
- en pulsskurning på 562,5 µs för att markera änden av utrymmet (och därmed slutet av den överförda upprepningskoden).
(Fig7)
Fördröjningsberäkning (1 ms):
Klockfrekvens = 11.0592 Mhz
Maskincykel = 12
Fördröjning = 1 ms
TimerValue = 65536 - ((Delay * ClockFreq)/Machine Cycle) = 65536 - ((1ms * 11.0592Mhz)/12)
= 65536 - 921 = 0xFC67
Steg 3: DC -motorstyrning med L293D
Likströmsmotor
En likströmsmotor omvandlar elektrisk energi till mekanisk energi som kan användas för att göra många användbara arbeten. Det kan producera mekanisk rörelse som Go Forward/Backword i min RoboCar. DC -motorer finns i olika betyg som 6V och 12V. Den har två trådar eller stift. Vi kan vända rotationsriktningen genom att vända ingångens polaritet.
Här föredrar vi L293D eftersom en rating på 600mA är bra för att driva små likströmsmotorer och skyddsdioder ingår i själva IC: n. Beskrivningen av varje stift är följande: Aktivera stift: Dessa är stift nr. 1 och stift nr. 9. Stift nr. 1 används för att aktivera Half-H-förare 1 och 2. (H-bro på vänster sida). Pin -nr. 9 används för att aktivera H-broförare 3 och 4. (H-bro på höger sida).
Konceptet är enkelt, om du vill använda en viss H -bro måste du ge en hög logik till motsvarande aktiveringsstift tillsammans med strömförsörjningen till IC. Denna stift kan också användas för att styra motorns hastighet med PWM -teknik. VCC1 (stift 16): Strömförsörjningsstift. Anslut den till 5V -nätaggregatet. VCC2 (stift 8): Strömförsörjning för motor. Applicera +ve spänning på den enligt motorns betyg. Om du vill köra din motor på 12V, applicera 12V på denna stift.
Det är också möjligt att driva motorn direkt på ett annat batteri än det som används för att strömförsörja kretsen. Anslut bara +ve -terminalen för det batteriet till VCC2 -stiftet och gör GND för båda batterierna vanliga. (MAX -spänning vid denna pin är 36V enligt dess datablad). GND (Pins 4, 5, 12, 13): Anslut dem till gemensam GND för krets. Ingångar (Pins 2, 7, 10, 15):
Dessa är ingångsstiften genom vilka styrsignaler ges av mikrokontroller eller andra kretsar/IC: er. Till exempel, om vi på stift 2 (ingång för 1: a halva H -drivrutinen) ger Logic 1 (5V), får vi en spänning som är lika med VCC2 på motsvarande utgångsstift på 1: a halva H -drivrutinen, dvs stiftnr. 3. På samma sätt för Logic 0 (0V) på Pin 2 visas 0V på Pin 3. Outputs (Pin 3, 6, 11, 14): Outputs pins. Enligt insignalen kommer utsignalen.
Motorrörelser A B
------------------------------------------------------------------------------------------
…………… Stopp: Låg: Låg
…… Medsols: Låg: Hög
Moturs: Hög: Låg
……………. Stopp: Hög: Hög
Steg 4: Kretsdiagram för motorförare och IR -sensor
ATmega32 är en CMOS 8-bitars mikrokontroller med låg effekt baserad på AVR-förbättrad RISCarchitecture. Genom att utföra kraftfulla instruktioner i en enda klockcykel uppnår ATmega32 genomströmningar som närmar sig 1 MIPS per MHz så att systemdesignern kan optimera strömförbrukningen kontra bearbetningshastigheten.
AVR -kärnan kombinerar en omfattande instruktionsuppsättning med 32 allmänna arbetsregister. Alla de 32 registren är direkt anslutna till Arithmetic Logic Unit (ALU), så att två oberoende register kan nås i en enda instruktion som utförs i en klockcykel. Den resulterande arkitekturen är mer kodeffektiv samtidigt som den uppnår genomströmningar upp till tio gånger snabbare än konventionella CISC -mikrokontroller.
ATmega32 har följande funktioner:
- 32 kbyte programmerbart flashprogramminne i systemet med funktioner för läs-medan-skrivning,
- 1024 byte EEPROM, 2K byte SRAM,
- 32 I/O -linjer för allmänna ändamål,
- 32 arbetsregister för allmänna ändamål,
- ett JTAG -gränssnitt för Boundaryscan,
- On-chip Debugging-stöd och programmering, tre flexibla timer/räknare med jämförelselägen, interna och externa avbrott, ett seriellt programmerbart USART, ett byteorienterat tvåtrådigt seriellt gränssnitt, ett 8-kanals,
- 10-bitars ADC med valfritt differentialingångssteg med programmerbar förstärkning (endast TQFP-paket),
- en programmerbar Watchdog Timer med intern oscillator,
- en SPI -seriell port och
-
sex valbara energisparlägen för programvara.
- Tomgångsläget stoppar CPU: n medan USART tillåts,
- Tvåtrådigt gränssnitt, A/D-omvandlare,
- SRAM,
- Timer/räknare,
- SPI -port och
- avbryta systemet för att fortsätta fungera.
- Avstängningsläget sparar registerinnehållet men fryser oscillatorn och inaktiverar alla andra chipfunktioner tills nästa externa avbrott eller maskinvaruåterställning.
- I energisparläge fortsätter den asynkrona timern att köras, så att användaren kan behålla en timerbas medan resten av enheten sover.
- ADC -brusreduceringsläget stoppar CPU: n och alla I/O -moduler utom asynkron timer och ADC, för att minimera omkopplingsbrus under ADC -omvandlingar
- I vänteläge körs kristall/resonatoroscillatorn medan resten av enheten sover. Detta möjliggör mycket snabb start i kombination med låg energiförbrukning.
- I utökat vänteläge fortsätter både huvudoscillatorn och den asynkrona timern att köras.
Alla relaterade kretsar är ge här och huvudkretsen (atmega32) ges också.
Steg 5: Avr -program
1. För "fjärrsensor":
#inkludera #inkludera
#inkludera "remote.h"
// Globals flyktig osignerad int Time; // Huvudtimer, lagrar tid i 10us, // Uppdaterad av ISR (TIMER0_COMP) flyktig osignerad char BitNo; // Pos av nästa BIT flyktiga osignerade char ByteNo; // Pos av aktuell byte
flyktig osignerad röding IrData [4]; // De fyra databyten för Ir-paket // 2-bytes adress 2-bytes data flyktig osignerad char IrCmdQ [QMAX]; // Slutkommando mottaget (buffert)
flyktig osignerad röding PrevCmd; // Används för upprepning
// Variabler som används för att börja repetera först efter att en knapp har tryckts in under en viss tid
flyktig osignerad röding Upprepa; // 1 = ja 0 = ingen flyktig osignerad char RCount; // Upprepa antal
flyktig röding QFront = -1, QEnd = -1;
flyktig osignerad röding Stat; // Mottagarens tillstånd
flyktig osignerad rödning Edge; // Avbrottets kant [RISING = 1 OR FALLING = 0]
flyktigt osignerat int -stopp;
/************************************************* ****** ***** / / ************************************************ *********************************************/
void RemoteInit () {
char i; för (i = 0; i <4; i ++) IrData = 0;
stopp = 0; Tillstånd = IR_VALIDATE_LEAD_HIGH; Kant = 0; Upprepa = 0;
// Inställningstimer1 // ------------ TCCR0 | = ((1 <
TIMSK | = (1 <
OCR0 = TIMER_COMP_VAL; // Ställ in jämförvärde
osignerad char GetRemoteCmd (char wait) {osignerad char cmd;
if (vänta) medan (QFront ==-1); annars om (QFront ==-1) return (RC_NONE);
cmd = IrCmdQ [QFront];
om (QFront == QEnd) QFront = QEnd = -1; annars {if (QFront == (QMAX-1)) QFront = 0; annars QFront ++; }
retur cmd;
}
2. main ():
int main (void) {
uint8_t cmd = 0; DDRB = 0x08;
DDRD = 0x80;
DDRC = 0x0f; PORTC = 0x00;
medan (1) // Infinite Loop till aktiv IR-sensor {
cmd = GetRemoteCmd (1);
switch (cmd) {
fall xx: {// BOT Går framåt // Ch+ btn framåtmotor ();
ha sönder; // Båda motorerna i framåtgående riktning
}
………………………………………………….
………………………………………………….
………………………………………………….
standard: PORTC = 0x00; paus; // Både vänster och höger motor stannar}
}
}/*Slut på huvud*/
……………………………………………………………………………………………………………………
// Det är en grundläggande modell, men jag kan använda den i PWM -läge.
//…………………………………………….. Ha så kul……………………………………………………//
Rekommenderad:
DIY Kit Väderkvarn formad röd LED blinkande ljus: 6 steg (med bilder)
DIY Kit Väderkvarn Formad Röd LED Blinkande Ljus: Beskrivning: Detta är en DIY MCU design undervisning Elektroniska väderkvarnar kit för lödning övning.Lätt att montera: Denna produkt kommer till dig är Component Kit måste installeras på en cool modul som en väderkvarn. Kitkomponenternas markörnamn var
Skicka trådlös vibrations- och temperatursensordata till Excel med nod-RÖD: 25 steg
Skicka trådlös vibrations- och temperatursensordata till Excel med hjälp av Node-RED: Presentation av NCD: s Long Range IoT Industrial trådlösa vibrations- och temperaturgivare, med upp till 2 mils intervall med användning av en trådlös nätverksstruktur. Denna enhet innehåller en precisions 16-bitars vibrations- och temperaturgivare och
Nod-RÖD Med IoT Long Range Vibration och temperatursensor: 34 steg
Node-RED med IoT Long Range Vibration och Temperatursensor: Vi introducerar NCD: s trådlösa fuktighetssensor för trådlösa temperaturer med upp till 28 Miles intervall med en trådlös nätverksarkitektur. Att införliva Honeywell HIH9130 temperaturfuktighetssensor överför mycket exakt temperatur och
E-postvarningar om vibrationer och temperatur med hjälp av nod-RÖD: 33 steg
E-postvarningar om vibrationer och temperatur med hjälp av Node-RED: Presentation av NCD: s Long Range IoT Industrial trådlösa vibrations- och temperaturgivare, med upp till 2 mils användning av en trådlös nätverksstruktur. Denna enhet innehåller en precisions 16-bitars vibrations- och temperaturgivare och
Infra-röd paneltimer: 4 steg (med bilder)
Infra-röd panel timer: I ett av rummen på övervåningen i mitt hus har jag en Infra Red panel. När jag är i det rummet och jag slår på den här panelen glömmer jag ibland att stänga av den, vilket är slöseri med värdefull energi. För att förhindra detta byggde jag denna Infra Red Panel Ti