Оглавление:

Предотвращение столкновений - на базе Pi: 6 шагов
Предотвращение столкновений - на базе Pi: 6 шагов

Видео: Предотвращение столкновений - на базе Pi: 6 шагов

Видео: Предотвращение столкновений - на базе Pi: 6 шагов
Видео: Осторожно, двери закрываются. 2024, Сентябрь
Anonim
Предотвращение столкновений - на базе Pi
Предотвращение столкновений - на базе Pi

Это руководство даст вам пошаговое руководство по созданию системы предотвращения столкновений. Для начала необходимо получить следующий список материалов:

Raspberry PI 3 (с кабелями питания и Ethernet), 1 плата расширения GPIO и ленточный кабель (GPIO), 1 большая макетная плата со схемой, 2 небольших макета со схемой, 14 соединительных кабелей, 3 резистора 220 Ом, 1 светодиод RGB, 3 кнопочных переключателя, 1HB-SR04 Ультразвуковой датчик

Шаг 1. Расширение GPIO

Расширение GPIO
Расширение GPIO
Расширение GPIO
Расширение GPIO

Подключите плату расширения GPIO к большой макетной плате. GPIO должен быть обращен вертикально, как и макет. Назначьте левую сторону GPIO портам D1-D20 на макетной плате, как показано на схеме. Тогда правая сторона подключится к H1-H20. Подключите ленточный кабель как к Raspberry Pi 3, так и к плате расширения GPIO. Теперь весь этот компонент будет называться платой GPIO (GPIO).

Шаг 2: ультразвуковой датчик

Ультразвуковой датчик
Ультразвуковой датчик
Ультразвуковой датчик
Ультразвуковой датчик

Используя другую макетную плату меньшего размера, подключите ультразвуковой датчик HR-SR04 к портам A2-5 меньшей макетной платы, как показано на схеме. Подключите соединительный кабель к меньшей макетной плате (BB) E2, вставьте другой конец в порт J1 платы расширения GPIO. Таким же образом подключите еще три перемычки следующим образом. (BB E3, GPIO B17) (BB E4, GPIO B18) (BB E5, GPIO B20)

Шаг 3: светодиод и резисторы

Светодиод и резисторы
Светодиод и резисторы
Светодиод и резисторы
Светодиод и резисторы
Светодиод и резисторы
Светодиод и резисторы

На той же небольшой макетной плате, которая использовалась в предыдущей инструкции, подключите три резистора 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: Код

Код
Код
Код
Код

Подключите кабель Ethernet и кабель питания к Pi и в их соответствующие положения. Откройте MATLAB и запустите следующий сценарий для инициализации микроконтроллера:

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

Затем скопируйте и вставьте следующее в новый скрипт под названием Ping, чтобы запустить систему предотвращения столкновений:

функция dist = ping () trig = 19; эхо = 13; test = 21; configurePin (rpi, trig, 'DigitalOutput'); configurePin (rpi, echo, 'DigitalInput'); configurePin (rpi, test, 'DigitalInput');

disp («Выполняется измерение расстояния»);

пока правда writeDigitalPin (rpi, trig, 0); disp ("Дать датчику успокоиться"); пауза (2);

writeDigitalPin (rpi, trig, 1); пауза (0,002); writeDigitalPin (rpi, trig, 0);

в то время как readDigitalPin (rpi, echo) == 0 tic end

в то время как readDigitalPin (rpi, echo) == 1 T = toc; конец

Pulse_duration = T; расстояние = длительность_импульса * 17150;

open = "Расстояние ="; close = "см"; строка = [открыть, расстояние, закрыть]; disp (строка); dist = расстояние; конец конец

В новом скрипте запустите следующий код с именем status:

configurePin (rpi, 21, 'Цифровой ввод'); configurePin (rpi, 16, 'Цифровой ввод'); configurePin (rpi, 12, 'Цифровой ввод');

статус = 2; d = 10; % Статус: 0-красный / стоп 1-синий / медленный 2-зеленый / пуск = истина; во время работы% d = ping (); если readDigitalPin (rpi, 21) == 1 status = 0; elseif readDigitalPin (rpi, 16) == 1 статус = 1; elseif readDigitalPin (rpi, 12) == 1 статус = 2; elseif d

Рекомендуемые: