Mündəricat:
- Addım 1: IntraRed Rabitə
- Addım 2: IR Sensor & NEC Protocol Fromat
- Addım 3: L293D istifadə edərək DC Motor İdarəçiliyi
- Addım 4: Motor Sürücüsü və İQ Sensoru üçün Dövrə Şemaları
- Addım 5: Avr Proqramları
Video: AVR (ATMEGA32) MCU istifadə edərək INFRA QIRMIZI KONTROLLÜ ROBOCAR: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Hazırkı PROJEKT, müxtəlif avtomatlaşdırılmış insansız idarəetmə tətbiqləri üçün istifadə edilə bilən infraqırmızı (IR) uzaqdan idarə olunan RoboCar dizaynını və tətbiqini təsvir edir. Uzaqdan idarə olunan RoboCar (sol-sağ/ön-arxa hərəkət) dizayn etmişəm. Bütün sistem idarəetmə sistemini daha ağıllı və digər tətbiqlər üçün dəyişdirməyi asanlaşdıran mikro nəzarətçiyə (Atmega32) əsaslanır. İstifadəçiyə bir RoboCar -ı idarə etməyi və ya idarə etməyi və təxminən 5 metr uzaqdan elektrik enerjisi açarını idarə etməyi təmin edir.
Açar sözlər: IR Dekoder, AVR (Atmega32) Mikrokontrolör, TV uzaqdan idarəetmə cihazı, Simsiz əlaqə
_
Addım 1: IntraRed Rabitə
IR Rabitə prinsipi:
a) IR ötürülməsi
Daxil edilmiş hər bir elektrik nəbzi üçün infraqırmızı işıq yayan bir IR LED -in ötürücüsü. Bu nəbz, pultdakı bir düyməyə basıldığı zaman meydana gəlir, beləliklə dövrəni tamamlayaraq LED -ə önyargı verir. Qeyri -adi LED, 940nm dalğa uzunluğunda bir düymə basıldıqda bir sıra nəbzlər şəklində işıq saçır. Bununla birlikdə, IR LED ilə birlikdə biz insanlar, ampüller, günəş və s kimi bir çox digər infraqırmızı işıq mənbələri olduğundan ötürülən məlumatlara müdaxilə edilə bilər. Bu problemin həlli modulyasiyadır. Göndərilən siqnal 38 KHz (və ya 36 ilə 46 KHz arasında olan hər hansı digər tezlik) daşıyıcı tezliyi ilə modulyasiya olunur. IR LED, pulsun müddəti üçün bu tezlikdə salınması üçün hazırlanmışdır. Məlumat və ya işıq siqnalları nəbz genişliyi modulyasiya olunur və 38 KHz tezliyindədir. İnfraqırmızı ötürmə, görünən işığın dalğa uzunluğundan daha uzun, lakin radio dalğalarından daha qısa olan elektromaqnit şüalanma spektrinin bölgəsindəki enerjiyə aiddir. Müvafiq olaraq, infraqırmızı tezliklər mikrodalğalı dalğalardan daha yüksəkdir, lakin görünən işığdan daha aşağıdır. Elm adamları infraqırmızı radiasiya (İR) spektrini üç bölgəyə bölürlər. Dalğa uzunluqları mikronlarla (1 µ = 10-6 metr olduğu µ simvolu ilə) və ya nanometrlərlə (qısaldılmış nm, burada 1 nm = 10-9 metr = 0.001 5) göstərilmişdir. Yaxınlıqdakı IR diapazonu, görünənə ən yaxın olan dalğa uzunluqlarında təxminən 0,750 ilə 1,300 5 (750 ilə 1300 nm) arasında enerji ehtiva edir. Aralıq IR diapazonu (orta İK diapazonu da deyilir) 1.300 ilə 3.000 5 (1300 ilə 3000 nm) aralığında olan enerjidən ibarətdir. Uzaq IR diapazonu 2.000 -dən 14.000 5 -ə (3000 nm -dən 1.4000 x 104nm) qədər uzanır.
b) IR qəbulu
Alıcı, işığın üzərinə düşdüyü üçün bir elektrik elektrik siqnalını inkişaf etdirən bir foto detektordan ibarətdir. Detektorun çıxışı, daşıyıcı tezliyindən aşağı və ya yuxarıdakı bütün tezlikləri (bu halda 38 KHz) atan dar bir bant filtrindən istifadə edərək süzülür. Süzülmüş çıxış daha sonra bir mikro nəzarətçi və ya bir kompüter və ya bir robot kimi cihazları idarə edən bir mikroprosessor kimi uyğun cihaza verilir. Filtrlərdən çıxan pulsları oxumaq üçün osiloskopa da qoşula bilər.
IR tətbiqləri:
İnfraqırmızı müxtəlif simsiz rabitə, monitorinq və nəzarət tətbiqlərində istifadə olunur. Budur bəzi nümunələr:
· Ev-əyləncə uzaqdan idarəetmə qutuları
· Simsiz (yerli şəbəkələr)
· Notbuk və masa üstü kompüterlər arasındakı əlaqələr
· Simsiz modem
· Hücum detektorları
· Hərəkət detektorları
· Yanğın sensorlar
· Gecə görmə sistemləri
· Tibbi diaqnostika avadanlığı
· Raket idarəetmə sistemləri
· Geoloji monitorinq cihazları
IR məlumatlarının bir cihazdan digərinə ötürülməsinə bəzən şüalanma deyilir.
Addım 2: IR Sensor & NEC Protocol Fromat
IR sensorlar (Şəkil 1)
TSOP1738, SFH-5110-38 (38kHz)
TSOP Sensorlarının Xüsusiyyətləri:
- Ön gücləndirici və foto detektoru hər ikisi tək bir paketdədir
- PCM tezliyi üçün daxili filtr
- Elektrik sahəsinin pozulmasına qarşı təkmilləşdirilmiş ekranlama
- TTL və CMOS uyğunluğu
- Çıxış aktiv aşağı Aşağı enerji istehlakı
- Ətraf işığına qarşı yüksək toxunulmazlıq
- Davamlı məlumat ötürülməsi mümkündür
NEC Protokolu:
NEC IR ötürmə protokolu mesaj bitlərinin nəbz məsafə kodlaşdırmasından istifadə edir. Hər nəbz partlayışı 562.5µs uzunluğunda, 38kHz (26.3µs) bir daşıyıcı tezliyindədir. Məntiqi bitlər aşağıdakı kimi ötürülür (Şəkil 2):
- Məntiqi '0' - 562.5µs nəbz partlayışı və 562.5µs boşluq, ümumi ötürmə müddəti 1.125ms
- Məntiqi '1' - 562.5μs nəbz partlayışı və 1.6875ms boşluq, ümumi ötürmə müddəti 2.25ms
Taşıyıcı nəbz 38 kHz -də 21 dövrdən ibarətdir. İmpulslar, cari istehlakı azaltmaq üçün adətən 1: 4 işarəsi/boşluq nisbətinə malikdir:
(Şəkil 3)
Hər kod ardıcıllığı, AGC nəbzi olaraq bilinən 9ms pulse ilə başlayır. Bunun ardınca 4.5 ms səssizlik gəlir:
(Şəkil 4)
Məlumat daha sonra 32 bitdən, 16 bitlik bir ünvandan sonra 16 bitlik bir əmrdən ibarətdir və ötürülmə qaydasında göstərilir (soldan sağa):
(Şəkil 5)
Məlumat bitlərinin dörd baytı hər biri əvvəlcə ən az əhəmiyyətli bit göndərilir. Şəkil 1, 00h (00000000b) ünvanı və ADh (10101101b) əmri üçün NEC IR ötürmə çərçivəsinin formatını göstərir.
Mesaj çərçivəsinin ötürülməsi üçün cəmi 67.5ms lazımdır. 16 bit ünvan (ünvan + tərs) və 16 bit əmr (əmr + tərs) ötürmək üçün 27 ms lazımdır.
(Şəkil 6)
Çərçivəni ötürmək üçün lazım olan vaxt:
Ünvan üçün 16 bit (ünvan + tərs) vaxt ötürmək üçün 27ms tələb edir. Və əmr üçün 16 bit (əmr + tərs) də vaxt ötürmək üçün 27ms tələb edir. çünki (ünvan + ünvan tərs) və ya (əmr + əmr tərsinə) həmişə 8 '0 və 8' 1 'lərdən ibarət olacaq (8 * 1.125 ms) + (8 * 2.25 ms) == 27 ms. Buna görə çərçivənin ötürülməsi üçün lazım olan ümumi vaxt (9ms +4.5ms +27ms +27ms) = 67.5 msdir.
TƏKRAR KODLARI: Uzaqdan idarəedicinin düyməsi basılı saxlanılırsa, mesajın sonunu bildirən nəbz partlayışından təxminən 40 ms sonra bir təkrar kod veriləcəkdir. Təkrar kod, açar nəhayət açılana qədər 108 ms fasilələrlə göndərilməyə davam edəcək. Təkrar kod aşağıdakılardan ibarətdir:
- 9 ms aparıcı nəbz partlaması
- 2.25 ms boşluq
- boşluğun sonunu (və dolayısı ilə ötürülən təkrar kodun sonunu) qeyd etmək üçün 562.5µs nəbz partlaması.
(Şəkil 7)
Gecikmə Hesablaması (1 ms):
Saat tezliyi = 11.0592 Mhz
Maşın dövrü = 12
Gecikmə = 1 ms
TimerValue = 65536 - ((Gecikmə * ClockFreq)/Maşın Dövrü) = 65536 - (((1ms * 11.0592Mhz)/12)
= 65536 - 921 = 0xFC67
Addım 3: L293D istifadə edərək DC Motor İdarəçiliyi
DC Motor
Bir DC mühərriki elektrik enerjisini bir çox faydalı iş üçün istifadə edilə bilən mexaniki enerjiyə çevirir. RoboCar -ın İrəli/Arxa Sözü kimi mexaniki hərəkətlər yarada bilər. DC mühərrikləri 6V və 12V kimi müxtəlif dərəcələrdə gəlir. İki tel və ya pindən ibarətdir. Girişin polaritesini dəyişdirərək fırlanma istiqamətini dəyişə bilərik.
Burada L293D -yə üstünlük veririk, çünki 600mA reytinqi kiçik DC mühərrikləri idarə etmək üçün yaxşıdır və qoruyucu diodlar IC -nin özünə daxil edilmişdir. Hər pinin təsviri belədir: Pinləri aktiv edin: Bunlar pin nömrəsidir. 1 və pin nömrəsi. 9. Pin nömrəsi. 1 Half-H sürücüsü 1 və 2-ni işə salmaq üçün istifadə olunur (Sol tərəfdəki H körpüsü). Pin nömrəsi. 9, H-körpü sürücüsü 3 və 4-ü işə salmaq üçün istifadə olunur (Sağ tərəfdəki H körpüsü).
Konsepsiya sadədir, müəyyən bir H körpüsündən istifadə etmək istəyirsinizsə, IC -nin enerji təchizatı ilə birlikdə müvafiq aktivləşdirmə pinlərinə yüksək məntiq verməlisiniz. Bu pin, PWM texnikasından istifadə edərək motorun sürətini idarə etmək üçün də istifadə edilə bilər. 5V -luq elektrik şəbəkəsinə qoşun. VCC2 (Pin 8): Motor üçün enerji təchizatı. Motor reytinqinə görə ona +ve gərginlik tətbiq edin. Motorunuzu 12V -də idarə etmək istəyirsinizsə, bu pinə 12V tətbiq edin.
Mühərriki dövrə enerji vermək üçün istifadə olunandan başqa birbaşa akkumulyatorla idarə etmək də mümkündür, sadəcə həmin batareyanın +ve terminalını VCC2 pininə qoşun və hər iki batareyanın GND -ni ümumi hala gətirin. (Bu pindəki MAX gərginliyi, məlumat cədvəlinə görə 36V)
Bunlar nəzarət siqnallarının mikrokontrolörler və ya digər sxemlər/IC -lər tərəfindən verildiyi giriş pinləridir. Məsələn, pin 2 -də (1 -ci yarı H sürücüsünün girişi) Məntiq 1 (5V) verəriksə, 1 -ci yarı H sürücüsünün müvafiq pinində VCC2 -yə bərabər bir gərginlik alacağıq, yəni pin no. 3. Eynilə Pin 2 -də Məntiq 0 (0V) üçün, Pin 3 -də 0V görünür. Çıxışlar (Pin 3, 6, 11, 14): Çıxış pinləri. Giriş siqnalına görə çıxış siqnalı gəlir.
Motor hərəkətləri A B
-----------------------------------------------------------------------------------------
…………… Dur: Aşağı: Aşağı
…… Saat yönünde: Aşağı: Yüksək
Saat yönünün əksinə: Yüksək: Aşağı
……………. Dayan: Yüksək: Yüksək
Addım 4: Motor Sürücüsü və İQ Sensoru üçün Dövrə Şemaları
ATmega32, AVR inkişaf etmiş RISCarchitecture-a əsaslanan aşağı güclü CMOS 8 bitlik mikro nəzarətçisidir. ATmega32, bir saat dövrü ərzində güclü təlimatları yerinə yetirərək, sistem dizaynçısının işləmə sürəti ilə müqayisədə enerji istehlakını optimallaşdırmasına imkan verən MHz başına 1 MIPS -ə yaxın olan çıxışlara nail olur.
AVR nüvəsi, 32 ümumi təyinatlı iş reyestri ilə zəngin bir təlimat dəstini özündə birləşdirir. Bütün 32 qeydlər birbaşa Aritmetik Məntiq Birliyinə (ALU) bağlıdır və iki müstəqil qeydə bir saat dövrü ərzində yerinə yetirilən bir təlimatda daxil olmaq imkanı verir. Ortaya çıxan arxitektura, ənənəvi CISC mikro nəzarətçilərindən on qat daha sürətli çıxış əldə edərkən daha kod səmərəlidir.
ATmega32 aşağıdakı xüsusiyyətləri təmin edir:
- Oxuma-Yazma qabiliyyətinə malik 32 Kbayt Sistemda Proqramlaşdırıla bilən Flash Proqram yaddaşı,
- 1024 bayt EEPROM, 2K baytlıq SRAM,
- 32 ümumi təyinatlı I/O xətti,
- 32 ümumi təyinatlı iş reyestri,
- Boundaryscan üçün JTAG interfeysi,
- Çipdə Hata Ayıklama dəstəyi və proqramlaşdırma, müqayisə rejimləri olan üç çevik Taymer/Sayıcılar, Daxili və Xarici Kəsilmələr, seriyalı proqramlaşdırıla bilən USART, baytlı iki telli Serial İnterfeysi, 8 kanallı,
- Proqramlaşdırıla bilən qazanclı isteğe bağlı diferensial giriş mərhələsi olan 10 bit ADC (yalnız TQFP paketi),
- Daxili Osilatörlü proqramlaşdırıla bilən Gözətçi Taymeri,
- SPI serial portu və
-
altı proqram seçilə bilən enerji qənaət rejimi.
- Boş rejim, USART -a icazə verərkən CPU -nu dayandırır,
- İki telli interfeys, A/D çeviricisi,
- SRAM,
- Taymer/Sayğaclar,
- SPI portu və
- fəaliyyətini davam etdirmək üçün sistemin kəsilməsi.
- Gücün aşağı salınması rejimi qeydlərin məzmununu saxlayır, lakin Osilatoru dondurur və növbəti Xarici Kəsmə və ya Avadanlığın Sıfırlanmasına qədər bütün digər çip funksiyalarını deaktiv edir.
- Güc qənaət rejimində, Asenkron Taymer işləməyə davam edir, bu da istifadəçinin cihazın qalan hissəsi yatarkən taymer bazasını saxlamasına imkan verir.
- ADC Səs Azaltma rejimi, ADC dönüşümləri zamanı keçid səs -küyünü minimuma endirmək üçün CPU və Asinxron Taymer və ADC istisna olmaqla bütün I/O modullarını dayandırır.
- Gözləmə rejimində, cihazın qalan hissəsi yatarkən kristal/rezonator Osilatoru işləyir. Bu, aşağı enerji istehlakı ilə birlikdə çox sürətli işə salmağa imkan verir.
- Genişləndirilmiş Gözləmə rejimində həm əsas Osilator, həm də Asenkron Zamanlayıcı işləməyə davam edir.
Bütün əlaqəli sxemlər burada verilir və əsas dövrə (atmega32) də verilir.
Addım 5: Avr Proqramları
1. "Uzaqdan sensor" üçün:
#daxil edin #daxil edin
#"remote.h" daxil edin
// Globals uçucu işarəsiz int Time; // Əsas taymer, vaxtı 10us -da saxlayır, // ISR (TIMER0_COMP) tərəfindən dəyişdirilmiş uçucu işarəsiz bit BitNo; // Növbəti BIT uçucu imzasız char Poste ByteNo; // Cari baytın mövqeyi
uçucu işarəsiz char IrData [4]; // İr Paketinin dörd məlumat baytı // 2 Baytlı Ünvan 2 Baytlı Məlumatlar uçucu işarəsiz irCmdQ [QMAX]; // Son Komanda Alındı (Tampon)
uçucu işarəsiz char PrevCmd; // Təkrar etmək üçün istifadə olunur
// Yalnız bir düyməyə basıldıqdan sonra təkrarlanmağa başlamaq üçün istifadə olunan dəyişənlər
uçucu işarəsiz char Repeat; // 1 = bəli 0 = yox uçucu işarəsiz char RCount; // Təkrar say
uçucu char QFront = -1, QEnd = -1;
uçucu olmayan imzasız char vəziyyəti; // Alıcının vəziyyəti
uçucu işarəsiz char Edge; // Fasilə kənarı [RISING = 1 VEYA FALLING = 0]
uçucu işarəsiz int stop;
/*********************************************** ******************************************* / /*FUNCTIONSSTARTS* / / *********************************************** ********************************************/
void RemoteInit () {
char i; üçün (i = 0; i <4; i ++) IrData = 0;
dayanma = 0; Vəziyyət = IR_VALIDATE_LEAD_HIGH; Kenar = 0; Təkrar = 0;
// Quraşdırma Zamanlayıcısı1 // ------------ TCCR0 | = ((1 <
TIMSK | = (1 <
OCR0 = TIMER_COMP_VAL; // Müqayisə Dəyərini təyin edin
imzasız char GetRemoteCmd (char wait) {işarəsiz char cmd;
if (wait) while (QFront ==-1); else if (QFront ==-1) qayıt (RC_NONE);
cmd = IrCmdQ [QFront];
əgər (QFront == QEnd) QFront = QEnd = -1; başqa {əgər (QFront == (QMAX-1)) QFront = 0; başqa QFront ++; }
cmd qaytar;
}
2. əsas ():
int main (void) {
uint8_t cmd = 0; DDRB = 0x08;
DDRD = 0x80;
DDRC = 0x0f; PORTC = 0x00;
while (1) // Aktiv IR sensora sonsuz döngə {
cmd = GetRemoteCmd (1);
keçid (cmd) {
hal xx: {// BOT İrəli hərəkət edir // Ch+ btn irəli motor ();
fasilə; // Hər iki motor irəli istiqamətdə
}
………………………………………………….
………………………………………………….
………………………………………………….
standart: PORTC = 0x00; fasilə; // Həm sol, həm də sağ mühərriklər dayanır}
}
}/*Əsas hissənin sonu*/
……………………………………………………………………………………………………………………
// Əsas bir modeldir, amma PWM rejimində istifadə edə bilərəm.
//…………………………………………….. Əylənin……………………………………………………//
Tövsiyə:
Arduino istifadə edərək İnternetdən istifadə edərək bütün dünyanı idarə et: 4 addım
Arduino istifadə edərək İnternetdən istifadə edərək bütün dünyanı idarə et: Salam, mən Rithikəm. Telefonunuzdan istifadə edərək internetə nəzarət edən bir led quracağıq. Arduino IDE və Blynk kimi proqramlardan istifadə edəcəyik. Bu çox sadədir və uğur qazansanız istədiyiniz qədər elektron komponenti idarə edə bilərsiniz
Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək sürətlənməni izləyin: 6 addım
Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək Sürətləndirməni izləyin: Sürətləndirmə sonsuzdur, düşünürəm ki, Fizikanın bəzi qanunlarına görə. Sahilə çıxan ən sürətli məxluq, bir anda ən yüksək sürətindən istifadə edərək ovunu tutur
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar - Mikrokontrolördən istifadə edərək bir Quadcopter hazırlayın: 8 addım (şəkillərlə)
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar | Mikrokontrolördən istifadə edərək Quadcopter hazırlayın: Giriş Youtube Kanalımı Ziyarət Edin Drone almaq üçün çox bahalı bir gadget (məhsul) təşkil edir. Bu yazıda necə ucuz satacağımı müzakirə edəcəyəm? Ucuz qiymətə öz əlinizlə bunu necə edə bilərsiniz … Yaxşı Hindistanda bütün materiallar (mühərriklər, ESClər
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow - Arduino IDE -dən istifadə edərək M5stack M5stick C -dən istifadə edərək Neopixel Ws2812 -də Göy qurşağının Çalışması: 5 addım
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow | Arduino IDE istifadə edərək M5stack M5stick C istifadə edərək Neopixel Ws2812 üzərində Göy qurşağı çalıştırın: Salam uşaqlar bu təlimatlarda Arduino IDE ilə m5stack m5stick-C inkişaf lövhəsi ilə neopixel ws2812 LED və ya led şerit və ya led matris və ya led üzük istifadə etməyi öyrənəcəyik. onunla bir göy qurşağı nümunəsi
Arduino istifadə edərək RoboCar ilə işləyən Smartfonda Maneə Algılama: 5 addım
Arduino ilə RoboCar İdarə Edilən Smartfonun Maneə Alınması: Bu layihədə iki ultrasəs sensoru, bir bluetooth modulunun Arduino ilə əlaqələndirildiyi bir Robocar hazırladıq