Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Хорошо, он не разговаривает, он не черный и не имеет ИИ. Но у него есть причудливые красные светодиоды спереди.
Я создаю управляемого Wi-Fi робота, который состоит из Raspberry Pi с адаптером Wi-Fi и Arduino Uno. Вы можете подключиться к Raspberry Pi по SSH и управлять Arduino с помощью сценария Python Tkinter через последовательный порт. Помимо вождения, вы также можете управлять передними / задними фарами, сигнализировать влево / вправо и включать эти крутые светодиоды Knight Rider!
Шаг 1. Что на обед? AKA Инструменты и материалы
Многие материалы доступны на BangGood.com. Они дешевые, и в них есть почти все. Остальные можно найти на Ebay, а некоторые - в местном хозяйственном магазине.
Материалы:
-
Малина Pi 2 / B +
- Карта Micro SD на 8 ГБ (или больше)
- кабель micro USB
- WiFi адаптер
- Случай
- Ардуино Уно
- Аккумулятор 9в с зажимом для аккумулятора для Arduino
- Классный ланчбо
- Внешний аккумулятор USB, 5 в (12000 мАч)
- Макетная плата с достаточным количеством проводов (от мужчины к мужчине и от женщины к мужчине)
- 5-миллиметровые светодиоды (4 белых, 8 красных, 4 оранжевых)
- 10 резисторов 220 Ом
- 2x микро сервопривод TowerPro 9g (модифицированный для непрерывного вращения)
- 4x 42 мм колеса робота
- 24-миллиметровый ролик
- Двухсторонний скотч
Инструменты:
- Пистолет для горячего клея
- супер клей
- Отвертка
Важно: я использовал модифицированные сервоприводы для колес. Вы также можете купить обычный двигатель, но тогда вам придется изменить код Arduino.
Шаг 2: приготовление обеда
Так что пришлось распилить фальшивые «колеса», на которых упирается ланчбокс.
После этого я добавил сервопривод и колеса в ланчбокс (приклеил колеса на сервопривод горячим клеем). Я использовал палочки для мороженого, потому что они идеально подходили для сервопривода. После этого добавил павербанк. Поверх пауэрбанка я добавил 2 палочки для мороженого с роликом (супер приклеил роллер на палочки для мороженого). На задней панели powerbank находится Arduino Uno. Поверх внешнего блока питания находится Raspberry Pi (в футляре), а поверх него - макетная плата. Закрепила все двусторонним скотчем. В последнюю очередь я прикрутил 2 поддельных колеса робота спереди.
Шаг 3: установка светодиодов
Я просверлил отверстия диаметром 5 мм везде, где хотел разместить светодиоды. Светодиоды, которые я использовал, имеют диаметр 5 мм, поэтому они идеально подходят! Я использовал:
- 2 красных для задних фонарей
- 2 белых для фонарей заднего хода
- 6 красных светодиодов Knight Rider
- 2 белых для передних фонарей
- 4 оранжевых для сигнальных огней.
Шаг 4: Электромонтаж
Что ж, самой сложной частью проекта было проложить проводку внутри коробки для завтрака. Там много проводов, особенно для светодиодов. Для светодиодов я использовал штекерный и женский макетные провода, так что вам не нужно ничего паять. В остальном я использовал мужской пол.
Raspberry Pi и Arduino подключаются по USB. Я привел пример Фритцинга и постарался сделать его максимально ясным.
Шаг 5: Подготовка Raspberry Pi
Для тех, кто хоть немного знаком с Raspberry Pi и Linux, это должно быть проще простого. Я использовал Распиана для питания Пи. У него есть python3 с предустановленными модулями tkinter и pyserial (нам это нужно для управления Arduino)
- Перейдите на официальный сайт Raspberry Pi и загрузите последнюю версию Raspbian.
- Прошейте последнюю версию Raspbian на micro sd (на сайте загрузки есть руководство по установке).
- Подключите интернет-кабель и адаптер Wi-Fi и включите Pi.
Теперь нам нужно настроить Pi для автоматического подключения к Wi-Fi в режиме без наушников.
-
Узнайте IP-адрес своего Raspberry Pi одним из этих методов.
- Nmap (лучше всего работает в Linux).
- Войдите в свой маршрутизатор, чтобы увидеть подключенные устройства.
- Используйте приложение для смартфона, например «Fing», для поиска в сети подключенных устройств.
- Альтернативный метод: подключите Pi к монитору и клавиатуре и используйте команду ifconfig, чтобы показать свой IP.
- Если вы используете Linux, вы можете использовать терминал для SSH в свой пи, если у вас Windows, вы должны загрузить putty.
- После подключения и входа в систему (имя пользователя: пароль pi: raspberry). введите следующее
Судо нано / и т. д. / сеть / интерфейсы
Удалите существующие строки и вставьте следующие строки в файл (замените SSID своим собственным SSID и замените пароль своим паролем WiFi, сохраните кавычки!)
авто лоу
iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 auto wlan0 iface wlan0 inet dhcp wpa-ssid "SSID" wpa-psk "password"
Перезагрузите Raspberry Pi и, надеюсь, он автоматически подключится к вашей сети Wi-Fi (помните, что ваш IP-адрес изменится, когда вы подключитесь через Wi-Fi, а не через провод)
Шаг 6: Кодирование
Вы можете получить файлы с моего github:
github.com/InfiniteFor/KnightRiderRobot
Загрузите файл Wifi_BOT.ino на свой Arduino
- подключите Arduino к компьютеру / ноутбуку.
- откройте файл WiFi_BOT.ino с помощью официального программного обеспечения Arduino и нажмите кнопку «Загрузить».
Скопируйте скрипт control.py на свой Raspberry Pi.
- Откройте control.py в текстовом редакторе.
- SSH в пи и введите:
нано control.py
Вставьте код из control.py во вновь созданный скрипт python и сохраните его
Шаг 7: пересылка X11 для удаленного управления
Вам нужно перенаправить X11, чтобы скрипт python работал с вашего ноутбука / ПК. Это связано с тем, что обычный сеанс SSH по умолчанию не пересылает X11.
Когда вы работаете в Linux, это действительно просто. Просто примените -X или -Y (какой из них работает) в командной строке. Например:
ssh -X pi @
В окнах вы должны просмотреть другие шаги. Помимо putty вам также необходимо скачать xming. Есть действительно отличное руководство по использованию xming со шпатлевкой.
Шаг 8: обед
- Включите Arduino (батарея 9 В) и Raspberry Pi (внешний аккумулятор).
- Подождите, пока Raspberry Pi запустится.
- SSH в Raspberry Pi (не забудьте перенаправить X11) и введите:
python3 control.py
Наслаждаться!
Помимо кнопок, вы также можете нажимать клавиши на клавиатуре. Они будут немедленно отправлены на ваш Arduino.
Будущие идеи:
У меня было так много вдохновения для этого проекта, но я не мог реализовать их все. Итак, вот краткий список других вещей, которые вы могли бы сделать:
- Подключите камеру к Raspberry Pi и смотрите канал с веб-страницы.
- Вместо сценария python tkinter вы можете создать http-страницу, к которой вы можете получить доступ для управления роботом. Вы даже можете показать изображение с камеры на той же странице! (для этого метода пересылка X11 не требуется)
- С перенаправлением портов вы можете управлять своим роботом из любой точки мира!
- Вместо подключения Pi к домашней сети вы можете создать точку доступа на Pi. Таким образом, вы не ограничены своей домашней сетью.
Пожалуйста, дайте мне знать, нравится ли вам этот проект. Также не стесняйтесь задавать любые вопросы!
Финалист Raspberry Pi Contest 2016