make: ogaki meeting 2012 androidロボットサミットin大垣
TRANSCRIPT
Androidで、
お手軽ロボットプログラム
「コンピュータを楽しもう!」という ブログを書いています。
たろサ(@momoonga)
山本三七男(神戸支部)
2
神戸支部ハードウェア倶楽部
Androidとさまざまなマイコンとの接続・制御にチャレンジ!!
ADK/MicroBridgeを用いて、新旧Androidも利用可能に!
PIC ADK mini boardを基板から独自に制作!みんなで半田づけを行い、ローコストでロ
ボットカー製作が可能!
Android側ライブラリで、マイコン側ファームウェアの書換えを不要に!
初心者が簡単で楽しくマイコン制御ができるように講習会を企画予定!
全国から参加者を募集しています!日本橋めぐりもできます!!
ソフトウェアよりの
発表をします
4
Androidロボットを作るためには
2つのプログラムが必要
Android
Arduino
5
お手軽開発に向けて
Androidアプリを作りました。Androidアプリを作りました。
Luarida(ルアリダ)
Sarida(サリーダ)
お手軽開発ツール MicroBridge対応。OS 1.6~
ADK、MicroBridge対応。OS 2.3.4~
eclipseのインストールなどにはまることも無くなります。
6
Luarida/Saridaの紹介
Luarida・SaridaはLuaというスクリプト言語でプログラムを記述します。
Androidのエディタ画面
ArduinoとADK接続可能
MicroBridge対応基板と接続可能
現在の状況
Sarida
Luarida
Saridaのスクリプト
7
ロボットを作りました
MicroBridge-Luarida間はソケット通信しています。大人の科学付録の「卓上ロボット掃除機」をAndroidから操作できるように改造させてもらいました。
MicroBridgeとLuaridaをつなげて、Luaridaで操作するロボットを作りました。
8
スクリプトのいいところ
基本的にプログラムはテキストファイル
ServerWifi
ネットワーク上からスクリプトをダウンロード
ロボットが動作
詳しくはブログに書いています。
スクリプトを選択
9
実装コマンドなど
Luarida・ 共通
http.get( URL, 取得ファイル名 )
URL: 取得するファイルのURL
取得ファイル名: 保存するときのファイル名
ネットからファイルをダウンロードするには
通信をオープンするには
--60101ポートへの接続を5秒間待つ
local ret = sock.nlistenOpen( SockADB, 60101, 5 )
データを送信するには
local cmd = "F"..string.char(10)
sock.nsend( SockADB, cmd, 2 )
方位角度を取得するには
--方位角度を取得
local angle = sensor.getOrient()
コンピュータを楽しもう!
Sarida
10
実装コマンドなど
Saridaのみ
adk.pinMode(pin, mode)
pin: ピン番号
mode: 0:Input, 1:Output
Arduinoピンモードの切り替え
Arduinoデジタルライト
adk.recv( [timeout] )
timeout: 受信タイムアウト(s)
戻り値: 受信データ,データサイズ
Arduinoデジタルリード
adk.digitalWrite(pin, value)
pin: ピン番号
value: 0:LOW, 1: HIGH
Arduinoアナログライトadk.analogWrite(pin, value)
pin: ピン番号
value: 出力PWM比率(0~255)
adk.digitalRead(pin)
pin: ピン番号
戻り値: 0:LOW, 1:HIGH
adk.analogRead(pin)
pin: ピン番号
戻り値: 10ビットの値(0~1023)
Arduinoアナログリード
バイト送信adk.send(data, length)
data: バイトデータ
length: データサイズ
バイト受信
11
スクリプトの公開方法
TAOSOFTWARE
doroLuarida
Luaridaのみ
12
今後の予定
Luarida(ルアリダ)
Sarida(サリーダ)
大きな機能追加はあまり無いかな・・・
早く公開する。すいませんm(_ _)m
Rubida(ルビーダ)?mrubyが公開されたので、すごく作りたくなっています・・・。
お し ま い