スライド
- Arduinoの基礎 (PDF)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #define LED_PIN 3 void setup() { pinMode(LED_PIN, OUTPUT); } void loop() { digitalWrite(LED_PIN, HIGH); delay(500); digitalWrite(LED_PIN, LOW); delay(500); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #define LED_PIN 3 #define SW_PIN 4 int swVal = 0; void setup() { pinMode(LED_PIN, OUTPUT); pinMode(SW_PIN, INPUT); } void loop() { swVal = digitalRead(SW_PIN); if (swVal == HIGH) { digitalWrite(LED_PIN, HIGH); } else { digitalWrite(LED_PIN, LOW); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #define LED_PIN 3 #define SW_PIN 4 int swVal = 0; boolean ledState = false; void setup() { pinMode(LED_PIN, OUTPUT); pinMode(SW_PIN, INPUT); } void loop() { swVal = digitalRead(SW_PIN); if (swVal == HIGH) { ledState = !ledState; } if (ledState) { digitalWrite(LED_PIN, HIGH); } else { digitalWrite(LED_PIN, LOW); } } |
スイッチがオフからオンに切り替わった時のみLEDを反転させる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #define LED_PIN 3 #define SW_PIN 4 int swVal = 0; int swValOld = 0; boolean ledState = false; void setup() { pinMode(LED_PIN, OUTPUT); pinMode(SW_PIN, INPUT); } void loop() { swVal = digitalRead(SW_PIN); if (swVal == HIGH && swValOld == LOW) { ledState = !ledState; } swValOld = swVal; if (ledState) { digitalWrite(LED_PIN, HIGH); } else { digitalWrite(LED_PIN, LOW); } } |
スイッチのチャタリング対策を行う
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #define LED_PIN 3 #define SW_PIN 4 int swVal = 0; int swCount = 0; boolean ledState = false; void setup() { pinMode(LED_PIN, OUTPUT); pinMode(SW_PIN, INPUT); } void loop() { swVal = digitalRead(SW_PIN); if (swVal == HIGH) { swCount += 1; } else { swCount = 0; } if (swCount == 10) { ledState = !ledState; } if (ledState) { digitalWrite(LED_PIN, HIGH); } else { digitalWrite(LED_PIN, LOW); } delay(1); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #define LED_PIN 3 #define CDS_PIN 0 int cdsVal = 0; void setup() { pinMode(LED_PIN, OUTPUT); } void loop() { cdsVal = analogRead(CDS_PIN); digitalWrite(LED_PIN, HIGH); delay(cdsVal/10); digitalWrite(LED_PIN, LOW); delay(cdsVal/10); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #define LED_PIN 3 #define CDS_PIN 0 int cdsVal = 0; void setup() { //pinMode(LED_PIN, OUTPUT); } void loop() { cdsVal = analogRead(CDS_PIN); analogWrite(LED_PIN, 255-cdsVal/4); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #define TEMP_PIN 0 void setup() { Serial.begin(9600); } void loop() { int tempVal = 0; int tempMilliVolt = 0; float temp = 0; tempVal = analogRead(TEMP_PIN); tempMilliVolt = (unsigned long)5000 * tempVal / 1023; temp = (tempMilliVolt - 600) / 10.0; Serial.println(temp); delay(1000); } |
第2回の学習目標
授業構成
第1章 Androidとは?
第2章 XMLとJavaの概要を理解してみよう
第3章 ecripseでAndroidの開発体験
Androidとは?(PDF)
XMLとJavaの概要を理解してみよう(PDF)
Ubuntu 12.04, 11.10, 11.04 で Android SDK のダウンロードとインストールとテスト実行
「Eclipse で Android プロジェクトを作成してみる」から実施
2.サンプルプログラムを実行してみる
「Eclipse で既存のアプリケーションプログラムをインポートし,動かしてみる」から実施
サンプルプログラムのソース
ftp://ftp.oreilly.co.jp/9784873114095/hAndroidSampleCodeJP.zip
<補足>
PKGファイル作成方法について
1.以下の方法で「Export Android Application」を立ち上げる
プロジェクト名で左クリック→「Androidツール」→「Export Signed Application Package」
2.プロジェクト名はそのままで「次へ」をクリック
3.「Keystore selection」画面では、署名ファイルを作成するため、「Create new keystore」を選択
4.各入力項目に値を入力
ロケーション:作成する署名ファイルをフルパスで入力
(悪用されない場所に保管する)
パスワード:新規パスワードを入力する
確認:確認として同じ内容を入力する
入力が終わったら、「次へ」をクリックする
5.「Key Creation」の各入力項目に値を入力
エイリアス:署名ファイルの別名を入力
パスワード:新規パスワードを入力する(6文字以上)
確認:確認として同じ内容を入力する
Validity:インストールの有効期限、単位は年、25年以上を指定する
First and Last Name:開発者の名前と苗字
組織単位:開発元の組織のたん依命(例ー会社の部署名)
組織:開発元の組織名(例ー会社名)
City or Locality:市町村名を入力する
State or Province:県名を入力する
Country Code:カントリーコード、日本はjp
入力が終わったら、「次へ」をクリックする
6.Destination and key/certificate checks」の「Destination APK file」を入力
7.「完了」をクリック
第3回目の学習目標
授業構成
lsusb
<出力結果の例>
Bus 001 Device 010: ID 18d1:0003 Google Inc.
echo "SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"18d1\", MODE=\"0666\", GROUP=\"plugdev\"" > /tmp/51-android-rules sudo cp /tmp/51-android-rules /etc/udev/rules.d/51-android-rules (パスワード入力を求められた場合は"stp"を入力)
sudo udevadm control --reload-rules (パスワード入力を求められた場合は"stp"を入力)
sudo -s (パスワード入力を求められた場合は"stp"を入力) mkdir -p /root/.android echo "0x18d1" > /root/.android/adb_usb.ini cat /root/.android/adb_usb.ini
<出力結果の例>
0x18d1
<入力コマンド>
/usr/local/android-sdk-linux/platform-tools/adb kill-server /usr/local/android-sdk-linux/platform-tools/adb start-server exit
adb devices
<出力結果の例>
List of devices attached 20080411 device
sudo -s (パスワード入力を求められた場合は"stp"を入力) /usr/local/android-sdk-linux/platform-tools/adb kill-server /usr/local/android-sdk-linux/platform-tools/adb start-server exit
1.ライブラリアーカイブファイル(MicroBridge-Arduino.zip)をダウンロードし、解凍する
2.解凍した”Adb”フォルダごと”/usr/share/arduino/libraries”に配下にコピーする
<入力コマンド>
sudo cp -Rp /home/stp/ダウンロード/Adb /usr/share/arduino/libraries (パスワード入力を求められた場合は"stp"を入力)
3. “usb.cpp”ファイルを修正する
<入力コマンド>
sudo nano +656 /usr/share/arduino/libraries/Adb/usb.cpp
656行目(USB::controlRequest()関数本文の先頭)に
delay(10);
を追加する
入力が終わったら、キーボード入力の Ctrl+o でファイルを保存し、Ctrl+x でファイルを閉じる