SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
ADKを使って
     音声コマンドで操作する
     戦車を作ってみた
             第13回Android勉強会in札幌
                    at 2012/6/2(sat)


               大路 裕介(まいむぞう)
12年6月2日土曜日
あばうと・みー
         札幌のWeb/スマートフォン系フリーランサーです。
         最近はAndroid専業になってます。

         元々Web系プログラマーです。単独のサーバから
         Amazon EC2やGAEを使ったクラウドまで、サーバ構
         築からシステム開発まで一人でやってます。

         最近はOpenCVやKinectや電子工作やってます。

         日本Androidの会の北海道支部長をしています。

12年6月2日土曜日
あばうと・みー
    一方、電子工作に関しては...
         ラジコンは好きです。

         元々電子工作には興味がありました。

         でも最後にハンダゴテを触ったのは、高校の工作の
         時間だった気がします。

         電気の小難しい理論はわかりません。直列繋ぎと並
         列繋ぎはわかります。(えっへん)

12年6月2日土曜日
こんな僕でも、音声コマンドで動く
              戦車を作ることができたので、
             その過程をお伝えしようと思います




12年6月2日土曜日
まずはどんなもんか
             動かしてみましょう




12年6月2日土曜日
全体構成
                                   コイツ日本語わかる

                                         Android


             コイツ動く                            WiFi (XMPP)


                     直流コード
                                   USB
                             ADK         Android

                                   コイツしゃべる

12年6月2日土曜日
何を作ろう?
         せっかくなので、動くものがいい

             ラジコンを改造しよう!

         どんなラジコンを改造しよう?

             ヘリコプター → × 操縦が繊細過ぎる

             車 → × 速度が早すぎてハンドル操作が難しそう

             戦車 → 鈍いし、キャタピラなので安定してる

                      ◎ 操作がラフでもOK
12年6月2日土曜日
戦車を買う
         ヤフオクでジャンク扱いのものを買いました

             基盤は死んでてもどうせ捨てるので

             挫ける可能性を考慮し最初は安いやつを狙う




12年6月2日土曜日
まずは戦車を動かしてみる
         マジにゴミだと困るので、一応動くことを確認
             多少壊れてるけど一応ひと通り動くようだ




12年6月2日土曜日
戦車ラジコンの構造
         基本的に、左右のキャタピラそれぞれにモーターが
         付いている
         両方回せば前進、右だけ回せば左旋回、両方逆回転
         すればバック




12年6月2日土曜日
立止マッテ考エル
         このプロポ、左右ともに上下しかついて無いよね
         でも、戦車にはBB弾を発射する機能ついてるよね




