はじめに
2018年のAlexaスキルアワードで音声によるTELLOドローンの操作( https://smarthacks.jp/mag/37640#16Tello_Controller )を間近に見て感激、またコードがgithubに公開されていることを知って、いつかやってみたいと思っていましたが、ついに実現しました。
仕組み
Alexaスキルでは、通常、コードはバックエンドにAWS Lambdaを使いデプロイするところですが、ドローンを飛ばすには自分のPCをバックエンドにして、発話からのコマンドを受ける必要があります。ドローンが発するwifiをPCで受信するので、PCのネット接続は別の手段で確保します(自分は有線LANで接続)。発話部分(フロント側)はAlexa スキルビルダーで作成し、自分のPCをエンドポイントにします。これを実現するのがngrokです。
方法
まず、https://github.com/miso-develop/tello-controller-alexa を自分のPCにクローンします(TMさん、公開ありがとうございます)。先に、npm, ngrokのインストールを済ませておきます。
npm install
npm install -g ngrok
最初、ngrokのインストールのところで、”write access to /usr/local/lib/node_modules” のメッセージが出てうまく行きませんでしたが、こちらを参考に解決しました。https://qiita.com/NaokiIshimura/items/cc07441939b226e779c6
準備が完了したら、ドローンを飛ばす時に、コードファイルを置いたフォルダ上で以下を実行します。
node index.js
別ターミナルを起動し、同フォルダで以下のコマンドを実行します。
ngrok http 3000
ngrokが起動できたら、Forwarding https のURLが表示されるのでそれをメモし、スキルビルダー上でENDPOINTに設定します。このURLは起動の度に変わります(継続有効時間は8時間)ので、操作前に設定する必要があります。
あとがき
TELLOとAmazon ECHOをお持ちの方はぜひお試しください。
Have a nice flight with Alexa!
【関連記事】
https://qiita.com/miso_develop/items/a482dc4d168ec0a33818