2月前半の技適証明の公示

ESP8266の開発がArduino IDEでできるようになったというすごいビッグニュースがでたところで気になるのが、日本でESP8266を使うためには避けて通れない技適の行方です。

この記事で書いたように、2月13日にEspressifの中の人が「#ESP8266 has passed the Japanese TELEC certification!」とツイートしています。

・・・で、時々総務省のWebサイトにある技術適合証明等の公示をみていたのですが、さっき見てみたら、2月前半分の公示がでていました(なんで週末に出るんだろ?)。で、テレコムエンジニアリングセンター(TELEC)の2月前半分を見てみると、ずらずらっとたくさん技適認証を受けた機器が並んでいます。この中で電波形式G1D(多分合ってると思うんだけど)で検索して、周波数が2400MHz帯しか出さないものを見ていくと、

  • 三菱電機 AR-0HT6-PANEL2-2 001WWDB3008282~
    3008331 2/12
  • 株式会社日放電子 F400470091 001WWCA3018338~
    3018349 2/9
  • LG Electronics Inc. LG-W100 001-A03356  2/4
  • パナソニック株式会社 CN-GP757VD  001-A05291  2/13

しかありません。(技術基準適合証明を受けた者の氏名又は名称、特定無線設備の型式又は名称、技術基準適合証明番号、技術基準適合証明をした年月日の順です)

三菱電機やLGやパナソニックが他社のモジュールの認証を取るということは考えにくいので、この中で怪しいのは2番目の日放電子さんかな、と思います。ちょうど技適の証明番号も12個ということで、ESP-01〜ESP-12のモジュールの種類の数とも一致しています。そこで、総務省の技術基準適合証明等を受けた機器の検索のページで検索してみました・・・が、特に追加の情報はありませんでした。

さて、実際どうなることやら・・・。技適の問題がクリアになってくれればヒットまちがいなしなんですけどねぇ・・・。あるいは、この日放電子さんというところから日本向けは販売されるんでしょうか・・・?(最悪なのは、他3社のどこかが自家組込み用にTELEC取りました〜、というパターンですが・・・)

ヤキモキさせてくれますね・・。

#ESP-01ってシールドケースが無いから技適が通らない気もするけど・・・シールドケースで密閉されてなくてもワンチップだからハードウェア改造で何かできる気もしないし、どうなんだろ?

【すごい】ESP8266がArduino IDEでサポートされる

いつものように、Hack a Dayの記事から。

タイトル(「ARDUINO IDE SUPPORT FOR THE ESP8266」)だけ見ると、ESP8266をEthernet Shieldとして使えるようになったのかな、と思ってしまうところですが、そんな当たり前の話じゃありません

『ArduinoでESP8266がサポートされた』のではなく、『Arduino IDEでESP8266がサポートされた』のです。言い換えると、ESP8266単体で動かすIoTアプリケーションの開発がArduino IDEでできるようになったということなのです。(github上のサンプルプログラムにはIoTのプロトコルであるMQTTのサンプルも載っています)

ESP8266の内部のXtensaプロセッサをArduino IDEがサポートするようになり、ESP8266モジュールだけでArduinoのpinMode(),digitalRead(),digitalWrite(),analogRead()が使える上に、WiFi機能をEthernet Shieldと同様に使えるようです。一方で、PWMはESP8266自体がハードウェアリソースを1chしか持っていないので制約があり、SPIとI2Cはまだ動作しないようです。

すでに github から Linux(64bit)、Windows、OS X用のArduinoコンパチのIDEがダウンロードできるようになっていて、サポートしている機能の範囲も同じところに書かれています。(Linux版をダウンロードしてみたら70MB以上ありました・・・)

ESP8266の書き換えは、Hack a Dayのこちらの記事にあるような簡単な回路でできるようです。

IDEの安定性次第のところはあるかもしれませんが、安定して使えるようになればこれは間違いなく大ブレイクすると思います。これで無線や電子工作に詳しくない人でもArduinoでマイコン制御機器を作ってみるのと大して変わらない感覚で、ESP8266を使ったIoT機器を作ってみるということが可能になるのですから。

おそらく、Espressif社はWiFiを使ったIoT機器用のチップとしては数量でNo.1になっていくのではないでしょうか。(ちょうど、BluetoothでCSR社が占めているような立ち位置になるんじゃないかと予想します)

いまさらH8-300開発環境を構築してみたけど・・・

いまさらですが、余っているH8/3664ボードを何かに使おうと思って、開発環境を調査してみました。

1.環境

VMware上の Lubuntu14.04.2をターゲットにします。
OSをインストールしたら、build-essentialパッケージをインストールした後、VMware-Toolsをインストールします。

2.Cコンパイラ

いまさらアセンブラもないので、Cコンパイラを探します。
synapticでh8を検索すると、binutils-h8300-hmsとgcc-h8300-hmsが見つかります。これらをインストールします。これらをインストール後、バージョンを確認すると以下のようになっていました。

