ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

Posts Tagged ‘IoT

Windows XP で Arduino IDE 1.8.2 をインストールして ESP8266 Community ボードパッケージを適用し、nodeMCU Amica にスケッチを書きこもうとするとエラーがおこる – bits フォルダに cxxabi_tweaks.h ライブラリを配置すると解消する。

leave a comment »

Windows XP Service Pack 2 のノートパソコンを使って Arduino の開発環境を整えようとしている。Arduino IDE はバージョン 1.8.2 を使い、インストールする。この状態で、オリジナルの Arduino UNO は開発することができ、また CH340 や CP210 の USB シリアル変換ドライバを適用すれば Arduino UNO のクローンも開発することができる。しかし、ボードマネージャを使って ESP8266 ボードパッケージをインストールしても、nodeMCU Amica や nodeMCU LoLin にスケッチを書きこもうとするとエラーが出て書き込めない。

Arduino_1.8.2_setup_004

このときのエラーは、以下のようなものになっている。

—————————————————————————————-

Arduino:1.8.2 (Windows XP), ボード:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)"

In file included from C:\Documents and Settings\user\Local Settings\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266\abi.cpp:23:0:

c:\documents and settings\user\local settings\application data\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\cxxabi.h:50:32: fatal error: bits/cxxabi_tweaks.h: No such file or directory

#include <bits/cxxabi_tweaks.h>

                                ^

compilation terminated.

exit status 1
ボードNodeMCU 1.0 (ESP-12E Module)に対するコンパイル時にエラーが発生しました。

「ファイル」メニューの「環境設定」から
「より詳細な情報を表示する:コンパイル」を有効にすると
より詳しい情報が表示されます。

—————————————————————————————-

このエラーからは、必要なライブラリがないことでコンパイルエラーになっていることがわかる。実際にフォルダを開くと、確かに必要なライブラリがない。

Arduino_1.8.2_setup_005

そこで、この「bits」フォルダに「cxxabi_tweaks.h」ライブラリをコピーする。「cxxabi_tweaks.h」ライブラリは、GitHub などから入手する。

Arduino_1.8.2_setup_006

Arduino_1.8.2_setup_007

Arduino IDE を再起動し、Blink のスケッチを書きこむとうまくいった。

Arduino_1.8.2_setup_002

Arduino_1.8.2_setup_008

Written by Yoshio Matsumoto

2017年6月14日 at 10:50 AM

ESP8266 Wi-Fi SoC を搭載した nodeMCU には大きさ、形が異なるいくつかのタイプがある。一見同じもののように見える 2つのタイプを比べてみる。

leave a comment »

いわゆる nodeMCU と呼ばれるマイコンボードは、オンボードに ESP8266 の Wi-Fi モジュールを搭載しており、IoTデバイスとして安価で使いやすいものだ。IoT ではマイコンボードをネットワークにつなぐことに大きな意味があるのだが、他の多くの安価なマイコンボードではネットワーク関連のデバイスはオプションパーツ扱いになっていることが多い。パーツがオプションであるということは、自由度がある代わりに本体とパーツ、間のインタフェースと、トラブルシュートに要する項目が増える問題がある。その点、オンボードでネットワークモジュールを搭載しているマイコンボードでは、それらを考慮する必要がないので開発が楽だ。しかも nodeMCU は極めて安価である。

nodeMCU は日本の Amazon でも買うことができるが、大きさや形が異なるいくつかのタイプがある。このうち、よく似ていて一見すると同じもののように見える 2つのタイプを比べよう。

P1490289_edit_mid_640_480

こうして横に並べて比べると違いがわかるが、ネットで注文するときなどは、よく見ないと違いがわからない。まず全体の大きさが違うのだが、これらを別々のページで見たときには、大きさではわかりにくいだろう。そこで比べるには、搭載している部品の配置に注目するといい。わかりやすいのは USB コネクタの近くにある、おそらく USB シリアルインタフェースチップだと思われる黒い IC チップだ。写真の右側、「LoLin」と呼ばれる nodeMCU では横長のチップが搭載されているが、左側の「Amica」と呼ばれる nodeMCU では正方形の小さめのチップが搭載されている。あと違いが目に付くのは、左の「Amica」のきれいに整列したチップ抵抗だと思われる部品、あるいはチップコンデンサと思われるオレンジ色の大きめの部品あたりだろう。

