Мазмуну:

Кагылышуунун алдын алуу- Pi тарабынан иштелген: 6 кадам
Кагылышуунун алдын алуу- Pi тарабынан иштелген: 6 кадам

Video: Кагылышуунун алдын алуу- Pi тарабынан иштелген: 6 кадам

Video: Кагылышуунун алдын алуу- Pi тарабынан иштелген: 6 кадам
Video: Титаниктин сыры: кантип алар айсбергди байкабай калышты?! Эң деталдуу окуя! 2024, Ноябрь
Anonim
Кагылышуунун алдын алуу- Pi тарабынан иштелип чыккан
Кагылышуунун алдын алуу- Pi тарабынан иштелип чыккан

Бул Нускамалык сизге Collision алдын алуу системасын куруу боюнча этап-этабы менен көрсөтмө берет. Баштоо үчүн төмөнкү материалдардын тизмесин алуу керек:

Raspberry PI 3 (күч жана Ethernet аккорддору менен), 1 GPIO узартуу тактасы жана лента кабели (GPIO), диаграммасы бар 1 чоң нан таблицасы, диаграммасы бар 2 кичинекей нан тактасы, 14 секирүүчү кабель, 3 220 Ом резистору, 1 RGB LED, 3 баскыч өчүргүч, 1HB-SR04 Ultrasonic сенсор

1 -кадам: GPIO кеңейтүүсү

GPIO кеңейтүүсү
GPIO кеңейтүүсү
GPIO кеңейтүүсү
GPIO кеңейтүүсү

GPIO кеңейтүү тактасын чоң нанга туташтырыңыз. GPIO нан тактасы сыяктуу вертикалдуу каралышы керек. Берилген диаграмманы колдонуу менен GPIOнун сол жагын D1-D20 нан портуна дайындаңыз. Оң жагы H1-H20 менен туташмак. Тасма кабелин Raspberry Pi 3кө жана GPIO кеңейтүү тактасына да туташтырыңыз. Бул бүт компонент эми GPIO тактасы (GPIO) деп аталат

2 -кадам: Ultrasonic Sensor

Ultrasonic Sensor
Ultrasonic Sensor
Ultrasonic Sensor
Ultrasonic Sensor

Башка кичинекей нан тактасын колдонуп, HR-SR04 ультрадыбыштуу сенсорун берилген диаграмманы колдонуп, кичинекей А5-5 порттор портуна туташтырыңыз. Өткөргүч кабелин кичинекей нан тактасына (BB) E2ге туташтырыңыз, экинчи учун GPIO узартуу тактасынын J1 портуна салыңыз. Ушул сыяктуу эле, дагы үч секиргичти төмөнкүдөй түрдө туташтырыңыз. (BB E3, GPIO B17) (BB E4, GPIO B18) (BB E5, GPIO B20)

3 -кадам: LED жана резисторлор

LED жана резисторлор
LED жана резисторлор
LED жана резисторлор
LED жана резисторлор
LED жана резисторлор
LED жана резисторлор

Мурунку көрсөтмөдө колдонулган кичинекей нан тактасында, 220 мкм үч резисторду төмөнкүдөй түрдө туташтырыңыз. (E10, H10) (E12, H12) (E14, H14) Андан кийин ошол эле E13 панелинен секиргичти GPIO тактасындагы жер электр темир жолуна туташтырыңыз. Светодиоддун төрт тиштерин кичинекей нан портторуна туташтырыңыз (B13) (D14) (D12) (D10). Андан кийин кичинекей нан тактасынан үч секиргичти GPIO тактасына дайындалган түрдө туташтырыңыз. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). Бул нан тактасы азыр бүтүп калды.

4 -кадам: Жер

Жер
Жер

GPIO тактасын J7 туташтыруу үчүн башка секиргичти колдонуңуз.

5 -кадам: Баскычтар

Баскычтар
Баскычтар

Экинчи нан тактасын колдонуп, E1 жана D1 портуна баскычтын өчүргүчүнүн үстүн кой, экинчисин E5 жана D5ке, үчүнчүсүн E9 жана D9го кой. GPIO тактасындагы оң электр темир жолунан үч секиргичти төмөнкү панель портторуна туташтырыңыз (D3) (D7) (D11). Дагы үч секирүүчү кабелди колдонуп, нан тактасын GPIO узартуу тактасына төмөнкү имаратта туташтырыңыз: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). Акырында, акыркы секирүүчү кабелди колдонуп, GPIO A1ди оң электр темир жолуна туташтырыңыз. Физикалык жөндөө азыр аяктады.

6 -кадам: Код

Code
Code
Code
Code

Ethernet кабелин жана электр кабелин Пи -ге жана алардын тийиштүү позициясына туташтырыңыз. MATLABты ачыңыз жана микро контроллерди баштоо үчүн төмөнкү скриптти иштетиңиз:

rpi = raspi ('169.254.0.2', 'pi', 'малина');

Андан кийин кагылышуунун алдын алуу системасын иштетүү үчүн төмөнкүлөрдү көчүрүп, Ping деп аталган жаңы скриптке чаптаңыз:

dist = ping () trig = 19 функциясы; echo = 13; тест = 21; configurePin (rpi, trig, 'DigitalOutput'); configurePin (rpi, echo, 'DigitalInput'); configurePin (rpi, тест, 'DigitalInput');

disp ("Аралыкты өлчөө жүрүп жатат");

чыныгы writeDigitalPin (rpi, trig, 0); disp ("Сенсордун жайгашуусуна уруксат берүү"); тыным (2);

writeDigitalPin (rpi, trig, 1); тыным (0.002); writeDigitalPin (rpi, trig, 0);

readDigitalPin (rpi, echo) == 0 аягында

readDigitalPin (rpi, echo) == 1 T = toc; аяктоо

pulse_duration = T; аралык = pulse_duration * 17150;

open = "Расстояние ="; жабуу = "см"; сап = [ачык, аралык, жабуу]; дисп (сап); dist = расстояние; аягы аягы

Жаңы скриптте статус деп аталган төмөнкү кодду иштетиңиз:

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

status = 2; d = 10; %Статус: 0-Кызыл/Токтоо 1-Көк/Акырын 2-Жашыл/Чуркоо = чыныгы; %d = ping () иштеп жатканда; if readDigitalPin (rpi, 21) == 1 status = 0; elseif readDigitalPin (rpi, 16) == 1 абал = 1; elseif readDigitalPin (rpi, 12) == 1 абал = 2; башка д

Сунушталууда: