2016年9月18日日曜日

Windows 10 IoT Core Blocklyで遊んでみる

 Windows 10 IoT CoreにBlockly(Googleが提供するビジュアルプログラミング言語)のサンプルが追加されていたので、遊んでみました。
 
 Windows 10 IoT Coreのインストール手順については、以下のページなどを参照してください。

 https://developer.microsoft.com/en-us/windows/iot/GetStarted


必要なもの
Raspberry Pi
Sence HAT


○IoT Core Blocklyyの展開と実行
 IoT Core Dashboardの「サンプルを試す」から、「IoT Core Blocklyy」を展開します。



○サンプルの実行
 メニューからサンプルを選択し、[Run]をクリックします。[Stop]で停止します。続けて別のサンプルを実行する場合は、[Stop]で止めてから、しばらく時間を置かないと上手く動かない場合があります。時間を置いても動かない場合は、ページをリロードして、、[Run]をクリックしてみてください。

・Hartbert


 ジョイスティックを動かうと、「Hello from IoT Core」という文字列がスクロール表示されいます。


・Random bars



・Gravity ball


 重力の方向にボールを移動します。


・Sensor

 温度、コンパス、湿度、圧力センサーの取得値をスクロールで表示します。

・Pong


 ジョイスティックでラケットを移動し、ボールを打ち返すゲームです。


○GIPOの制御
 IoT Core Blocklyyの「Pins」には、GIPOを制御するための「digital write」ブロックがありますが、現状では、動作しないようです。


○補足
 IoT Core Blocklyyは、一度展開すると、スタートアップで自動的に起動されます。Windows 10 IoT Coreを再起動後にブロックエディタを表示するには、ブラウザから「http://your-rpi-name:8000」(your-rpi-nameはIPアドレスでも良い)にアクセスします。
 ただし、ブロックエディタが正しく表示されない場合があります。この場合は、「Device Portal」を開き、「Apps」メニューから「IoTBlocklyBackgroundApp」を削除し、再度、IoT Core DashboardからIoT Core Blocklyyを展開します。

 

2016年9月6日火曜日

DigisparkとPCのシリアル通信

DigisparkPC間でシリアル通信を行うには、DigiUSBライブラリを使います。

ライブラリのインクルード
#include <DigiUSB.h>

DigiUSBライブラリの関数は、次のとおりです。

DigiUSB.begin()
 シリアル通信を初期化します。

DigiUSB.available()
シリアルバッファにあるデータのバイト数を返します。

DigiUSB.read()
 受信データを読み込みます。

DigiUSB.write(byte)
 指定した1バイトのデータを送信します。

DigiUSB.refresh()
 受信バッファをクリアします。

DigiUSB.delay(ms)
 指定時間後に受信バッファをクリアします。

DigiUSB.println(string)
 改行コードを付けて指定した文字列を出力します。

DigiUSB.print(string)
 指定した文字列を出力します。

 DigiUSBライブラリの使用例は、サンプル([ファイル][スケッチの例][DigisparkUSB
])を参照してください。


PC側でデータを送受信するには、DigisparkExampleProgramsに含まれツールを使います。Windowsでは以下のツールを使用できます。

monitor
データの送受信とモニターするためのGUIツール

通信例(サンプルプログラム「Echo)
 

digiscope
 DigisparkからのデータをプロットするGUIツール

 プロットの例(サンプルプログラム「DigiScope)
 
 ※サンプルプログラム中の「float value = analogRead(1);」の記述をfloat value = analogRead(0);」に変更して実行しています。

read
 Digisparkからのデータを受信するコマンドラインツール

write
 Digisparkにデータを送信するコマンドラインツール

receive
 Digisparkからのデータを1度だけ受信するコマンドラインツール

send
 Digisparkにデータを1度だけ送信するコマンドラインツール