ПРОЕКТИ:

Безкоштовні точки доступу Wi-Fi в Україні

- Пошук людей через Інтернет

Тестуємо Wi-Fi доступ до Інтернету: моніторинг, безпека…__SEO - пошукова оптимізація – ключ до успіху

Безкоштовні телефонні дзвінки через Інтернет__Соціальні мережі, як спосіб знайти однодумців

Безпека при роботі в Інтернеті__Про Київ в Інтернеті

Arduino _

Raspberry Pi  Unix, Linux. Ubuntu, Fedora...- це не так вже й страшно

Знайти драйвер в Інтернеті  Пошук технічної документації

Сценарії для Інтернету   Пошук патентів в Інтернеті

Невидимий Інтернет    Пірингові мережі: видимі і невидимі

Посилання:

Сайт про все: isearch.in.ua

Персональний сайт Пальшина Єгора

Сайт мого учня

Ділова розвідка в Інтернеті

Робот-фотограф на основі Raspberry Pi
Рейтинг статті: / 14
НайгіршеНайкраще 
Photo robot -1Raspberry Pi - популярний одноплатний мікрокомп'ютер, який можна використовувати для вирішення різноманітних завдань. Робот-фотограф, якому віддаються команди через web-інтерфейс - одне з досить цікавих і технічно складних завдань.
Робот базується на саморушній платформі і має можливість фото і відеозйомки.
Для робота можна сформувати такі завдання, як управління через WiFi, повороти вправо-вліво, рух вперед-назад, а також зйомка і відображення відео в web-інтерфейсі в процесі руху робота.
Photo robot 2
Основою для RaspCamBot слугує плата Raspirobot, де вже є всі необхідні апаратні компоненти для пересування макета в просторі. Для плати створено оптимізоване програмне забезпечення, в яке були інтегровані web-кнопки для управління камерою.
Для створення інтерфейсу використовуватиметься фреймворк WebIOPi, так як він дозволяє швидко запустити проект з незначним знанням php, nginx і прикладних програм.
Плата RaspiRobot
Raspberry Pi проблематично використовувати в якості контролера для різних вузлів робототехніки, так як в ньому недостатньо виходів, які можуть керувати силовим навантаженням. Однак можна підключити Raspberry Pi до плати RaspiRobot і отримати повноцінний контроллер для двигунів. Використовуючи плату можна легко створити саморушну платформу c двома колекторними двигунами. Можливості плати:
  • Драйвер керування силовими вузлами
  • Стабілізатор напруги від батареї 6-12В для Raspberry Pi
  • Два двотактних виходи (25 мА)
  • Індикатори стану
  • I2C шина
  • Відкрите API на Python
Фреймворк WebIOPi
Фреймворк webiopi - закінчений продукт для роботи з GPIO портами (портами вводу-виводу) в Raspberry Pi. Webiopi може керувати станом усіх портів GPIO віддалено або локально, використовуючи браузер або будь-яку іншу програму.
Можливості:
  • Сервер створений з використанням мови Python
  • Робота з Serial, 1-Wire, SPI, GPIO
  • Є підтримка близько 35 пристроїв, таких як датчики, DAC, ADC ...
  • Сумісність з версіями Python 2.7 та 3.2
  • Легка адаптація під потреби користувачів
  • Аутентифікація за допомогою логіна і пароля
  • Багато прикладів використання фреймворка