P1490291_mid_640_480

裏から見れば違いはよくわかる。写真の右側には、おそらく雲をイメージしてデザインしたシンボルマークと「NODEMCU Amica」の名前がある。右側は「LoLin」と書かれている。

さて、この 2タイプの nodeMCU だが、プロトタイピングにおいて大きさの違いが使い勝手に影響するところは、一般的な長潟のブレッドボードを使うときに、大きい方の「LoLin」ではピンの穴を全部覆ってしまい、信号を取り出せなくなるところだ。これに対して小さい方の「Amica」では、かろうじて 1ラインは信号を取り出せるように残っている。

P1490294_edit_640_480

もし「LoLin」を長潟のブレッドボードで使いたいなら、2枚ならべて使うことになるだろう。

P1490295_edit_640_480

P1490291_mid_640_480

2017年3月13日の CNXSoft – Embedded Systems News によると Shenzhen Xunlong Software 社は Allwinner A64 プロセッサを搭載した Orange Pi Win を発表し、Windows 10 IoT Core がインストールできるという噂がある。

leave a comment »

CNXSoft – Embedded Systems News によると、Shenzhen Xunlong Software 社は Allwinner A64 プロセッサを搭載した Orange Pi Win を発表し、Windows 10 IoT Core がインストールできるという噂があるらしい。

CNXSoft_mid_640

http://www.cnx-software.com/2017/03/13/25-orange-pi-win-development-board-to-run-windows-10-iot-and-linux-and-android/

記事のトップを訳すと、こんなかんじだ。

「Shenzhen Xunlong Software 社はすでに1ダース以上の Orange Pi boards を発表しているが、その開発は止まるところがない。そしてまたここに Shenzhen Xunlong Software 社は「Orange Pi Win」を発表した。これは Allwinner A64 processor を搭載し、他のモデルと同様に Linux と Android のインストールをサポートするが、Windows 10 IoT も動くのではないかという噂がある。」

発表された Orange Pi Win のスペックは次の通りだ。

————————————————————————————

SoC  : Allwinner A64 quad core ARM Cortex A53 processor @ 1.2 GHz with Mali-400MP2 GPU
システムメモリ : 1 GB DDR3
ストレージ : 2MB SPI flash, micro SD slot up to 64 GB, footprint for optional eMMC flash
ビデオインタフェース : HDMI 1.4 up to 4K @ 30 Hz with CEC 3D and HDCP support,, MIPI LCD interface
オーディオインタフェース : HDMI, 3.5 mm headphone jack, built-in microphone
ネットワーク : Gigabit Ethernet + 802.11 b/g/n WiFi & Bluetooth 4.2 (AP6212)
USB : 4x USB 2.0 host ports, 1x micro USB OTG port
カメラインタフェース : MIPI CSI interface up to 5MP camera, up to 1080p@30 fps video capture
拡張インタフェース : 40-pin Raspberry Pi somewhat-compatible header
デバッグ機能 : 3-pin UART header
その他 : IR receiver; reset and power buttons; power and status LEDs;
電源 : 5V via power barrel or micro USB port, Lithium battery header, Power selection jumper (4-pin header), AXP803 PMIC
大きさ : 93 x 60 mm
重さ : 48 g

————————————————————————————

このように多くのデバイスが開発され、選択肢が増えることはたいへん望ましい。大いに期待できる。楽しみだ。

Windows 10 IoT Core を Orange Pi にインストールすることができるか。

leave a comment »

マイクロソフト社は IoT への技術も惜しみなく開発している。マイクロソフト社は 2015年4月に Build 2015 でWindows 10 IoT Coreのプレビュー版を発表し、8月には Windows 10 IoT Core の正式版をリリースした。Windows 10 IoT Core は現在マイクロソフトの Windows 10 IoT Core 公式サイトによれば、Raspberry Pi 2、Raspberry Pi 3、Dragonboard 410c、Intel Joule、Minnowboard Max が公式にインストール可能となっている。

OrangePiRaspberryPi_mid_640

