Alexa-управляемый ARDrone 2.0: Голосовой дрон с Raspberry Pi и Hologram Nova
История
Мотивация
После освоения ARDrone 2.0 в предыдущем проекте, мы захотели поднять опыт на новый уровень, интегрировав голосовой интерфейс Alexa. Вызов Alexa & Arduino Smart Home Challenge вдохновил нас построить полнофункциональную голосовую демо-систему дрона.
Ниже — краткое описание нашего процесса.
Мы рассмотрим настройку софта на Raspberry Pi, конфигурацию Alexa Skill и финальные шаги развёртывания.
Настройка софта на Pi
Установите библиотеку Flask-Ask на Pi для предоставления Alexa-совместимой конечной точки:
$ sudo pip install flask-ask
Затем клонируйте репозиторий Wi-Fi управления ARDrone и запустите предоставленный скрипт install.sh для включения удалённого управления через Python.
Настройка Alexa Skill и приложения
Мы создали кастомный Alexa Skill, общающийся с Flask-сервером на Pi. Ngrok даёт серверу публичный HTTPS-эндпоинт, требуемый Alexa.
Пример минимального Flask-Ask приложения (сохраните как app.py):
#!/usr/bin/env python
from flask import Flask
from flask_ask import Ask, statement
import ardrone
import time
app = Flask(__name__)
ask = Ask(app, "/")
# Инициализация дрона и краткая пауза
drone = ardrone.ARDrone()
time.sleep(5)
drone.reset()
@app.route("/")
def home():
return "Ground Control to Major Tom"
@ask.intent("reset")
def reset():
drone.reset()
return statement("resetting")
Запуск сервера:
python app.py
Запуск Ngrok с зарезервированным поддоменом для стабильного HTTPS URL:
./ngrok http -subdomain=<your-subdomain-here> 5000
Важно: Pi подключается к Wi-Fi сети ARDrone, а Hologram Nova обеспечивает сотовую связь для запросов Alexa.
Использовали тариф 250 МБ/мес на Nova — надёжная работа.
Для настройки Alexa Skill перейдите в Amazon Developer Console → Alexa Skills Kit → + Add a New Skill. Следуйте мастеру, заполняя вкладки до зелёных галочек.
- Interaction Model – Intent Schema: скопируйте JSON ниже в редактор.
{ "intents": [ {"intent": "reset"}, {"intent": "takeoff"}, {"intent": "land"}, {"intent": "hover"}, {"intent": "goForward"}, {"intent": "goBackward"}, {"intent": "goLeft"}, {"intent": "goRight"}, {"intent": "AMAZON.PreviousIntent"}, {"intent": "AMAZON.NextIntent"}, {"intent": "AMAZON.HelpIntent"}, {"intent": "AMAZON.ScrollUpIntent"}, {"intent": "AMAZON.ScrollLeftIntent"}, {"intent": "AMAZON.ScrollDownIntent"}, {"intent": "AMAZON.ScrollRightIntent"}, {"intent": "AMAZON.PageUpIntent"}, {"intent": "AMAZON.PageDownIntent"}, {"intent": "AMAZON.MoreIntent"}, {"intent": "AMAZON.NavigateSettingsIntent"}, {"intent": "AMAZON.StopIntent"} ] } - Sample Utterances — заполните фразами вроде "takeoff", "land", "go forward" и т.д. (см. оригинальный список).
- Configuration — установите endpoint в HTTPS и вставьте Ngrok URL в Default field. Отключите account linking для демо.
- SSL Certificate — выберите средний вариант: «My development endpoint is a sub‑domain of a domain that has a wildcard certificate from a certificate authority».
- Test — используйте встроенный симулятор для проверки каждого интента.
Когда все вкладки покажут зелёные галочки, опубликуйте скилл на своём Echo через бета-тестирование.
Запуск
Для запуска полной системы:
- Включите ARDrone и подключите Pi к его Wi-Fi.
- На Pi активируйте сотовую сеть Hologram Nova:
$ sudo hologram network connect
Когда LED Nova станет стабильно синим — сотовая связь активна. - Запустите Ngrok с зарезервированным поддоменом (см. выше).
- Запустите Flask-приложение:
$ python app.py
- При зелёных LED дрона можно управлять через Alexa. Если дрон не реагирует, скажите: «Alexa, ask Major Tom to reset».
Источник: MajorTom: Alexa Voice Controlled ARDrone 2.0
Производственный процесс
- Ускорьте интеграцию Alexa с наборами разработчика и референс-дизайнами
- Почему 2017 год стал годом голосовых интерфейсов
- Температурно-управляемый вентилятор: DIY релейная система охлаждения мебели для медиа
- Raspberry Pi управляемая аквапоника: гайд по сборке и код
- Установка Google Assistant на MATRIX Voice Raspberry Pi — пошаговое руководство
- Управление Chromecast через Amazon Alexa с помощью Raspberry Pi и Python
- Создание кнопки AWS IoT с управлением движением на Raspberry Pi, PIR-датчике и MQTT
- Построение Wi-Fi-управляемого робота на Raspberry Pi с Python — пошаговое руководство
- Управление светодиодами через Alexa с помощью Raspberry Pi – простое пошаговое руководство
- Создаём умного Били Басса с Alexa, Arduino, L293D и LM386