作成者別アーカイブ: admin

第1回 Arduinoの基礎 – 目次

スライド

ソースコード

カテゴリー: 第1回 Arduinoの基礎 | コメントは受け付けていません。

第1回 Arduinoの基礎 – LEDを点滅させる

LEDを点滅させる

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回 Arduinoの基礎 | コメントは受け付けていません。

第1回 Arduinoの基礎 – スイッチのオン・オフを読み取る

スイッチのオン・オフを読み取る

スイッチを押した時だけLEDが点灯する

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);
  }
}

スイッチを押すと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
#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)

スイッチがオフからオンに切り替わった時のみ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);
  }
}

スイッチを押すとLEDのオン・オフが反転する(改良版2)

スイッチのチャタリング対策を行う

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回 Arduinoの基礎 | コメントは受け付けていません。

第1回 Arduinoの基礎 – 光センサーの値を読み取る

光センサーの値を読み取る

光センサーでLEDの点滅の間隔を制御する

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);
}

光センサーでLEDの明るさを制御する(PWM)

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回 Arduinoの基礎 | コメントは受け付けていません。

第1回 Arduinoの基礎 – 温度センサーの値を読み取る

温度センサーの値を読み取る

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);
}
カテゴリー: 第1回 Arduinoの基礎 | コメントは受け付けていません。

第2回 Androidの基礎 – 目次

第2回の学習目標

  • Androidの歴史と、XMLとJavaがどような仕組みになっているのか理解することができる
  • EclipseでAndroid開発の基本的な流れが理解でき、自ら操作ができる

授業構成

第1章 Androidとは?
第2章 XMLとJavaの概要を理解してみよう
第3章 ecripseでAndroidの開発体験

カテゴリー: 第2回 Androidの基礎 | コメントは受け付けていません。

第2回 Androidの基礎 第1章 – Androidとは?

Androidとは?(PDF)

カテゴリー: 第2回 Androidの基礎 | コメントは受け付けていません。

第2回 Androidの基礎 第2章 – XMLとJavaの概要を理解してみよう

XMLとJavaの概要を理解してみよう(PDF)

カテゴリー: 第2回 Androidの基礎 | コメントは受け付けていません。

第2回 Androidの基礎 第3章 – eclipseでAndroidの開発体験

1.プロジェクトを作成してみる

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.「完了」をクリック

カテゴリー: 第2回 Androidの基礎 | コメントは受け付けていません。

第1回 Arduinoの基礎 – 復習テスト

復習テストページ

カテゴリー: 第1回 Arduinoの基礎 | コメントは受け付けていません。

第3回 多目的リモコン – 目次

第3回目の学習目標

  • 多目的リモコンを作成する

授業構成

  1. 全体の流れについて
  2. 完成図を紹介
  3. USB Host Shieldへのピンソケットの取り付け
  4. ArduinoとUSB Host Shieldを接続し、各電子部品を接続する
  5. PCとAndroidを接続
  6. Android側プログラムの構築
  7. Androidへのプログラムアップロード
  8. Arduino開発環境へのADB(MicroBridge)ライブラリ追加
  9. Arduino側プログラムの構築とアップロード
  10. Arduino Uno R3とAndroidを接続し動作確認
カテゴリー: 第3回 多目的リモコン | コメントは受け付けていません。

第3回 多目的リモコン 第1章 – 全体の流れについて

カテゴリー: 第3回 多目的リモコン | コメントは受け付けていません。

第3回 多目的リモコン 第2章 – 完成図の紹介

カテゴリー: 第3回 多目的リモコン | コメントは受け付けていません。

第3回 多目的リモコン 第3章 – USB Host Shieldへのピンソケットの取り付け

カテゴリー: 第3回 多目的リモコン | コメントは受け付けていません。

第3回 多目的リモコン 第4章 – ArduinoとUSB Host Shieldを接続し、各電子部品を接続する

※ 日経Linux 2012年5月号P47の図4,5を一部修正して使用しています。

 

カテゴリー: 第3回 多目的リモコン | コメントは受け付けていません。

