Часть 2
Подготовка к работе:
1) Распаковка плат-контроллеров L298N
2) Установка Wi-Fi адаптера EDUP EP-N8508GS
3) Предварительная сборка тестовой цепи с Raspberry Pi, L298 и DC motor 9V
First Hardware concepT
Разработка:
1) Конфигурация network настроек:
$sudo nano /etc/network/interfaces #/etc/network/interfaces
auto lo
Iface lo inet loopback
Iface eth0 inet dhcp
Allow-hotplug wlan0
Auto wlan0
iface wlan0 inet dhcp
wpa-ssid "Your Network SSID"
wpa-psk "Your Password"
2) Перезагрузка параметров
$sudo service networking reload3) Установка на домашнем маршрутизаторе статического IP для Raspberry Pi
IP – 192.168.1.41
4) Ну вот, можно отрубать Ethernet кабель – теперь Raspberry живет в местном Wi-Fi
5) Немного изменим index.php:
а) исправим баг когда видео-девайс не прикручен, а motion передает пустую картинку
(посредством php вставки – условие проверки наличия файла /dev/video0)
б) добавим frame управления - terminal.php
videoerr.php – по сути просто один тег: <h2>Video device not found</h2>
Эта страница вставляется, только если скрипт не обнаружит файла /dev/video0 – т.е камеры
6)
Теперь немного поколдуем - над возможностью не обновляя основную страницу, отправлять запросы на сервер. Я решил реализовать это на javascript ….
|
|
Суть идеи такая:
а) есть кнопка – при нажатии на нее происходит отправка запроса (SendUpdatePage()), запрос отправляется на указанный url - action.php с GET переменными pin и value.
б) затем, на сервере обрабатывается скрипт action.php и генерируется страница на его основе.
в) теперь просто отлавливаем результат запроса (GetUpdatePage()), получаем вывод скрипта action.php, весь текст из него пишем в указанный элемент (<div id=”value”></div>).
Казалось бы, просто генерируем еще одну страницу-текст и пишем ее в блок, но тут работает хитрость с php и вызовом из него команды терминала – при работе action.php и происходит вызов python API для работы с GPIO, в результате состояние указанного пина инвертируется
Вот и весь скрипт – action.php: если все аргументы переданные верны, то выводом будет состояние пина в данный момент – это как раз будет видно на странице, если произошла ошибка ввода аргументов, то выводом будет error: bad argument
7) Вот теперь можно подключать к цепи крону (на 9V) и смотреть что будет происходить:
при нажатии на кнопку 0 меняется на 1 и мотор начинает вращаться (С 27 пина на Raspberry пошел сигнал и L298N открылась пропуская напряжение с кроны на моторчик)
при повторном нажатии 1 поменялось на 0 и моторчик перестал вращаться (все работает)
8) Теперь протестируем L298N на реверс – изменим пин с 27 на 22, проводим те же действия, что и в прошлый раз. Мотор работает, вращение уже обратное.
9) Здесь же приведу схему тестового подключения:
10) Ну вот, подготовка закончена, можно начинать сборку окончательной модели дрона.
|
|
На данный момент уже готова первая концепция подключения RPi, L298N и моторов, ее сразу приведу ниже:
*полноразмерный вариант прилагается в виде картинки (/hardware.jpg)
Замечание 1: я извиняюсь за бардак, но уж как есть
Замечание 2: если у кого-то возникнут вопросы по проекту – пишите на мою электронную почту snipghost@list.ru (просьба писать только адекватные вопросы)
Замечание 3: если кому нужны исходники чего-либо в.txt виде – обращайтесь к замечанию 2
Замечание 4: все креативные и рациональные предложения принимаю к рассмотрению (но только их)
Замечание 5: Всех с наступившим 2015 годом! Желаю всех успехов в новом году!