https://developer.microsoft.com/ja-jp/windows/iot

ところで Orange Pi は ARM アーキテクチャの CPU を搭載した Shenzhen Xunlong Software 社が製造する中国製のマイコンボードで Raspberry Pi 2 Model B をモデルにしている。現在、Orange Pi の公式サイトには「Orange Pi Zero」「Orange Pi One」「Orange Pi Lite」「Orange Pi PC」「Orange Pi PC 2」「Orange Pi Pc Plus」「Orange Pi Plus 2E」「Orange Pi Plus」「Orange Pi Plus2」の 9つのモデルがラインナップされており、使われている CPU は Allwinner と呼ばれるもので、中国広東省珠海市の珠海全志科技股份有限公司 Allwinner Technology Co. Ltd. が開発する ARMアーキテクチャのものだ。「Orange Pi PC 2」には A53 ベースのものが使われており、それ以外は A7 ベースのものだ。

Raspberry Pi 2 Model B の CPU は、Model B v1.2 では ARM Cortex-A53 になったが、最初のモデルは ARM Cortex-A7 900MHZ だったので、Raspberry Pi よりも Orange Pi の方が高いパフォーマンスを期待できる。またこのことから、Windows 10 IoT Core を Orange Pi にインストールできるのではないかと期待できる。しかし公式アナウンスはなく、インストールに成功したという事例も現時点では目にしない。

マイクロソフト社の Microsoft answers コミュニティサイトには Orange Pi に Windows 10 IoT Core をインストールできるか、との質問があり、Most Helpful Reply として 10531.0.150820-1710.TH2_RELEASE_IOTCoreRPi_armFRE.ISO not working (not booting) on Orange Pi PC. HDMI is blank. Not (yet) tested via Serial Console. のレポートがある。

https://answers.microsoft.com/en-us/windows/forum/windows_other-hardware/windows-10-iot-on-orange-pi/65231318-fe15-44ee-a973-7cbc7042ef36

Windows 10 IoT on Orange Pi Microsoft Community_mid_640

Windows 10 IoT on Orange Pi Microsoft Community Most Helpful Reply_mid_640

Orange Pi は Raspberry Pi 2 Model B をモデルにしていると考えられるので、Windows 10 IoT Core をインストールできる可能性がある。Orange Pi は Raspberry Pi よりも安価で、かつ CPU のクロックも早いのでパフォーマンスが良いと期待できる。Orange Pi で Windows 10 IoT Core をぜひ動かしてみたいものだ。

Orange Pi は ARM アーキテクチャの CPU を搭載した Shenzhen Xunlong Software 社が製造する中国製のマイコンボードで Raspberry Pi 2 Model B をモデルにしている。

leave a comment »

Orange Pi は 64ビットプロセッサを備えた中国製のマイコンボードで、Shenzhen Xunlong Software 社が製造している。Raspberry Pi 互換の40ピンコネクタを搭載したモデルもあり、Raspberry Pi 2 Model B をモデルにして作られたものだと考えていいだろう。

OrengePi_mid_640

http://www.orangepi.org/

現在、Orange Pi の公式サイトには「Orange Pi Zero」「Orange Pi One」「Orange Pi Lite」「Orange Pi PC」「Orange Pi PC 2」「Orange Pi Pc Plus」「Orange Pi Plus 2E」「Orange Pi Plus」「Orange Pi Plus2」の 9つのモデルがラインナップされている。

OrangePiModel_mid_640

使われている CPU は Allwinner と呼ばれるもので、中国広東省珠海市の珠海全志科技股份有限公司 Allwinner Technology Co. Ltd. が開発する ARMアーキテクチャのものだ。Orange Pi に採用されているものは ARM アーキテクチャのうち A7 ベースのものが基本で、「Orange Pi PC 2」には A53 ベースのものが使われている。