第3回 多目的リモコン 第5章 – PCとAndroidタブレットを接続

  1. Androidタブレットの「設定」アイコンをタッチする
  2. 設定画面左側の「開発者向けオプション」をタッチする
  3. 「USBデバッグ」にタッチし、チェックボックスにチェックを付ける
  4. AndroidタブレットとPCをUSBで接続する
  5. ターミナルを立ち上げる
  6. Androidタブレットが認識されていることを確認する
    <入力コマンド>

    lsusb

    <出力結果の例>

    Bus 001 Device 010: ID 18d1:0003 Google Inc.
  7. udevadmを設定する
    <入力コマンド>

    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"を入力)
  8. udevadmの設定ファイルを読み込む
    <入力コマンド>

    sudo udevadm control --reload-rules
    (パスワード入力を求められた場合は"stp"を入力)
  9. adb_usb.iniを設定し、adbを再起動する
    <入力コマンド>

    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
  10. Androidタブレットがadbで認識されていることを確認する
    <入力コマンド>

    adb devices

    <出力結果の例>

    List of devices attached
    20080411 device
  11. 補足
    PCを再立ち上げするとAndroidタブレットを接続しても認識されません。
    その際は以下のコマンドを順番に実行して下さい。
    <入力コマンド>

    sudo -s
    (パスワード入力を求められた場合は"stp"を入力)
    /usr/local/android-sdk-linux/platform-tools/adb kill-server
    /usr/local/android-sdk-linux/platform-tools/adb start-server
    exit
カテゴリー: 第3回 多目的リモコン | コメントは受け付けていません。

第3回 多目的リモコン 第6章 – Androidタブレット側プログラムの構築

  1. プログラムアーカイブファイル(IRtest.zip)をダウンロードし、解凍する
  2. 解凍した”IRtest”フォルダごと”/home/stp/workspace”配下にコピーする
  3. eclipseを起動する
  4. 「ファイル」→「インポート」を選択する
  5. 「既存プロジェクトをワークスペースへ」を選択し、「次へ」ボタンをクリックする
  6. 「ルート・ディレクトリーの選択」のラジオボタンが選択されている状態で、「参照」ボタンをクリックする
  7. “/home/stp/workspace”配下の”IRtest”を選択し、「OK」ボタンをクリックする
  8. プロジェクト内の”IRtest(/home/stp/workspace/IRtest)”が選択されていることを確認し、「完了」ボタンをクリックする
カテゴリー: 第3回 多目的リモコン | コメントは受け付けていません。

第3回 多目的リモコン 第7章 – Androidタブレットへのプログラムアップロード

  1. 「パッケージエクスプローラ」内の「IRtest」プロジェクトで右クリックし、表示されたメニューから「実行」→「実行の構成」を選択する。
  2. 左側のウィンドウ内の「Androidアプリケーション」配下に、「IRtest」が存在することを確認する。もし、存在する場合は、9番へ進む。
  3. 「IRtest」が存在しない場合は、追加するため以下の手順を行う。
  4. 「Androidアプリケーション」で右クリックし、表示されたメニューから「新規」を選択する。
  5. 「名前」の欄に、「IRtest」と入力する。
  6. 「Android」タブが選択されている事を確認し、「プロジェクト」内の「参照」ボタンをクリックする。
  7. 表示された”Project Selection”画面内の「IRtest」を選択し、「OK」ボタンをクリックする。
  8. 「プロジェクト」内のテキストボックスに「IRtest」が挿入されたことを確認し、右下にある「適用」ボタンをクリックする。
  9. 表示された「実行構成」画面右側の「ターゲット」 タブをクリックする
  10. “Deployment Target Selection Mode”の”Always prompt to pick device”を選択し、「実行」ボタンをクリックする
  11. “Choose a running Android device”ラジオボタンを選択し、対象のAndorid deviceが選択されている状態で、「OK」ボタンをクリックする
  12. Androidタブレットにアプリケーションが表示されることを確認する(少し時間がかかります)
カテゴリー: 第3回 多目的リモコン | コメントは受け付けていません。

第3回 多目的リモコン 第8章 – Arduino開発環境へのADB(MicroBridge)ライブラリ追加

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 でファイルを閉じる

カテゴリー: 第3回 多目的リモコン | コメントは受け付けていません。

第3回 多目的リモコン 第9章 – Arduino側プログラムの構築とアップロード

  1. Arduino UNO R3をPCにUSB(下段のボードにあるUSB BプラグとPCのUSB Aプラグ)で接続する(USB Host ShieldのUSB Aプラグとは接続しないでください)
  2. プログラムファイル(Arduino_irRemote_kai.pde_.zip)をダウンロードし、解凍する
  3. Arduino IDEを起動する
  4. “File”→”Open”を選択する
  5. 先ほどダウンロードし、解凍したプログラムファイル(Arduino_irRemote_kai.pde)を選択し、「開く」ボタンをクリックする
  6. 「Upload」ボタンをクリックし、Arduinoにプログラムをアップロードする
カテゴリー: 第3回 多目的リモコン | コメントは受け付けていません。