12.06.16 日本橋勉強会資料 公開用
DESCRIPTION
日本橋女子ハンダ付け会で使用した資料です。 2012.06.19 初版公開 2012.06.22 改訂第2版TRANSCRIPT
日本橋女子はんだ付け勉強会
OSS コンソーシアム 組込み部会女子部● いわつきみわ
本日のアジェンダ
● ご挨拶 (5min)● 今日の勉強会の概要の説明 (10min)● はんだ付け実習 (60min)● おやつタイム (30min)● はんだ付け実習&動作確認 (30min)● スケッチなどの説明 (45min)
諸注意
● 技術補助スタッフが2名につき1名つきます● 実習中、お手洗いは自由に行って大丈夫です● 難しいと感じたり、よくわからないと思った
らその場でスタッフか私に聞いてみてください
● はんだごては 400 度くらいになりますので
扱いには充分に注意してください
OSS コンソーシアムとは
● オープンソースを活用したビジネスを活性化させる事を目的に、 Linux コンソーシアムを前身として2009年に発足
● 組込み部会 facebook ページ
http://www.facebook.com/ossc.emb
● 日本橋女子ハンダ付け会のきっかけ
http://www.slideshare.net/takeoka1/kof-oss
OSSC 組込み部会女子部半田ごて勉強会 2010/冬
第1回 オルゴールを作る
2011/08/07
第2回 秋月電子のATmega168/328
マイコンボードキット
(http://akizukidenshi.com/catalog/g/gK-04590/)
2011/09/10
第3回 ラブテスターを作る
2011/11/28
第4回 アーデュイーノ互換マイコン・ボードを作る
(CQ出版 小坂貴美男 著)
自己紹介
・所属 OSS コンソーシアム組込み部会
・ twitter @miw0129
・職業 会社員のようなもの
web 系のアプリケーション開発と
その周辺の事をやっています。
・今は Android と Arduino に興味があります。
本日のテーマ
ADK+Android で Arduino を操作する!
本日の資料
① 吉田さんのはんだ付けの資料 https://docs.google.com/open?id=0B3x_amEfMljRTnp3U0h1R1NLd3M②使用したソースコードhttps://github.com/miw0129/joshi_handa_20120616③たけおかさんの Arduino の資料http://www.osscons.jp/modules/attachfile/index.php?mode=download&attach_id=106
何が出来るの?
● Android端末に接続していないとき
①CdSセルの値によって LED の明るさが変化する
● Android端末に接続しているとき
起動するアプリによって2つの挙動
②AdkDaio(Android アプリケーション )
画面から LED の操作と CdSセルの値を確認
③勉強会用バルス (Android アプリケーション )
● 「バルス!」と呟いて LED を操作
使用する Android アプリケーションその1
※今回の勉強会の為に、元々公開されていたソースコードに変更を加え、GooglePlayに公開しています。 ( 著作者の許可を取ってあります )
● AdkDaio
https://play.google.com/store/apps/details?id=jp.co.socym.dorobook.AdkDaioProj&feature=search_result#?t=W251bGwsMSwyLDEsImpwLmNvLnNvY3ltLmRvcm9ib29rLkFka0RhaW9Qcm9qIl0
● 参考元になった記事
OSPN Press「「オープンソース」を使ってみよう ( 第 18回 ADK編 ) 日本 Android の会神戸支部」
http://www.ospn.jp/press/20120404no22-2-useit-oss.html
使用する Android アプリケーションその2
● 勉強会用バルス
https://play.google.com/store/apps/details?id=jp.miw_tan.balus_for_study&feature=search_result#?t=W251bGwsMSwxLDEsImpwLm1pd190YW4uYmFsdXNfZm9yX3N0dWR5Il0
● 参考元になった記事
YAM の雑記帳「Android ADK を使ってバルスって言ったら青色 LED が光るようにしてみた。」
http://y-anz-m.blogspot.jp/2011/12/androidadkled.html
ADK とは?
● Android Open Accessory Development Kit の略で、 2011 年5月のGoogle I/O で発表された Android のハードウェア拡張仕様
● 詳しくは吉田さんのスライドをみてね。
http://www.slideshare.net/ssuser3261c5/adk
工作に使うパーツの準備● ミント缶で Maker気分
https://docs.google.com/open?id=0B3x_amEfMljRTnp3U0h1R1NLd3M
● リード線を用意しよう
https://docs.google.com/presentation/d/1p8Z3qNr47vZOGnNsVX57J1DxInnYkJbrfBJEak658dA/edit
● 部品チェック&ハンダ付け手順 (カラー版ネット閲覧用 ).pdf
https://docs.google.com/open?id=0B3x_amEfMljRTnp3U0h1R1NLd3M
工作に使うパーツの説明
● LED– 赤 x 1個
– 青 x 1個
● 抵抗– 1kΩ x 2個
– 10kΩ x 2個
● タクトスイッチ x 1個● CdSセル 1個
LED( 発光ダイオード ) とは
● ダイオード : 電流を一定方向にしか流さない
● 足が長いほうが陽極 ( アノード ) 、短いほうが陰極(カソード )
● 足を切っても見分けは… !● 今回の工作でも部品を挿
す向きに要注意● よーく見たらわかるかも
抵抗カラーコード表
0 0 1
1 1 10 ±1
2 2 10^2 ±2
3 3 10^3
4 4 10^4
5 5 10^5
6 6 10^6
7 7 10^7
8 8 10^8
白 9 9 10^9
金 0.1 ±5
銀 0.01 ±10
無色 ±20
1 0 10^2 ±5→(10 * 100)Ω ±5→1kΩ ( 許容誤差 ±5%)
CdSセルとは
● CdS(硫化カドミウム ) を用いたフォトレジスタ
● フォトレジスタ : 光が当たると電気抵抗が小さくなる部品(光が強いほど小さくなる )
● 極性 ( 部品を挿す向きの指定 )はありません
● 硫化カドミウムは毒性があるため電子機器の特定有害物質の規制対象になっている
タクトスイッチとは
● 押すとカチカチなるスイッチ● 押している間電気が流れます● 極性はありませんが、スイッ
チが押されたときに足の間隔が短いもの同士が通電するので、縦横の向きには注意が必要
● 結構いろんな色があってかわいいです。大量に買ってもそんなに使い道ないよ、といわれたりします w
Arduino とはAVRマイコン、入出力ポート、開発言語、統合開発環境などが揃ったハードウェア開発環境
ハードウェア仕様が公開されているので市販の部品を買ってきてマイコンボードを自作する事も出来ます。
最新の基本構成ArduinoはUno。他にもminiやMEGA、服飾に使えるLilyPad等があります。
統合開発環境でC言語ライクなプログラミング言語を用いた開発を行います。
「シールド」と呼ばれる拡張ボードを挿すことで機能を追加することが出来ます。
Arduino のピンとポート
6 本のアナログ INピン
(A0 〜 A5)
14 本のデジタル IOピン(pin0 〜 pin13)
うち、 - のついている(pin 3, 5, 6, 9, 10, 11)はアナログOUT にも利用可能
→pinMode()関数で設定
Arduino でのプログラム実行フロー
loop 関数
setup 関数
ボードへ電源投入・ setup()Arduino ボードの電源を入れたときやリセットしたときに、一度だけ実行される。変数やピンモードの初期化、ライブラリの準備などに使用。省略不可。
・ loop()Arduino に給電されている限り何度でも呼び出される。外部センサー値の読み取りやピン出力制御などに使用。省略不可。
その他の自動処理
Arduino IDE
● 統合開発環境
● スケッチの検証や実機転送、シリアルモニタ出力などの開発に必要な機能が一通り揃えられたオープンソースソフトウェア
USBホストシールド
● ADK の仕組みを使ってAndroid との通信を行うために必要 (Arduino だけを使ってハードを作る際には必要ありません )
● Arduino Uno とあまり変わらないぐらいの値段します(;;)
ソースコード解説
ADK設定
● この設定で、 Android側で対応するアプリを指定します
● 同じアクセサリに対応する複数のアプリが Android にインストールされている場合は、どのアプリで開くか選択画面が表示されます
● “ジャンプ先 URL”には、 Android側アプリケーションの入手先 URL(Google Playの URL等 ) を記載することが出来ます
setup関数の内容
loop関数の処理 (ADK非接続時 )
Android からのコマンド処理 (loop)
● 処理できるコマンドは 3種類
● 0x0: 赤 LED点灯 /消灯
● 0x1: 青 LED PWM制御
● 0xff: バルス !
(参考 ) コマンド送信する Android側ソース
Androidへのスイッチ /センサー情報送信 (loop)
● ボタン状態を変数で管理して変化があれば送信
● CdSセルの値を定期的に送信
スケッチに使われている主要な関数
・ pinMode(pin, mode)ピンの動作を入力か出力に設定します。・ digitalRead(pin)デジタル入力。指定したピンの値を読み取ります。その結果はHIGHまたは LOWとなります。・ analogRead(pin)アナログ入力。指定したアナログピンから値を読み取ります。・ digitalWrite(pin, value)デジタル出力。 pin にHIGH(0) か LOW(1) を設定する。・ analogWrite(pin, value)アナログ出力。 pin に 1~255 までの数字を設定する。
困ったら Serial.println()
● プログラムがうまく動かない時の問題を切り分けるのに、 LED を点灯させるなどの確認方法しか無いのでは不便
● PC との USB接続経由で文字列を PC に送るのが Serial.println()
● 使う前に Serial.begin()
例 :
void setup() { Serial.begin(115200);}
void loop() { ... If (error) { Serial.println("debug output”); }}
=>PC 側では Arduino IDE の “ Serial Monitor” を使います
おまけ ~音声認識の仕組み ~アプリ
balus_modActivity.java
Googleサービス
Android側ライブラリ
Googleサーバ
startActivityForResult()
onActivityResult()
音声送信
音声録音
結果データ
Intent に入っているデータからgetStringArrayListExtra() で、音声認識の結果 ( コレクション )を取得。※今回のバルスアプリ
では「バルス」の音声認識の結果、カタカナの " バルス "が先頭に入ってくるので配列の 0番目が" バルス "であった時にバルス成功
とする if文が入っています。
結果データには候補が単数ないし複数返ってきます。日本語の場合、漢字の結果が返ってくることも。例 )「にっぽんばし」と呟く。→「日本橋」「にっぽんばし」「ニッ ポンバシ」などが返ってくる。
おまけ ~困ったときは ~
当日、動作確認中にアプリがうまく動作しなかった事があったと思いますが、そういう時は・・
● リセットボタン+Android端末抜き差しをすると、確実にアプリが起動します。 リセットボタンの場所はボードによって多少の違いがありますが大体同じような場所についています。 側面についているものやタクトスイッチになっているものも・・
おまけ ~ADK対応端末の調べ方~● Androidバージョン 2.3.4 でも ADK がつかえない端末が
ある?
$adb shell pm list features
adb shell を使用して features を確認、
android.hardware.usb.accessoryがあると ADK に対応しているようです。
● feature って何?
AndroidManifest の <uses-feature>に UsbAccessoryを指定することによって対応デバイスをフィルタリングすることができると書いてあるので、メーカー側でサポート機能を明示するようなものだと思うのですが…
● 参考 URL: http://act-yoshiken.blogspot.jp/2012/01/adb-shellandroidadk.html
http://y-anz-m.blogspot.jp/2011_05_01_archive.html
おまけ ~ADK対応端末の調べ方~
● 実際にコマンドを打ってみるとこんな画面になります。確認端末:Xperia ray
参考文献● Y.A.M の雑記帳
http://y-anz-m.blogspot.jp/2011/12/androidadkled.html
● OSPN Presshttp://www.ospn.jp/press/20120404no22-2-useit-oss.html
● Arduino 日本語リファレンスhttp://www.musashinodenpa.com/arduino/ref/
● 「Arduino を始めよう」Massimo Banzi 著 /船田巧 訳
● 「AndroidADK プログラミング&電子工作バイブル」岩田直樹 /杉浦登 /高木基成 /原田明憲 / 吉田研一 共著
SpecialThanks
-主催&会場提供-
日本橋でんでんタウン電子工作教室 さま
-協力-
日本Androidの会神戸支部 および、吉田研一さま
京都GTUG および、藏野文子さま
Galileo7 東昌宏さま
世話人 兼高理恵さま
OSSコンソーシアム 竹岡尚三さま
-企画&技術協力-
Android女子部 あんざいゆきさま
@muo_jpさま