Salma MayorquinTerry Rodriguez
Published © MIT

MajorTom: Alexa Voice Controlled ARDrone 2.0

Cellular backdoor with Hologram Nova on Raspberry Pi flask-ask server-Amazon Alexa controlled.

EasyFull instructions provided4 hours3,488

Things used in this project

Hardware components

AR.Drone
Parrot AR.Drone
×1
Raspberry Pi 3 Model B
Raspberry Pi 3 Model B
×1
Hologram Nova
Hologram Nova
×1
Hologram Global IoT SIM Card
Hologram Global IoT SIM Card
×1
Amazon Echo
Amazon Alexa Amazon Echo
×1

Software apps and online services

Hologram Data Router
Hologram Data Router
Alexa Skills Kit
Amazon Alexa Alexa Skills Kit

Story

Read more

Schematics

Setup Diagram

Hologram Nova connected to raspberry pi via usb. The raspberry pi and AR Drone are connected via AR Drone's wifi network. Alexa queries responses from raspberry pi cellular flask-ask application
Logomakr 7zvkaw lpfmfhtzig

Code

app.py

Python
flask-ask application
#!/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()
    speech_text = 'resetting'
    return statement(speech_text)
    
@ask.intent('takeoff')
def takeoff():
    drone.takeoff()
    speech_text = 'taking off'
    return statement(speech_text)
    
@ask.intent('land')
def land():
    drone.land()
    speech_text = 'landing'
    return statement(speech_text)

@ask.intent('hover')
def hover():
    drone.hover()
    speech_text = 'hovering now'
    return statement(speech_text)
    
@ask.intent('goForward')
def goForward():
    drone.move_forward()
    speech_text = 'going forward'
    return statement(speech_text)
  
@ask.intent('goBackward')
def goBackward():
    drone.move_backward()
    speech_text = 'going backward'
    return statement(speech_text)
    
@ask.intent('goLeft')
def goLeft():
    drone.move_left()
    speech_text = 'going left'
    return statement(speech_text)
    
@ask.intent('goRight')
def goRight():
    drone.move_right()
    speech_text = 'going right'
    return statement(speech_text)
    
if __name__ == "__main__":
    app.run()

Credits

Salma Mayorquin

Salma Mayorquin

4 projects • 33 followers
Hack the change you want to see
Terry Rodriguez

Terry Rodriguez

4 projects • 15 followers
hack the change you want to see

Comments

Add projectSign up / Login