Mundarija:

To'qnashuvning oldini olish- Pi: 6 qadam
To'qnashuvning oldini olish- Pi: 6 qadam

Video: To'qnashuvning oldini olish- Pi: 6 qadam

Video: To'qnashuvning oldini olish- Pi: 6 qadam
Video: ХОМИЛА ТУШИШ АЛОМАТЛАРИ ВА СИЗ НИМА КИЛАСИЗ 2024, Noyabr
Anonim
To'qnashuvlarning oldini olish- Pi tomonidan quvvatlanadi
To'qnashuvlarning oldini olish- Pi tomonidan quvvatlanadi

Bu ko'rsatma sizga to'qnashuvning oldini olish tizimini yaratish bo'yicha bosqichma-bosqich ko'rsatma beradi. Ishni boshlash uchun siz quyidagi materiallar ro'yxatini olishingiz kerak:

Raspberry PI 3 (quvvat va chekilgan akkordlar bilan), 1 GPIO kengaytma taxtasi va tasma kabeli (GPIO), diagrammasi bo'lgan 1 ta katta non paneli, diagrammasi bo'lgan 2 ta kichik stol, 14 ta o'tish kabeli, 3 220 Ohm qarshilik, 1 ta RGB LED, 3 tugmachali kalit., 1HB-SR04 Ultrasonik sensor

1 -qadam: GPIO kengaytmasi

GPIO kengaytmasi
GPIO kengaytmasi
GPIO kengaytmasi
GPIO kengaytmasi

GPIO kengaytma kartasini katta panelga ulang. GPIO xuddi vertikal tomonga qaragan bo'lishi kerak. Taqdim etilgan diagramma yordamida GPIO-ning chap tomonini D1-D20 taxta portlariga belgilang. O'ng tomon H1-H20 ga ulanadi. Lenta kabelini Raspberry Pi 3 va GPIO kengaytma kartasiga ulang. Endi bu komponent GPIO platasi (GPIO) deb nomlanadi.

2 -qadam: Ultrasonik sensor

Ultrasonik sensor
Ultrasonik sensor
Ultrasonik sensor
Ultrasonik sensor

Boshqa kichikroq taxtadan foydalanib, HR-SR04 ultratovushli sensorni kichikroq A2-5 portli portiga ulangan diagramma yordamida ulang. O'tish kabelini kichikroq E2 taxtasiga (BB) ulang, ikkinchi uchini GPIO uzatma platasining J1 portiga joylashtiring. Xuddi shu tarzda, yana uchta o'tish moslamasini quyidagi tarzda ulang. (BB E3, GPIO B17) (BB E4, GPIO B18) (BB E5, GPIO B20)

3 -qadam: LED va rezistorlar

LED va rezistorlar
LED va rezistorlar
LED va rezistorlar
LED va rezistorlar
LED va rezistorlar
LED va rezistorlar

Oldingi yo'riqnomada ishlatilgan xuddi shu kichik non panelida uchta 220 ohmli rezistorni quyidagi usulda ulang. (E10, H10) (E12, H12) (E14, H14) Keyin, xuddi shu E13 non panelidagi o'tish moslamasini GPIO platasidagi er quvvat rampasiga ulang. LEDning to'rtta vilkasini kichikroq non paneli (B13) (D14) (D12) (D10) ga ulang. Keyin kichikroq taxtadan uchta o'tish moslamasini GPIO kartasiga belgilangan usulda ulang. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). Bu non paneli endi tugadi.

4 -qadam: er

Zamin
Zamin

GPIO J7 platasini er usti elektr tarmog'iga ulash uchun boshqa o'tish moslamasidan foydalaning.

5 -qadam: tugmalar

Tugmalar
Tugmalar

Ikkinchi paneldan foydalanib, E1 va D1 portidagi tugmachaning yuqori qismini, E5 va D5 -da, uchinchisini E9 va D9 -da joylashtiring. GPIO kartasidagi musbat elektr o'tkazgichdan uchta o'tish moslamasini quyidagi (D3) (D7) (D11) portli portlarga ulang. Yana uchta o'tish kabelidan foydalanib, non panelini GPIO uzatma kartasiga quyidagi usulda ulang: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). Oxir -oqibat, oxirgi o'tish kabelidan foydalanib, GPIO A1 -ni musbat elektr uzatgichiga ulang. Hozirgi vaqtda jismoniy sozlash tugallandi.

6 -qadam: kod

Kod
Kod
Kod
Kod

Ethernet kabeli va quvvat kabelini Pi -ga ulang va ularni tegishli joylariga ulang. MATLAB-ni oching va mikrokontrolerni ishga tushirish uchun quyidagi skriptni ishga tushiring:

rpi = raspi ('169.254.0.2', 'pi', 'malina');

Keyin to'qnashuvlarning oldini olish tizimini ishga tushirish uchun quyidagilarni nusxa ko'chiring va Ping deb nomlangan yangi skriptga joylashtiring:

dist = ping () trig = 19 funktsiyasi; echo = 13; test = 21; configurePin (rpi, trig, 'DigitalOutput'); configurePin (rpi, echo, 'DigitalInput'); configurePin (rpi, test, 'DigitalInput');

disp ("Masofani o'lchash davom etmoqda");

haqiqiy writeDigitalPin (rpi, trig, 0); disp ("Sensorni o'rnatishga ruxsat berish"); pauza (2);

writeDigitalPin (rpi, trig, 1); pauza (0,002); writeDigitalPin (rpi, trig, 0);

readDigitalPin (rpi, echo) == 0 tic oxiri

readDigitalPin (rpi, echo) == 1 T = toc; oxiri

pulse_duration = T; masofa = pulse_duration * 17150;

ochiq = "Masofa ="; yopish = "sm"; string = [ochiq, masofa, yopilish]; disp (satr); dist = masofa; oxiri oxiri

Yangi skriptda status nomli quyidagi kodni ishga tushiring:

configurePin (rpi, 21, 'DigitalInput'); configurePin (rpi, 16, 'DigitalInput'); configurePin (rpi, 12, "DigitalInput");

holat = 2; d = 10; %Holat: 0-Qizil/To'xtash 1-Moviy/Sekin 2-Yashil/Yugurish = to'g'ri; %d = ping () ishlayotganda; agar readDigitalPin (rpi, 21) == 1 holat = 0; elseif readDigitalPin (rpi, 16) == 1 holat = 1; elseif readDigitalPin (rpi, 12) == 1 holat = 2; boshqa d

Tavsiya: