Android Things – UART LOOPBACK

EdisonでAndroid Thingsが使用できるようになりました。
http://akizukidenshi.com/catalog/g/gM-08571/
次にUARTを試しました。
https://github.com/androidthings/sample-uartloopback
通信にはUSB to TTL Serial Cableを使用しました。
https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4WXL

UARTも普通に使用できます。

Android Thingsは、1個しかアプリ起動できないようで複数のアプリをインストールするとエラーが出て起動ができなくなりました。
この場合は、アプリをアンインストールします。
adb uninstall パッケージ名
adb uninstall com.example.androidthings.simplepio
次にインストールしたアプリが有効になってデバッグ終了後、電源リセット後もそのアプリが有効になります。
以下参考にさせていただきました。
https://stackoverflow.com/questions/42361277/how-to-reset-default-app-in-android-things-os

Android Things – LED BLINK

EdisonでAndroid Thingsが使用できるようになりました。
http://akizukidenshi.com/catalog/g/gM-08571/
サンプルを動かしてみました。サンプルは以下にあります。
https://developer.android.com/things/sdk/samples.html
まずは、sample-simple-pioを試しました。
https://github.com/androidthings/sample-simplepio

LEDのBLINKは、Arduino基板のLED(DS2)で試せますが、それだけでは面白くないのでPrototyping Shield for Arduinoを使用してみました。
http://akizukidenshi.com/catalog/g/gM-07033/

LEDが2個、スイッチが1個ついています。sample-simple-pioを改造してArduino基板のLED(DS2)を含めてLED3個とスイッチ1個のプログラムを作成しました。
Android Studioを使って、ほぼスマホ/タブレットの通常のAndroid端末と同じ感覚で開発ができます。違和感がほとんどないのでマイコン組み込みに慣れていない開発者もIoTガジェットの開発に参入できると思います。

Android Things on an Arduino expansion board with the Edison

Googleから出たOS Android ThingsがIntel Edisonで使えるようなので試してみました。
まずは、インストールからです。
まずは、Android studioをダウンロードしてインストール。
https://developer.android.com/studio/index.html
次に書き込み用にPlatform Flash Tool Liteをダウンロードしてインストールしました。
https://01.org/android-ia/downloads/intel-platform-flash-tool-lite

次にOSイメージをダウンロードします。Intel Edison   用は  androidthings_edison_devpreview_3.zipとなります。
https://developer.android.com/things/preview/download.html

Windows10のPlatform Flash Tool LiteでOSのインストールを成功させるにはドライバーが2つを更新する必要がります。
Intel USB Driver for Android devices:IntelAndroidDrvSetup1.10.0.zip
https://software.intel.com/en-us/android/articles/intel-usb-driver-for-android-devices
Windows standalone driver 1.2.1
https://software.intel.com/en-us/iot/hardware/edison/downloads
情報源は以下になります。助かります。
https://communities.intel.com/thread/109280

次にOSインストールの手順です。以下にインストール方法が書かれています。
https://developer.android.com/things/hardware/edison.html
SW1をJ16側にします。
Platform Flash Tool Liteを立ち上げ、fastbootを書き込みます。androidthings_edison_devpreview_3.zipを読み込みます。
左下の「Start to Flush」を押します。そのあとJ16のUSBとPCを接続します。FW ボタンは押さなくても大丈夫です。
J3のUSBとPCにつなげるとターミナルで状況が確認できて安心です。

書き込み100%が成功したらPlatform Flash Tool Liteを終了し次に進みます。
androidthings_edison_devpreview_3.zipを解凍して、コマンドプロンプトで解凍したフォルダに移動します。
flash-all.bat
を実行するとAndroid Thingsの書き込みが行われ再起動します。
この時もJ3のUSBとPCにつなげたままにしておくとターミナルで進捗が確認できます。
Andoroid Thingsが起動すると、Andoroid スマホのように
adb devices
をコマンドプロンプトで打つとデバイスがリスアップされます。
これでAndroid Things のインストールが完了です。

Python De IoT

PythonでIoTを構築しようと思います。
XBeeでセンサーからデータを収集します。mqttを使用し、インターネットを介してデータベースへ上げる。

XStick ZB Japanを使用してシリアルでデータを集めます。
http://akizukidenshi.com/catalog/g/gM-09335/
Pythonの開発環境は、Winodws10にAnacondaを使用してインストールしました。
https://www.continuum.io/why-anaconda
IEDは、PyCharmを使用しました。
https://www.jetbrains.com/pycharm/
コマンドラインを使わずデバッグまでできて便利です。

XBee 5V Interface Adopter

5VマイコンとXbeeを接続したかったので
XBee 5Vインターフェースアダプタを購入しました。
Jpeg
https://www.switch-science.com/catalog/1216/
https://www.amazon.co.jp/SSCI-012164-XBee-5V%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF/dp/B00BTX2JJ2/ref=sr_1_19?s=electronics&ie=UTF8&qid=1485673133&sr=1-19&keywords=%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81+%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%82%B9