Інсталяція WebIOPi
Для інсталяції WebIOPi необхідний встановлений Python версії 2.7 або 3.2.1. Інсталяція виконується такими командами з консольного терміналу:
$ curl -o webio-pi.tar.gz  http://store.raspberrypi.com/checkout/project/7203c447-49fa-4fb7-b9dd-317a907b65df
$ tar xvzf webio-pi.tar.gz
$ cd webio-pi
$ sudo ./setup.sh
Далі необхідно запустити фреймворк в командному терміналі:
$ Sudo webiopi [-c] [-s] [port]
Однак, після завершенню скрипта поєднанням клавіш Ctrl-C або закриття вікна терміналу, сервер webiopi буде закрито і стан портів буде втрачений. Тому webiopi доцільно запускати як демон (сервіс).
Запуск:
$ sudo service webiopi start
Зупинка:
$ sudo service webiopi stop
Перевірка працездатності
Після запуску webiopi, в браузері необхідно перейти за посиланням виду http://[RaspIP]:8000, де [RaspIP] потрібно замінити реальною IP адресою Raspberry Pi. Далі потрібно ввести дані для авторизації - ім'я користувача "webiopi" і пароль "raspberry". Для коректної роботи автор фреймворка рекомендує використовувати актуальні версії браузерів Firefox, Safari або Chrome, браузер Internet Explorer підтримується не повністю. Приклад інтерфейсу відображення стану портів вводу-виводу:
Photo robot -GPIO
Використовуючи web-інтерфейс можна встановити значення на виході будь-якого порту, а також задати режим його роботи. Для цього достатньо натиснути на потрібний порт і у спливаючому меню вибрати режим роботи і необхідні параметри вихідної напруги.
Управління web-камерою
Створення робота базується на відкритому проекті по збірці моторизованого робота з web-камерою - CamBot.
Управління web-камерою виконується за допомогою консольних програм fswebcam і mjpg-streamer, для яких потрібно створити скрипти ініціалізації фотографування і початку/зупинки відеозапису.
Скрипт для фотографування:
#!/bin/sh
savePath = "/usr/share/webiopi/htdocs/app/RaspCamBot/photo.jpg"
fswebcam -p MJPEG -r 800 x600 -d /dev/video0 --jpeg 90 --shadow --title "raspbot" --subtitle "Photo camera" –save -quiet $savePath
Скрипт початку відеозапису з web-камери:
#!/bin/sh
DEV_PATH = "/dev/video0"
PRG_STREAM=mjpg_streamer
MAX_RESOLUTION=320x240        #160x120
ACTIVE_PORT=8001
CAMERA=/dev/video0
# Спроба знайти підключену web-камеру
if [ ! -e $DEV_PATH ]; then
  exit 1
fi
FRAMERATE=15
PLUGIN_PATH=/home/adm/streamer-r65
"$PLUGIN_PATH/$PRG_STREAM" -f $FRAMERATE -i "$PLUGIN_PATH/input_uvc.so" -d $CAMERA -r $MAX_RESOLUTION -o "$PLUGIN_PATH/output_http.so" -p $HTTP_PORT -b
Web-інтерфейс
Створення web-інтерфейсу для фреймворка webiopi досить спрощено. Після повного завантаження сторінки браузером, необхідно додати свої елементи управління за допомогою виклику спеціалізованих API на мові javascript. Далі потрібно підключити обробник подій до кожного елементу управління. Такі обробники будуть викликати макроси, що написані мовою Python і зберігаються на сервері.
Приклад створення кнопки для пересування вперед:
var handler = webiopi();
var action = "bt_up", begin_func = go, end_func = stop;
var control = handler.createButton(action, "/\\", begin_func,end_func);
$("#div_up_place").append(control);
Функції stop і go:
function go() {
    handler.callMacro("go");
}
function stop() {
    handler.callMacro("stop");
}
Написання скрипта на Python
Python-скрипт для webiopi повинен містити обов'язкову функцію setup і, опціонально, функцію destroy. Функція setup виконується при ініціалізації скрипта і використовується для встановлення значень на портах вводу\виводу і визначення режиму їх роботи. Функція destroy викликається по закінченню виконання скрипта і використовується для повернення портів та інших параметрів системи в початковий стан. Приклад реалізації функції go:
@webiopi.macro
def go():
    left_forward()
    right_forward()
Для початку або зупинки запису web-камери використовується команда call, яка виконує відповідний shell-скрипт:
def record_start():
    return_cmd = call("/home/adm/RaspCamBot/stream.sh")
Як бачимо, створити робота і керувати ним не так вже й важко.
Автор Олексій Ляшук, магістрант НТУУ «КПІ»
 
>
КнигаНовиниПрактика пошукуПартнериПро нас
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting
Google Analytics Alternative