3.書き込みツール

昔、三岩さんが作られたものと思われるツールが sourceforge にあがっていましたのでコンパイルしてみます。説明では先頭の4行を環境に合わせて修正してからコンパイル、と書いてありましたが、はじめからLinuxのみが#defineされていました。

Warningがたくさん出ましたが、実行ファイルは生成されました。

4.コンパイルテスト

Strawberry LinuxのWebサイトからLED点滅サンプルを持ってきてコンパイルしてみました。

・・・が、-lc がないと言って怒られます。探してみると、どこにもH8用のlibc.aがありません。これは libc.a がないことを意味していますので、newlibをインストールすることにしました。

5.newlibのインストール

組み込み用のlibcであるnewlibをコンパイルします。
その前に、まずgitからインストールです。

さらに、newlibのソースを取ってきます。

このままコンパイルすると、「makeinfoがない」といって怒られますので、synapticでtexinfoパッケージをインストールして、別のターミナルを新規に開いてから configureスクリプトを走らせて、make、make install します。

libc.a、libg.a、libm.a が /usr/local/h8300-hitachi-coff/lib の下にインストールされました。

6.改めてコンパイルテスト

よくみると、さらにはMakefileでライブラリパスが設定されていなかったので、これを修正してみたのですが、今度は互換性のないlibc.aをスキップしました、となってしまいました。

確か、gccのクロスコンパイラをビルドするときにはライブラリ(libcなど)なしで一度コンパイラをビルドしてライブラリをビルド、その後再度コンパイラをビルドし直す手順になっていたかと思うのですが、そのへんがちゃんと行われていないのかもしれません。(ググってもnewlibのバイナリがなく、ソースからビルドするしかなさそうだ、という時点で嫌な予感はしたんですけどね)

7.まとめ

・・・うーむ。ぐぐってみると、同じ問題がはるか昔に出ていたようです。
https://bugs.launchpad.net/ubuntu/+source/gcc-h8300-hms/+bug/342667
ここを見る限り、リポジトリにあってSynapticでインストールできても結局メンテナンスされてなくて使い物にならないようで、そのままずーっと放置されているようですね。

コンパイラごとソースからビルドすれば動く組み合わせもあるかもしれませんが、そこまでして動かす元気はありません。今でも秋月ではH8/300のボードを売ってますが、みなさんどうやって使ってるのでしょう?(メンテナンス目的?教材用?)
いまでもcygwin + gcc2.95.3ベースの環境をCD-Rで売ってるようですが、いまさらのような気がします。

H8は比較的電子工作用途に受け入れられた数少ない日本製マイコンですが、この状況ではとても使う気にはなれません。かといって、いまさらR8Cとか78Kとかってのもないでしょうから、素直に諦めるほうが良さそうです。

さて、余ってしまったボード、どうしよう・・・。

新たなIoTデバイスEMW3162登場?

例によって Hack a Day の記事からです。