USBシリアルを接続するコネクタが用意されています。
https://www.switch-science.com/catalog/342/
取り合えず5Vで動きを確認しました。
Jpeg

C2000 Delfino MCUs F28377S LaunchPad + I2C

I2Cを使用できるようにしました。I2CのLCDで試しました。
I2C接続小型キャラクタLCDモジュール 8x2行
http://akizukidenshi.com/catalog/g/gP-06669/
I2C接続小型LCDモジュール(8x2行)ピッチ変換キット
http://akizukidenshi.com/catalog/g/gK-06795/
Jpeg
controlSUITEのF28377S のi2c_eepromサンプルプログラムを改造しました。
サンプルはGPIO32と33を使用していますがLaunchPadは、4GPIO42と43を使用します。
GPIO_SetupPinMux(42, GPIO_MUX_CPU1, 6); // Configure GPIO42 for SDAA operation
GPIO_SetupPinMux(43, GPIO_MUX_CPU1, 6); // Configure GPIO43 for SCLA operation
この変更だけでは、I2C通信できませんでした。この前に    GpioCtrlRegs.GPBPUD.bit.GPIO42 = 0;    // Enable pull-up for GPIO42 (SDAA)
GpioCtrlRegs.GPBPUD.bit.GPIO43 = 0;    // Enable pull-up for GPIO43 (SCLA)

GpioCtrlRegs.GPBQSEL1.bit.GPIO42 = 3;  // Asynch input GPIO42 (SDAA)
GpioCtrlRegs.GPBQSEL1.bit.GPIO43 = 3;  // Asynch input GPIO43 (SCLA)
のプルアップと入力のサンプリング同期の設定を追加しました。(PICCOLOのサンプルプログラムを参考にしました。)Jpeg
テストベンチに情報を表示する手段ができました。

Bluetooth Low Energy IMBLE

Bluetooth Low Energy無線モジュール
IMBLEです。
Jpeg

http://akizukidenshi.com/catalog/g/gM-10140/
変換基板も同時に購入しています。
IMBLE用変換アダプタ
http://akizukidenshi.com/catalog/g/gM-10142/
メーカページにマニュアルなどがあります。
http://www.interplan.co.jp/solution/wireless/imble.php
Jpeg
IMBLEとの通信確認が容易な通信アプリが用意されています。
ソースコードも一部を除き公開していますのでアプリ作成も可能です。
IMBLEterminal
https://play.google.com/store/apps/details?id=jp.co.interplan.IMBLEterminal
Androidタブレットで簡単に接続確認ができました。送受信もこのアプリで確認できます。
電文がASCIIで16進コードを送る仕様なので変換がちょっと面倒そうですが、スマホ、タブレット用のガジェットが容易に作れそうです。

WiFi Module ESP-WROOM-02

Wi-Fiモジュール ESP-WROOM-02 DIP化キット
http://akizukidenshi.com/catalog/g/gK-09758/Jpeg
ESP-WROOM-02はESP8266EX(SoC、32bit MCU)を搭載したWiFiモジュールです。
キットで650円、単品で550円という格安WiFiモジュールです。
衝撃価格です。
Wi-Fiモジュール ESP-WROOM-02
http://akizukidenshi.com/catalog/g/gM-09607/Jpeg

IO15 -> GND
IO0  -> VCC
IO2  -> VCC
すべて10kΩの抵抗を入れてつなぎます。
電源投入時この設定で
Flash Boot Mode
でWROOM-02のFlushで起動します。

AT+CIFSR
これでMACアドレスを調べます。

+CIFSR:STAMAC,”MACアドレス”
セキュリティを回避するためこのMACアドレスをWiFiルータに登録します。

AT+CWMODE=1
ifiモードを設定します。 モードはstationにします。

AT+CIFSR
コマンドで取得したIPアドレスを確認します。
+CIFSR:STAIP,”***.***.***.***”

AT+CIPMUX=1
複数接続モードの許可。TCPサーバーとして動作させるためには、複数接続モードを許可しておく必要がある。

AT+CIPSERVER=1,1000
TCPサーバーとしての動作を許可し、ポート1000でのlisten()を開始させる。このコマンドを与える前に、AT+CIPMUX=1を実行しておくこと。

接続テストするためTERA TERMでTCPで接続します。
接続
0,CONNECT
切断
0,CLOSED

【送信】
10文字送信
AT+CIPSEND=0,10

【受信】
受信イベント
+IPD,0,4:***
Jpeg
一度設定するとルータまで自動的に接続するので案外手間いらずです。

© 2014 Spineedge Corporation.

組込み技術向上のため、エンベデッドに関する話題中心のブログです。