Orange Pi Zero : Allwinner H2+ (ARM Cortex-A7 Quad-core) 1.2GHZ
Orange Pi One : Allwinner H3 (ARM Cortex-A7 Quad-core) 1.2GHZ
Orange Pi Lite : Allwinner H3 (ARM Cortex-A7 Quad-core) 1.2GHZ
Orange Pi PC : Allwinner H3 (ARM Cortex-A7 Quad-core) 1.6GHZ
Orange Pi PC 2 : Allwinner H5 Quad-core Cortex -A53 64bit
Orange Pi Pc Plus : Allwinner H3 (ARM Cortex-A7 Quad-core) 1.6GHZ
Orange Pi Plus 2E : Allwinner H3 (ARM Cortex-A7 Quad-core) 1.6GHZ
Orange Pi Plus : Allwinner H3 (ARM Cortex-A7 Quad-core) 1.6GHZ
Orange Pi Plus2 : Allwinner H3 (ARM Cortex-A7 Quad-core) 1.6GHZ

Raspberry Pi 2 Model B の CPU は、Model B v1.2 では ARM Cortex-A53 になったが、最初のモデルは ARM Cortex-A7 900MHZ だったので、Raspberry Pi よりも Orange Pi の方が高いパフォーマンスを期待できる。

OrengePi_mid_640

アドミンティーチャーズの「ラボワーク LW11 - Arduino UNO と Netduino 3 でモーターシールドを使い DC モーターを制御する」

leave a comment »

アドミンティーチャーズのラボワーク LW04 「W5100 イーサネットシールドを使ったWebサービスのプログラミング」の報告

leave a comment »

今年2月から毎月第一土曜日と決めて神戸三ノ宮の会議室で行っているマイコンボード勉強会「ラボワーク」。5月は「W5100 イーサネットシールドを使ったWebサービスのプログラミング」をテーマにした。

P1100979_clip_640_480

このイーサネットシールドは Arduino の事実上のデファクトスタンダードなイーサネットシールドで、Wiznet の W5100 チップが使われている。Arduino IDE 開発環境で標準でライブラリが用意されているのでプログラミングもしやすい。

このイーサネットシールドを使って Web サービスを実装するには次のようにする。

———————————————————————————

void setup() {
  Ethernet.begin(mac,ip);
  server.begin();
}

void loop() {
  EthernetClient client = server.available();
}

———————————————————————————

たったこれだけで Web サービスが動く。あとは受け取ったデータを解析し、適切な HTML テキストをクライアントに返すだけだ。

クライアントに対してテキストを送り返すには次の一行でいい。

———————————————————————————

  client.println("This is my web");

———————————————————————————

ただこれを単に void loop() に書くだけでは、ひたすら際限なく同じテキストをクライアントに送り続けることになる。そこでクライアントから接続要求があったときに、テキストを一回だけ送るという処理が必要になる。

たとえば次のスケッチは接続要求のキャラクタを文字列につなぎ、文字列に「GET」があれば HTML のリクエストだと判断し、一回だけテキストを返してサービスを終了する。

———————————————————————————

void loop() {
  EthernetClient client = server.available();
    if(client.connected() == 1){
    c = client.read();
    stc.concat(c);
    if(client.available() == 0){
      Serial.println(stc);
    }
  }
  if(stc.indexOf("GET") != -1 && client.available() == 0){
    client.println("This is my web");
    client.stop();
    stc = "";
  }
}

———————————————————————————

これでクライアントから接続すると「This is my web」の文字がブラウザに表示される。正しい HTML 文ではないが、表示されるはずだ。

クライアントからの要求が POST メソッドだったときは、受け取ったテキストを解析して必要な処理をさせることができる。たとえば HTML 文にチェックボックスとボタンを用意して、8 x8 マトリックス LED をコントロールするようなこともできる。

P1160747_mid_640_480

P1160639_mid_640_480

しかし、メモリの制約だと思われるが、あまり長い HTML テキストを送ることや POST メソッドも長いメッセージを受け取ることができない。そこで、HTML テキストは SD カードに保存しておき逐次読みだして送信することを考えなければいけない。また POST メソッドも不要なテキストを削除して処理する必要がある。

イーサネットシールドになぜ SD カードスロットが付いているのかが疑問だったが、実用的な Web サービスを構築するには長い HTML テキストを処理する必要があるからだ、ということがよくわかった。

Arduino と Web サービスは今後も「ラボワーク」でとりあげることにする。無線ネットワークもやってみたい。わかったことの詳細は、また別途項を改めて報告したい。