12年6月2日土曜日
はい、変なの引いたー
               ( ´_ゝ`)




12年6月2日土曜日
戦車をバラす
         そうは言っても買ってしまったのでしょうが無い
         バラして構造を確かめ、テスターを使って電圧を計測
         する




             戦車が届いて
             5分後の状況




12年6月2日土曜日
どうやら、右キャタピラを
               逆回転させると、
             BB弾を発射するらしい。
                   変なの。

               (そういうギヤボックスになってる)




12年6月2日土曜日
調査結果

         搭載しているバッテリーはマンガン電池単三4本直列
         (1.5V×4本=6.0V)
         モーター2つだけで動いている
         モーターはそれぞれ6.0Vで動いているらしい
         左キャタピラは前後に動くが、右キャタピラはバッ
         クさせるとBB弾を発射する
         モーターを逆回転させるには、+と-を入れ替えれば
         良い(一般的にそういう構造)

12年6月2日土曜日
基本方針を考える

         Arduinoには5V電源が必要、かつモーターを回すと電
         圧が下がり5Vをキープできないので、別途バッテ
         リーを積む必要がある

         とりあえず最初はブレッドボードで回路を組んでみ
         て、動いてから細部を考える(というか、最初から細
         部まで想像できない)


12年6月2日土曜日
モーターを逆回転させる方法
         ソフトならif文でできることが、電子工作だと意外に
         面倒らしい
         ググってみたら、Hブリッジという回路が必要らしい




             こうしたい   Hブリッジ概念   実際の回路図




12年6月2日土曜日
ごめん、いろいろ無理!
                 (>_<)




12年6月2日土曜日
モーターを逆回転させる方法
         さらに調べると、Hブリッジ回路を内蔵したドライバ
         (IC?)があるらしい
         使い方は単純に結線するだけ!
        前進・後退・停止はデジタル出力でコントロール。
        PWMを使ってアクセルコントロールも出来る。
        モーター駆動は別電源を使える


         すばらしい!!


                         こんなの

12年6月2日土曜日
ブレッドボードで組む
         そんなこんなで、一旦できました!
         でも問題点山積み...
             頭でっかち!
             そして重い
             戦車に載り切らない
             ...動かない...
              電流は来てるっぽい


12年6月2日土曜日
対策を考える(その1)
         そもそも何故動かんのだ?
             逆さにするとキャタピラは動く。でもトルクがな
             いので走ることはできない。
             9V電池を4個直列繋ぎ(=36v)にしてみる → 煙が出る
             そもそも、単三電池4本(=6v)で動いていたはず!
              単三電池6本(=9v)のケースを見つけた。これなら
              いけるんじゃね? → 動いた
             よくわからんけど、9v電池だと出力できる電流が足りないとかなのかな?
             動く要素は電圧だけじゃないんだ。へー


12年6月2日土曜日
対策を考える(その2)
         USB給電用のバッテリーでかすぎ!
             コレはラジコンのバッテリーボックス(単三電池4
             本)から取るように変更
              接続用のコネクタはハンダ付けして自作
              電圧がちょっとぐらい変わっても動くはず!




12年6月2日土曜日
対策を考える(その3)
         Arduino Mega-ADKでかすぎ!
             使ってないポートが多すぎる! むだムダ無駄!!
             最近発売されたHarpy-Nanoってのが、ちっちゃく
             て安くて良い感じ!
                      ADK互換
                     Arduino互換
                 デジタル入出力6ポート
                 アナログ入力7ポート
                    これで¥2880!!
                 (HarpyNano単体の場合)
                  参照:harpyhack.com

12年6月2日土曜日
対策を考える(その4)
        そもそもブレッドボードでかすぎ!
        ユニバーサル基板を使えば、小さ       表
        くできるかも!?
             部品をはんだで固定し、自分で
             配線する
             おれのハンダゴテが火を噴くぜ! 裏




                              ユニバーサル基板の例

12年6月2日土曜日
ユニバーサル基板で組む
         ホントに火を吹いた
             実際に部品がハンダゴテに焼かれてしまった!!
         でも、なんとかできた
         すごく小さくなった!
         でも、収まりが悪い
             作り直しだ…




12年6月2日土曜日
ハード部分完成
         今度こそ完成!
             HarpyNanoとユニバーサル基板をソケットで接続し
             た。収まり良いのでオススメ!
             ケースは名刺入れのプラケースを削った




12年6月2日土曜日
さて、いよいよ
             ソフトウェア実装です




12年6月2日土曜日
ADKの制御

         ADKのリファレンス実装を理解することは大切だけ
         ど、あれを毎回書くのは大変

         Javaコード部分は、要はシリアル通信なので、送信
         と受信をシンプルに実装した汎用クラスを使い回せ
         ば良いと思う



12年6月2日土曜日
ADKCore(自作クラス)
         ADK制御用自作クラスADKCoreを作った
             インスタンスを作って


             面倒な処理は全部移譲




12年6月2日土曜日
ADKCore(自作クラス)
         ADKへのメッセージ送信はsendCommand()




         メッセージ受信はReceiveListenerを使う



                                  これだけ。



12年6月2日土曜日
音声コマンドの実装
         android.speech.SpeechRecognizerというクラスを使
         うと、音声認識した結果の文字列を取得できる




12年6月2日土曜日
音声レスポンス

         本当は映画などから必要な音源をピックアップした
         かったけど、あまりに語彙が少なくて断念。Android
         にしゃべらせることにした
         Android標準のテキスト読み上げシステムText to
         Speach(TTS)は、日本語をサポートしていない
         2011年9月にKDDI研究所よりN2 TTSという、標準フ
         レームワーク互換の日本語読み上げシステムが提供さ
         れた。現在はPlayストアからN2 TTSを無料でダウン
         ロードでき、TTSとして登録した後、日本語を渡すと
         読み上げることができる

12年6月2日土曜日
音声レスポンス
         使い方
             APIDemosと同じコードで十分動きます
             Locale.JAPANを指定するだけ




12年6月2日土曜日
リモートコントロール

         やっぱ人として、手元のAndroidを使って、ラジコン
         を操作したくなりますよね?

             せっかくアンテナ取ったのにね。

         IP指定でソケット通信してもいいけど、将来的に複数
         の端末を協調動作させたいので、ちゃんとしたプロ
         トコルを使いたい


12年6月2日土曜日
リモートコントロール
         今回はXMPPを使う
             GTalkとかJabberに使われてるプロトコル。要はIM
             として必要な機能のためのプロトコル
             今回は、手元のAndroidからラジコンに乗ってる
             Androidに、テキストメッセージを渡してコント
             ロールする(複雑なデータならJSONでもOK)
         でも最近XMPPは下火で、ちゃんとメンテナンスされ
         ているAndroid用XMPPライブラリが少ない
         今回はasmack-android-7というライブラリを使用す
         る。コードはステップ数が結構あるので割愛

12年6月2日土曜日
まとめ

         電子工作おもしろい。

         みんな手を付けてない(=比較的簡単に解決できる問題
         が身近にたくさん残っている=ビジネスチャンス!?)

         タブレット型Android+ADKを使った自作デバイス+自
         作アプリ(+サーバ)の組み合わせで、業務用システムを
         作る機会が増えてくるのでは?


12年6月2日土曜日
おしまい



         ご清聴ありがとうございました




12年6月2日土曜日

Mais conteúdo relacionado

Semelhante a Adkを使って音声コマンドで操作する戦車を作ってみた

関西Nfc lab勉強会 宣伝
関西Nfc lab勉強会 宣伝関西Nfc lab勉強会 宣伝
関西Nfc lab勉強会 宣伝
Masafumi Terazono
 
雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013
雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013
雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013
Odyssey Eightbit
 
「ほげエンジニア」の定義について #operationcasual
「ほげエンジニア」の定義について #operationcasual「ほげエンジニア」の定義について #operationcasual
「ほげエンジニア」の定義について #operationcasual
SATOSHI TAGOMORI
 
NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版
Koichiro Nishijima
 
アルコールセンサー
アルコールセンサーアルコールセンサー
アルコールセンサー
Miwa Iwatsuki
 
イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料
Kenichi Yoshida
 

Semelhante a Adkを使って音声コマンドで操作する戦車を作ってみた (15)

関西Nfc lab勉強会 宣伝
関西Nfc lab勉強会 宣伝関西Nfc lab勉強会 宣伝
関西Nfc lab勉強会 宣伝
 
Androidでロボットアームを動かしてみた(2012OSC愛媛)
Androidでロボットアームを動かしてみた(2012OSC愛媛)Androidでロボットアームを動かしてみた(2012OSC愛媛)
Androidでロボットアームを動かしてみた(2012OSC愛媛)
 
AndroidとArduinoで ロボットを作って思ったこと
AndroidとArduinoで ロボットを作って思ったことAndroidとArduinoで ロボットを作って思ったこと
AndroidとArduinoで ロボットを作って思ったこと
 
Getting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsuGetting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsu
 
Kotlinの紹介
Kotlinの紹介Kotlinの紹介
Kotlinの紹介
 
雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013
雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013
雲と幻と呪われし姫君〜AWSにしてみた〜 in WordCrab Fukui 2013
 
Web GLの話
Web GLの話Web GLの話
Web GLの話
 
「ほげエンジニア」の定義について #operationcasual
「ほげエンジニア」の定義について #operationcasual「ほげエンジニア」の定義について #operationcasual
「ほげエンジニア」の定義について #operationcasual
 
DevSap20120728
DevSap20120728DevSap20120728
DevSap20120728
 
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用TipsCasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用Tips
 
NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版
 
20130526 m3pi in ADK BootCamp
20130526 m3pi in ADK BootCamp20130526 m3pi in ADK BootCamp
20130526 m3pi in ADK BootCamp
 
Three.jsで3D気分
Three.jsで3D気分 Three.jsで3D気分
Three.jsで3D気分
 
アルコールセンサー
アルコールセンサーアルコールセンサー
アルコールセンサー
 
イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料
 

Mais de Yusuke Ohmichi

宝石の探し方 - about gemspec.info
宝石の探し方 - about gemspec.info宝石の探し方 - about gemspec.info
宝石の探し方 - about gemspec.info
Yusuke Ohmichi
 

Mais de Yusuke Ohmichi (8)

Androidの熱いトコ
Androidの熱いトコAndroidの熱いトコ
Androidの熱いトコ
 
ニュースから読み解くAndroidの過去・現在・未来
ニュースから読み解くAndroidの過去・現在・未来ニュースから読み解くAndroidの過去・現在・未来
ニュースから読み解くAndroidの過去・現在・未来
 
スマートフォンの超概略無責任見積りの算出方法を考えてみた
スマートフォンの超概略無責任見積りの算出方法を考えてみたスマートフォンの超概略無責任見積りの算出方法を考えてみた
スマートフォンの超概略無責任見積りの算出方法を考えてみた
 
JavaじゃないあたりのGAE事情
JavaじゃないあたりのGAE事情JavaじゃないあたりのGAE事情
JavaじゃないあたりのGAE事情
 
Androidとクラウドでデータを同期させるライブラリを作ってみた
Androidとクラウドでデータを同期させるライブラリを作ってみたAndroidとクラウドでデータを同期させるライブラリを作ってみた
Androidとクラウドでデータを同期させるライブラリを作ってみた
 
android_news_in_hokkaido_200901
android_news_in_hokkaido_200901android_news_in_hokkaido_200901
android_news_in_hokkaido_200901
 
android_news_in_hokkaido_200812
android_news_in_hokkaido_200812android_news_in_hokkaido_200812
android_news_in_hokkaido_200812
 
宝石の探し方 - about gemspec.info
宝石の探し方 - about gemspec.info宝石の探し方 - about gemspec.info
宝石の探し方 - about gemspec.info
 

Último

Último (11)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

Adkを使って音声コマンドで操作する戦車を作ってみた

  • 1. ADKを使って 音声コマンドで操作する 戦車を作ってみた 第13回Android勉強会in札幌 at 2012/6/2(sat) 大路 裕介(まいむぞう) 12年6月2日土曜日
  • 2. あばうと・みー 札幌のWeb/スマートフォン系フリーランサーです。 最近はAndroid専業になってます。 元々Web系プログラマーです。単独のサーバから Amazon EC2やGAEを使ったクラウドまで、サーバ構 築からシステム開発まで一人でやってます。 最近はOpenCVやKinectや電子工作やってます。 日本Androidの会の北海道支部長をしています。 12年6月2日土曜日
  • 3. あばうと・みー 一方、電子工作に関しては... ラジコンは好きです。 元々電子工作には興味がありました。 でも最後にハンダゴテを触ったのは、高校の工作の 時間だった気がします。 電気の小難しい理論はわかりません。直列繋ぎと並 列繋ぎはわかります。(えっへん) 12年6月2日土曜日
  • 4. こんな僕でも、音声コマンドで動く 戦車を作ることができたので、 その過程をお伝えしようと思います 12年6月2日土曜日
  • 5. まずはどんなもんか 動かしてみましょう 12年6月2日土曜日
  • 6. 全体構成 コイツ日本語わかる Android コイツ動く WiFi (XMPP) 直流コード USB ADK Android コイツしゃべる 12年6月2日土曜日
  • 7. 何を作ろう? せっかくなので、動くものがいい ラジコンを改造しよう! どんなラジコンを改造しよう? ヘリコプター → × 操縦が繊細過ぎる 車 → × 速度が早すぎてハンドル操作が難しそう 戦車 → 鈍いし、キャタピラなので安定してる ◎ 操作がラフでもOK 12年6月2日土曜日
  • 8. 戦車を買う ヤフオクでジャンク扱いのものを買いました 基盤は死んでてもどうせ捨てるので 挫ける可能性を考慮し最初は安いやつを狙う 12年6月2日土曜日
  • 9. まずは戦車を動かしてみる マジにゴミだと困るので、一応動くことを確認 多少壊れてるけど一応ひと通り動くようだ 12年6月2日土曜日
  • 10. 戦車ラジコンの構造 基本的に、左右のキャタピラそれぞれにモーターが 付いている 両方回せば前進、右だけ回せば左旋回、両方逆回転 すればバック 12年6月2日土曜日
  • 11. 立止マッテ考エル このプロポ、左右ともに上下しかついて無いよね でも、戦車にはBB弾を発射する機能ついてるよね 12年6月2日土曜日
  • 12. はい、変なの引いたー ( ´_ゝ`) 12年6月2日土曜日
  • 13. 戦車をバラす そうは言っても買ってしまったのでしょうが無い バラして構造を確かめ、テスターを使って電圧を計測 する 戦車が届いて 5分後の状況 12年6月2日土曜日
  • 14. どうやら、右キャタピラを 逆回転させると、 BB弾を発射するらしい。 変なの。 (そういうギヤボックスになってる) 12年6月2日土曜日
  • 15. 調査結果 搭載しているバッテリーはマンガン電池単三4本直列 (1.5V×4本=6.0V) モーター2つだけで動いている モーターはそれぞれ6.0Vで動いているらしい 左キャタピラは前後に動くが、右キャタピラはバッ クさせるとBB弾を発射する モーターを逆回転させるには、+と-を入れ替えれば 良い(一般的にそういう構造) 12年6月2日土曜日
  • 16. 基本方針を考える Arduinoには5V電源が必要、かつモーターを回すと電 圧が下がり5Vをキープできないので、別途バッテ リーを積む必要がある とりあえず最初はブレッドボードで回路を組んでみ て、動いてから細部を考える(というか、最初から細 部まで想像できない) 12年6月2日土曜日
  • 17. モーターを逆回転させる方法 ソフトならif文でできることが、電子工作だと意外に 面倒らしい ググってみたら、Hブリッジという回路が必要らしい こうしたい Hブリッジ概念 実際の回路図 12年6月2日土曜日
  • 18. ごめん、いろいろ無理! (>_<) 12年6月2日土曜日
  • 19. モーターを逆回転させる方法 さらに調べると、Hブリッジ回路を内蔵したドライバ (IC?)があるらしい 使い方は単純に結線するだけ! 前進・後退・停止はデジタル出力でコントロール。 PWMを使ってアクセルコントロールも出来る。 モーター駆動は別電源を使える すばらしい!! こんなの 12年6月2日土曜日
  • 20. ブレッドボードで組む そんなこんなで、一旦できました! でも問題点山積み... 頭でっかち! そして重い 戦車に載り切らない ...動かない... 電流は来てるっぽい 12年6月2日土曜日
  • 21. 対策を考える(その1) そもそも何故動かんのだ? 逆さにするとキャタピラは動く。でもトルクがな いので走ることはできない。 9V電池を4個直列繋ぎ(=36v)にしてみる → 煙が出る そもそも、単三電池4本(=6v)で動いていたはず! 単三電池6本(=9v)のケースを見つけた。これなら いけるんじゃね? → 動いた よくわからんけど、9v電池だと出力できる電流が足りないとかなのかな? 動く要素は電圧だけじゃないんだ。へー 12年6月2日土曜日
  • 22. 対策を考える(その2) USB給電用のバッテリーでかすぎ! コレはラジコンのバッテリーボックス(単三電池4 本)から取るように変更 接続用のコネクタはハンダ付けして自作 電圧がちょっとぐらい変わっても動くはず! 12年6月2日土曜日
  • 23. 対策を考える(その3) Arduino Mega-ADKでかすぎ! 使ってないポートが多すぎる! むだムダ無駄!! 最近発売されたHarpy-Nanoってのが、ちっちゃく て安くて良い感じ! ADK互換 Arduino互換 デジタル入出力6ポート アナログ入力7ポート これで¥2880!! (HarpyNano単体の場合) 参照:harpyhack.com 12年6月2日土曜日
  • 24. 対策を考える(その4) そもそもブレッドボードでかすぎ! ユニバーサル基板を使えば、小さ 表 くできるかも!? 部品をはんだで固定し、自分で 配線する おれのハンダゴテが火を噴くぜ! 裏 ユニバーサル基板の例 12年6月2日土曜日
  • 25. ユニバーサル基板で組む ホントに火を吹いた 実際に部品がハンダゴテに焼かれてしまった!! でも、なんとかできた すごく小さくなった! でも、収まりが悪い 作り直しだ… 12年6月2日土曜日
  • 26. ハード部分完成 今度こそ完成! HarpyNanoとユニバーサル基板をソケットで接続し た。収まり良いのでオススメ! ケースは名刺入れのプラケースを削った 12年6月2日土曜日
  • 27. さて、いよいよ ソフトウェア実装です 12年6月2日土曜日
  • 28. ADKの制御 ADKのリファレンス実装を理解することは大切だけ ど、あれを毎回書くのは大変 Javaコード部分は、要はシリアル通信なので、送信 と受信をシンプルに実装した汎用クラスを使い回せ ば良いと思う 12年6月2日土曜日
  • 29. ADKCore(自作クラス) ADK制御用自作クラスADKCoreを作った インスタンスを作って 面倒な処理は全部移譲 12年6月2日土曜日
  • 30. ADKCore(自作クラス) ADKへのメッセージ送信はsendCommand() メッセージ受信はReceiveListenerを使う これだけ。 12年6月2日土曜日
  • 31. 音声コマンドの実装 android.speech.SpeechRecognizerというクラスを使 うと、音声認識した結果の文字列を取得できる 12年6月2日土曜日
  • 32. 音声レスポンス 本当は映画などから必要な音源をピックアップした かったけど、あまりに語彙が少なくて断念。Android にしゃべらせることにした Android標準のテキスト読み上げシステムText to Speach(TTS)は、日本語をサポートしていない 2011年9月にKDDI研究所よりN2 TTSという、標準フ レームワーク互換の日本語読み上げシステムが提供さ れた。現在はPlayストアからN2 TTSを無料でダウン ロードでき、TTSとして登録した後、日本語を渡すと 読み上げることができる 12年6月2日土曜日
  • 33. 音声レスポンス 使い方 APIDemosと同じコードで十分動きます Locale.JAPANを指定するだけ 12年6月2日土曜日
  • 34. リモートコントロール やっぱ人として、手元のAndroidを使って、ラジコン を操作したくなりますよね? せっかくアンテナ取ったのにね。 IP指定でソケット通信してもいいけど、将来的に複数 の端末を協調動作させたいので、ちゃんとしたプロ トコルを使いたい 12年6月2日土曜日
  • 35. リモートコントロール 今回はXMPPを使う GTalkとかJabberに使われてるプロトコル。要はIM として必要な機能のためのプロトコル 今回は、手元のAndroidからラジコンに乗ってる Androidに、テキストメッセージを渡してコント ロールする(複雑なデータならJSONでもOK) でも最近XMPPは下火で、ちゃんとメンテナンスされ ているAndroid用XMPPライブラリが少ない 今回はasmack-android-7というライブラリを使用す る。コードはステップ数が結構あるので割愛 12年6月2日土曜日
  • 36. まとめ 電子工作おもしろい。 みんな手を付けてない(=比較的簡単に解決できる問題 が身近にたくさん残っている=ビジネスチャンス!?) タブレット型Android+ADKを使った自作デバイス+自 作アプリ(+サーバ)の組み合わせで、業務用システムを 作る機会が増えてくるのでは? 12年6月2日土曜日
  • 37. おしまい ご清聴ありがとうございました 12年6月2日土曜日