ESP8266とは異なる別のIoTモジュール、その名もEMW3162というモジュールが登場しているようです。(PDFデータシート

ESP8266モジュールのワンチップIoTモジュールとは異なり、2チップでモジュール構成しています。アプリケーションプロセッサは120MHz動作のSTM32F205を搭載し、アプリケーション領域としてFlash 1MB、RAM128KBが使えるようです。

WiFiとTCP/IPの処理はライブラリで提供、RTOSおよびGCCの開発ツールもファームウェア開発キットとして提供されるようです。典型的な無線のUART、オーディオ、センサ接続などはファームとして提供されるそうです。(サンプルプログラムの扱いでしょうかね?)

すでにAliExpressでも$10〜$20/台程度で販売されていますが、モジュール仕様としてWiFiアンテナはオンボードPCBアンテナと外付けアンテナタイプの2種類があるようですので、要注意です。(あまり明確に記載されていません)

CEとFCCには適合しているようですが、例によって(当然でしょうが)技適に関わる記述はありません。(モジュール写真を見る限りはどれもCEマークしか入っていません)

第一印象としてはESP8266では扱いきれないようなアプリケーションでない限りはメリットは大きくないような気がします。コスト的にもESP8266の1チップ構成と比べるとデメリットは大きいかと。もちろんモジュール上の120MHz動作のSTM32F205を活かしきれるような用途なら別なのですが、果たしてどの程度そのような用途があるか・・・?

GNU R言語でCSVを扱う

訳あって、大量のCSVデータと格闘することになりそうです。
そのために調べているのが統計解析のためのR言語です。

試しに、気象庁から過去のデータを引っ張ってきてR言語で処理してみます。

1.データをダウンロード

気象庁の各種データ・資料のページの「過去の地点気象データ・ダウンロード」を開きます。

まずデータをダウンロードする地点を選びます。
今回は東京・大阪・仙台・名古屋・福岡を選んでみました。

次に項目を選びます
データの種類は「日別値」、過去の平均値との比較はなし、項目は「日平均気温」「日最高気温」「日最低気温」「降水量の日合計」「10分間降水量の日最大」「日照時間」「日平均風速」「日最大風速(風向)」「日最大瞬間風速(風向)」「日平均相対湿度」「日平均海面気圧」を選んでみました。

次に期間を選びます。
2014年1月1日~12月31日を選んでみたところ、データ量が多すぎるようです。
「日照時間」「日平均風速」「日最大風速(風向)」「日最大瞬間風速(風向)」「日平均相対湿度」は項目から削除しました。

これでCSVでダウンロードしました。

2.文字コードの変換

ダウンロードしたファイルは文字コードがSJISになっています。これをUTF-8に変換します。

3.データの読込みと生表示

データファイルのあるディレクトリに移動してからR言語を起動し、

としてdatasetオブジェクトにデータを読み込ませます。その際に、最初の2行(ダウンロード時刻と空行)は切り捨てます。「stringsAsFactors=FALSE」はこれがないと後で数値に変換する際におかしな変換がかかります。
(参考: http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1474978024)

読み込まれたデータをちょっとだけ見てみます。

実際にはもっとたくさん表示されます。

2列目の東京の平均気温だけを表示させてみます。

代わりに、最初の行に表示されたインデックス(?)を使って、「dataset$東京」でもアクセスできるようです。

どの名前をつければどの項目が切り出せるかは、str()でわかるようです。

実際のデータは4つ目の9.6からなので、そこからを表示させてみます。

これを別のオブジェクトに入れて、グラフ表示させてみます。

とすると、

Screenshot-3

としてグラフ表示されます。

もう少し頑張って、日付とタイトル等を入れてみます。

とすると、

Screenshot-4

となりました。

そのまま続けて、こんなことも簡単にできちゃいます。

Screenshot-5

同様に、

とすると、

Screenshot-6

という感じで仙台の2014年の平均海面気圧がグラフ表示されます。

使いこなせば強力な武器になるのは間違いなさそうです・・・が、なかなか大変かも。
(でも、習得すればExcelで毎回ポチポチとやるよりはずっと速そうですが・・・)

MicroPythonをビルドしてみた

MicroPythonをUbuntu上でビルドしてみました。

まあ、特に難しいところはなくビルドできちゃいました。

1.ソースを持ってきます

なんのことはなく、gitコマンドで持ってきます。

2.ビルドします

unixディレクトリに移動して、makeするだけです。

一部ヘッダがないと怒られてしまいました。調べてみると、libff-devパッケージに含まれるヘッダファイルのようです。

パッケージを追加して続けます。

気を取り直してmakeするとあっさり完了しました。

3.試しに動かしてみる

ドキュメント通りに動かしてみます。

quit()では終了できず、Ctrl-Dで終了させます。

4.テストにかけてみる

これもドキュメント通りに。

あっさり動きました。

SanDisk Ultra Fitを買ってみた

秋葉原でUSB3.0の小さなSanDiskブランドのUSBメモリを見かけたので買ってみました。

購入したのはSanDisk Ultra Fit 64GBで4000円弱だったでしょうか。

早速、ベンチマークしてみました。

まずは、USB2.0ポートに接続した場合です。

SanDiskUltraFit-HighSpeed

読み込みはHiSpeedの上限と思われるところに張り付いていますが、書き込みは不規則にスピードが変わるようです。

次に、USB3.0で接続した場合です。都合により、USB3.0のHUB経由での接続になります。

SanDiskUltraFit-SuperSpeed

読込速度は速くなりましたが、書き込みは相変わらずで、平均ではかえって遅くなってしまっています。

OSをこれからインストールしてみますが、気になるのはこのUSBメモリはかなり発熱することです。この小ささですので、熱で故障するんじゃないかと思います。5年保証とパッケージには書いてありますが、本当に5年も持つのか怪しい気がします。

FreescaleとNXPが合併だそうな

ネットで見かけた記事から。

双方とも世界的に大手の半導体ベンダー、米国FreescaleとオランダNXPが合併するそうです。

合併によってナンバーワンの自動車用半導体ベンダー、汎用MCUベンダーになるそうな。(何が、数量?出荷金額?という見方が気になりますが、まあ、いいでしょう)

プレスリリースでも触れられているけど、やはり時代は Mixed Signal なんですね。

まあ、最終製品としての機能性能向上を果たした上で、コストダウンのために部品点数・実装面積を減らしていこうとするとマイコンにデジタルはもちろんアナログ回路も混載するか、アナログ回路(パワー回路)にデジタル/マイコンを混載するかということになるので当然といえば当然なのですが。

一方で日本では・・・ねぇ・・・。