ESP8266関連

ESP8266関連の情報アップデートです。

1.FCCの認証済みモジュールESP-12、ESP-07

これまでは基板単体のESP-01というモジュールしかなかったようなのですが、無線部分がシールドケースに入ったESP-12というモジュールが出始めているようです。このモジュールのシールドケースにはWiFiのロゴマークとFCCのロゴマークが入っているので、きちんとした手順を踏んでいるのであれば認証をとっている・・・ということなのではないかと思います。(中国なのでインチキや偽者の可能性は否定しきれないですが・・・)

また、ESP-12はプリントパターンによるアンテナですが、チップアンテナを搭載したESP-07というのもあるようです。こちらもWiFiとFCCのロゴマークが入っています。

2.Webサイト「www.esp8266.com」登場

ESP8266の掲示板サイト www.esp8266.com ができていました。
掲示板の維持のため寄付を求めているようです。$25の寄付でESP-01が3個、$35の寄付でESPー01が5個もらえるそうです。しばらく前に見たときはESP-01が$5/個くらいだったので、$10が送料と寄付といった算盤勘定だったのでしょうか。

3.モジュールの価格が安くなった

ESP-12の方が$3/個くらいと安価になっています。ベンダーがWiFiのロゴとFCCの認証を取って本気出して製造し始めた、ということでしょうか。
残念ながら技適マークはないので、結局日本では使えないですが・・・。

米国ではさらに流行りそうですね。

STM32F401で遊んでみる(2)

3.ファームウェアのアップデート・・・はパスする

「ST Nucleo F401RE」のページの真ん中あたりに、「ST-LINK/V2-1 Firmware」という見出しの段落があります。そこをみると、「Firmware update required」という記載になっているので、デバッガのファームウェアアップデートが必要なことがわかります。

その説明の中のリンクをクリックしてファームウェアをアップデートしてみます・・・・が、アップデートにあたってはWindows環境が必要なようです。
(ドライバをインストールして、exeファイルを実行しろ、ということみたいです)

・・・・後ほどやってみることにします。

4.サンプルプログラムを確認してみる

自分のアカウント名が右上に表示されていますので、そこをクリックすると自分のホーム画面に遷移するようです。
その画面の右側に自分が所有するボードが「(ユーザ名)’s Platforms」として表示されるので、これをクリックします。
するとボードの仕様などの一覧と、右側に「Example programs」としてサンプルプログラムが表示されます。

この中から、「nucleo_blink_led」をクリックしてみます。
ソースコードは「main.cpp」と「mbed.bld」の2つのファイルからなるようです。(クリックすれば中身が見えます)

右側に「Import this program」というボタンがありますので、これを押してみると、IDE(統合開発環境)っぽい画面のタブが追加されます。プロジェクトをImportする際の名前を聞いてきますが、デフォルトで名前が入っているのでそのまま「Import」を押してみます。

自分のワークスペースにソースコードが取り込まれたようです。

Screenshot-1

STM32F401で遊んでみる(1)

以前、『mbedボードについてわからないから教えてくれ~』という話があったのですが、その時点で『mbedは触ったことないからわからないよ~』と言わざるをえませんでした。

で、『mbedって何ぞや?』というのを調べてみたところ、

  • どうやらWebだけで開発環境が完結するものらしい
  • 秋月でも安価なmbed対応のボードがあるっぽい

ということがわかり、秋月に立ち寄った際に購入したのがNUCLEO-F401REです。秋月で扱っている安価なSM Microのmbedボードは全て1,500円なのですが、その中で一番性能が高そうなものを選んでみました。

  • Cortex-M4 84MHz
  • Flash 512KB
  • SRAM 96KB
  • D/Aコンバータがないものの周辺いろいろ

ということで、お試しする分には何も問題ないはずです。

正月休み・・・ということで、元日からトライしてみることにします。テスト環境は LinuxMint13 64bit 環境、ブラウザは Google Chrome でやってみます。

1.とにかくつないでみる

とにかくMini-USBのケーブルでホストとつないでみると、

  • デバッガ側(基板のUSBコネクタ側)のLEDが赤点灯
  • ターゲットボード側の赤LEDが点灯
  • ターゲットボード側の緑LEDが高速で点滅
  • USBマスストレージとして認識され、ドライブ内にmbed.htmというファイルが存在

という状態になりました。このmbed.htmというファイルをGoogle Chromeで開いてみると、mbedのサイトへのログインおよびサインアップのサイトが開きました。

2.サインアップしてみる

とにかくSignupを押してユーザー登録してみます。

すると、『以前にユーザー登録をしたことがあるか(Have you ever signed up on developer.mbed.org before?)』と問われます。

もちろん初めてですので、「いいえ、以前アカウントを作ったことはありません(No, I haven’t created an acount before)」を押します。

  • メールアドレス
  • ユーザー名
  • パスワード
  • 姓名

を入れて、「Signup」を押すと、今回購入したボードがデカデカと表示され、関連する情報がズラズラと表示されます。

  • ボードの写真
  • ボードのスペック
  • 基板上の端子の機能説明(Arduino互換コネクタとピンヘッダのそれぞれ)
  • サポートされているシールドの一覧
    (イーサネットやWiFi、Bluetooth、NFC、XBeeなどの近距離ネットワークに加え、GPRSもシールドで対応しているようです。日本ではGPRSは意味がありませんが・・・)

あわせて、登録したメールアドレスに確認メールが届くので、その中のずらずらと長いHTTPリンクをクリックしてログインし直すと、メールアドレスが確認できた旨(ここだけ日本語で)表示されます。

MAX10評価ボードが欲しくなった

たまたまネットを彷徨っていたらMOUSERでMAX10の評価ボードを見かけました。

A/Dコンバータを内蔵していて、Arduinoのシールドが搭載可能。ロジック規模は8000LEのものを搭載しているようなので、NiosIIプロセッサも余裕で入るでしょう。(評価ボードの詳細はここに記載があります)

NiosIIはgccでサポートされていますから、『NiosII版Arduino類似IDE』+『高速処理が必要なところはFPGA内にハードウェアマクロで記述』+『もちろんA/Dは使用可能』という環境が登場するかもしれません。(本家ArduinoにもないD/AもPWMではなくデルタシグマDAを実装すれば実現できてしまいますし、回路規模さえ入れば必要なだけ入れられますからねぇ・・)

・・・おもわずポチりそうになりましたが、ALTERAの開発ツールのページを見ると、他にもいくつか安価な評価キットがあるようなのでしばらく様子見することにします。(その前に、DE0を使いこなせよ、という話が・・)

それにしても、ある程度の規模までの用途であればFPGA1個に全てが入っていってしまう感じですね。かつての電卓戦争を思い出します。こうして少しずつハードウェアとソフトウェアの境界がなくなっていくのでしょう。

<追伸>
FPGA上にArduinoに似た環境を作る試みはすでにXilinxのFPGAで行われているようです。こちらはAVR互換コアと32bitコアを96MHzで駆動するZPUinoという環境の2種類があるようです。

Broadcom WICED Sense Bluetooth Smart Sensor 開発キット

MOUSERを見ていたら、Broadcomの開発キットが目に止まりました。

ST MicroelectoronicsのMEMSセンサを5つ載せたBluetoothセンサータグの開発キットで、IoTをターゲットにしているようです。
搭載しているセンサは

  • ジャイロスコープ
  • 加速度センサ
  • 電子コンパス
  • 大気圧センサ
  • 温湿度センサ

のようです。iPhone用のサンプルアプリケーションとSDKがついてくるようです。価格はMOUSERで2643円と安価ですが、iOS系のデバイスは何も持ってないので見送ることにしました。

今ひとつ用途が思いつかないところではありますが、アウトドアスポーツやモータースポーツの道具に取り付けたりすると何か面白いことができるかもしれないですね。

Bluetoothではなくもっと距離の伸びる920MHz帯とかになれば、いろんな用途がありそうな気がします。

それにしても海外の半導体ベンダはこういうキット(SDK)を出すのが上手いです。『ハードウェア・ファームウェア設計の雛形まで用意するから、お客さん(システムベンダ、etc)はエンドユーザーに何を提供するかに注力してくださいね。モノ作りは雛形をちょっと手直しして中国に丸投げすればいいっしょ。』というメッセージが伝わってきます。言い換えると、『お客さんは自分の顧客価値の向上に注力してください。下回りは任せてください。』というスタンスです。そりゃあ、かつての日本の半導体ベンダの「デバイスは作ったから後は勝手にどうぞ」というのと比較するとどっちが選ばれるかは明白ですね。

ESP8266を使ったWiFiランプ

またHack a Dayの記事からです。

面白格安WiFiチップESP8266を使ったWiFiランプの記事がHack a Dayに載っていたので紹介します。

ATmega88/168/328をホストプロセッサとしてUARTでESP8266が載ったWiFiモジュールを制御する、というオーソドックスなものなのですが、この記事ですごいのは、回路図入力から完成まで約6時間(目標5時間)という早業(SpeedRun)であることです。

しかも、自分で生基板から感光基板を作ってエッチング、オーブントースターを使ってリフローハンダ付けで部品搭載するという電子工作としての過程がすごすぎます。

作業開始が17:43

  • KiCADで回路図入力&ネットリスト出力
  • レイアウト&パターン設計(片面基板)

ここまでで19:00(1時間17分経過)

  • 画像編集ソフトで表裏反転&修正して、京セラのレーザープリンタでOHPシートに印刷して基板パターン原稿を作成
  • 薄い基板をカット
  • 表面をスチールウールで磨いて洗浄&乾燥
  • 基板を水で濡らしてからRistonというフィルムを基板表面に貼る
  • 基板とRistonを紙に挟んでラミネータを通し、Ristonを基板に融着?させる
  • 基板サイズに切り出す

ここまでで19:30(1時間47分経過)

  • OHPフィルム(基板パターン原稿)を基板サイズに切り出す
  • Ristonの表面の保護フィルムを剥がす
  • 3-in-1オイルを基板表面にたらしてOHPフィルムを密着させる
  • Ristonフィルムを感光させる
  • 原稿(OHPフィルム)を剥がす
  • Baking Soda(重曹のようです)水溶液で現像する
    (現像の具合を見ながら作業するもののようです。表面をゴム手袋をした指でかなり擦っています。)
  • 塩化鉄(塩化第2鉄ですね)でエッチング
    (やはり基板表面をゴム手袋をした指で擦っています)
  • アセトンで残ったレジスト(Ristonフィルムの未感光部分)を落として基板が完成

ここまでで20:37(2時間54分経過)

  • 基板のパッドにクリーム半田を塗って、部品を置く
  • オーブントースターでリフロー
    (低融点半田の方が簡単だよ、とのこと)
  • ハンダごてと半田吸い取り器でハンダ付け修正
    (全部手載せしても変わらないような・・・)
  • AVR側の動作確認後、ESP8266が載ったモジュールのTX/RXを接続
  • デモプログラムか何かをベースにソースコード作成
  • 書き込みエラーに悩む?
  • telnetにてESP8266と接続するテストコードが完成

ここまでで21:23(3時間40分経過)

  • パワーLEDにPowerMOS FETを直付け、点灯テスト

ここまでで22:15(4時間32分経過)

  • パワーLED4個を直列接続。手持ちの12VのACアダプタで駆動できるよう抵抗値を調整。電流値は86mA。
  • 元のスタンドを分解し、組み込む
    (LEDの結線を済ませてから、ランプの反射板に通し忘れたことに気づいたようです)
  • PowerMOS FET周りで悩んだ模様
    (点灯コマンドなしに点灯してしまったようです)
  • 電流制限抵抗を後から追加?

ここまでで23:09(5時間26分経過)

  • ソースコードを修正しつつデバッグ?
  • どうやらPWMで明るさを調整しようとしている模様
  • 最後に調光機能を追加して23:34(5時間53分経過)に完成

途中に出てくるRistonというのはデュポン社のドライフィルムフォトレジストのようです。一般には感光基板は生基板に感光材を塗ったもの・・・とされていると思いますが、実際には感光フィルムを貼り付けて作るのですね。
それにしても、作者の環境ではこんなものが電子工作の範疇で手に入るんでしょうか?
羨ましい限りです。

Covia FLEAZ F4Sを買ってみた

またドロイドくん端末を買ってしまいました。

StarQ5001が予想外にでかくて結局半ばファブレット状態なのでもっと小さなものを・・・・ということで、AmazonでCovia FLEAZ F4Sを買ってみました。

これにIIJmioのSMS付きデータSIM(標準サイズ)を挿して使ってみています。なお、自分はゲームなどは一切せず、バリバリにSMSとかLINEとか使い倒すわけでもありません。(というか、LINEはアカウントもありません)

他の持っている端末(XperiaA、StarQ5001、IODESU)と比較しながらのファーストインプレッションです。

外観

まず、なにより小さく軽く薄いです。その分、強度的に不安がないでもないです。自分は小さい端末を鍵なんかも一緒にポケットに突っ込みたいところなので、「安くて頑丈な端末」が欲しいのです。そういう意味ではIODESUの無骨さは良かったんですけどね。まあ、そういう変な使い方をしなければ問題ないと思います。(あ、Gパンの後ろポケットに耐えられるかはわかりません)
質感は若干プラスチッキーですが、よく見ると1年半前に買ったXperiaAと表面の仕上げはよく似ています。ツルツル仕上げなので油断すると落としそうです。(個人的にはツルツルではなく滑りにくいデザイン・仕上げにして欲しかった)

動作

Android4.4(KitKat)のおかげか動作は軽いです。ただしゲームなどはしていませんので、ゲームなどでどうかはわかりません。

画面

画面はちょっと青っぽいですが解像度が高いので1画面の情報量は十分ですし、十分綺麗です。一方で、画面サイズは小さいので目の悪い人には少々キツイかもしれません。(大きな文字に設定すれば済む話ですが)
あと、画面下のホームキーやメニュー、戻るなどのキーの照明がありません。暗いところでは慣れるまでは扱いにくいかもしれません。

GPS

GPSは少し使っただけですが初期の測位が遅い気がします。もう少し使い込んでみないとわからないところでしょうが、XperiaA、StarQ5001と比較すると遅いと思います。GPSの電波が普通に届くところと思われるところでは、電源投入直後でも別に遅くなかったです。むしろ早かったくらい。本当に初めてGPSを使ったときの遅さは何だったんでしょう?。あと、電子コンパスも入ってないっぽいです。

カメラ

カメラはパンフォーカス(固定焦点)ですので、接写はピンぼけになります。よってバーコードやQRコードの読み取りなどは辛いと思います。当然シャッタースピードも遅いので、ローリングシャッター現象が出ます。暗いところも弱いはずですが、昔のパンフォーカスのカメラ素子に比べると健闘しています。ということで、カメラはXperiaA、StarQ5001と比較すると割り切られています。

バッテリー

バッテリーはサイズ相応に減ります。そういう意味でもIODESUの巨大バッテリーは魅力的でした。僅かな期間でしたがIODESUを使っていた時期は「全然電池が減らない」という感じでした。

その他

あと、細かいところですが、こんなところが気になりました・・・。

  • MicroUSBの端子が挿しにくいです。気をつけて丁寧に挿さないと何度も挿抜しているうちに破損しそうな気がします。(多分、挿しにくいからと言って力任せに挿すと壊れる気がします)
  • ディスプレイの保護フィルムが付いているんですが、これが微妙に画面サイズよりも大きいです。よって、きちんと貼れません。自分は下の方をハサミでわずかにカットして貼りました。
  • 海外端末が一般にそうなのですが、こいつもストラップホールがありません。ツルツルの表面と相まって、何かの拍子に落として失くしそう。
  • Google Nowランチャーがなぜかうまく入らない。何度も試していると入るのだけど、なぜ入ったのかよくわからない。
  • タッチ時のバイブレータモータの音が少しうるさい&長い。もっと一瞬の駆動でいいような気がするのだけど。

まとめ

まあ、文句ばっかり書いてしまいましたが、なにより約1万円という安価端末であることを考えると、割り切りポイント(具体的にはカメラ・・・ですね)をきちんと理解していれば実用に十分耐えるコスパの高い端末だと思います。カメラと物理的なサイズ以外はXperiaAと比較してもそれほど遜色なく、むしろ動作の軽さは上と言ってもいいような気がします。(ROMやRAMは少なめなのでバリバリ動かすと不足するかもしれません。バリバリ動かすと電池容量も不足するでしょうけど。)

自分は仕事のスケジュール管理(Googleカレンダー)とメモ用(Google Keep)として使っていこうと思います。

UbuntuにUbuntuからリモートデスクトップ接続する

Ubuntu14.04(32bit)からUbuntu14.04(64bit)にリモートデスクトップ接続してみました。

1.サーバ側(接続される側)の設定

ググって調べると、サーバ側はgnomeでは接続できないようです。そこで、LXDEデスクトップ環境を含めた必要なソフトウェアをインストールします。

Ubuntuソフトウェアセンターで以下のものをインストールします。

  • LXDE(the Lightweight X11 Desktop Environment)
  • xrdp(Remote Desktop Protocol(RDP) server)

インストールが終わったら、コンソールで以下のように入力して、.xsessionファイルを作成します。

$ echo lxsession -s LXDE -e LXDE > ~/.xsession
$ cat .xsession
lxsession -s LXDE -e LXDE
$ sudo service xrdp restart
 * Stopping RDP Session manager [ OK ] 
 * Starting Remote Desktop Protocol server [ OK ] 
$

デフォルトでは日本語キーボードに対応したキーマップファイルがないので、キーマップファイルを生成する。

$ cd /etc/xrdp
$ ls
km-0407.ini km-040c.ini km-0419.ini rsakeys.ini startwm.sh
km-0409.ini km-0410.ini km-041d.ini sesman.ini xrdp.ini
$ sudo xrdp-genkeymap km-0411.ini
$ ls
km-0407.ini km-040c.ini km-0411.ini km-041d.ini sesman.ini xrdp.ini
km-0409.ini km-0410.ini km-0419.ini rsakeys.ini startwm.sh
$

2.クライアント側(接続する側=キーボード・ディスプレイを操作する側)の設定

Dashで「Remina」を検索し、リモートデスクトップクライアントであるReminaを起動する。

「新規リモートデスクトップ作成」を押して、新しいプロファイルを作成する。

  • 名前は適当に(接続先のホスト名など)つける
  • プロトコルは「RDP」を選択
  • 基本設定のサーバーは接続先のアドレスだが、avahiが入っていてローカルネットワークなのであれば「ホスト名.local」でOK。たとえば、「hogehoge.local」など。
  • ユーザー名は接続先でのユーザー名を入れる(入れなくてもいけるのかも?)
  • 色数は24bppを選択
  • 高度な設定は特にいじらず。

「設定画面を開く」アイコンを押して、設定を行う。

  • 「RDP」のタブでキーボードレイアウトに「00000411 – Japanese」を選択する。
    自動のままで「クライアントのキーボードマッピングを使用する」をチェックしてみたが、自動にはならなかった。

これでプロファイルをダブルクリックすると、接続するのでパスワードを入れてしばらく待つとLXDEでログインできました。

・・・・が、いくつか問題が出ました。

  1. 日本語入力ができない。ドキュメント作成する上では致命的かも。
  2. 接続先でもローカルログインすると、DISPLAYの区別がされないみたい。ローカルログインして起動したブラウザがリモート側にウインドウを開いたりしてしまう。

うーむ、イマイチですね。昔のtwmの頃のほうがリモート接続での扱いは楽だったような気がします。(もっとも、当時に比べるとずっと便利な機能が山ほどありますけどね)

Ubuntuを使いやすく設定してみた

Ubuntu10.04から12.04になるときにUnityがデフォルトになった際にLinuxMintを試して以来、ずっとLinuxMintを使ってきたのですが、いろんなツールをインストールしたり、人に説明したりする分には、やはりUbuntuに軍配が上がります。それでUSB-HDDにインストールして試してみたりしていたのですが、それなりに自分なりのノウハウも溜まってきました。そこで、しばらくはUbuntuに戻ってみようかと思います。

Unityが鬱陶しかったUbuntuですが、ある程度コツを押さえればちゃんと使えます。
(ちなみに自分は日本語Remix版を使ってます)

1.検索の際にオンラインを検索しないようにする

最近のUbuntuが重く感じる最大の理由はDashでの検索時にオンライン検索を行っている待ち時間のようです。そこで、検索時にオンライン検索をしないように設定変更します。
左側に並んだLauncherのアイコンのの中から歯車とスパナの絵が描かれたアイコンをクリックし、システム設定を開きます。その中の「セキュリティとプライバシー」をクリックし、「検索」の「オンライン結果の検索結果を含める」を「オフ」にします。これでDashのアイコンで何かを入力した時にオンライン検索をしなくなるようなので、軽快になります。

※ついでに、プライバシー関係の設定も行ってしまうといいと思います。

2.システム時計が狂うのを直す

/etc/default/rcS の中の「UTC=yes」を「UTC=no」に修正

3.synapticのインストール

Ubuntuにはsynapticパッケージマネージャがデフォルトではインストールされていませんので、インストールします。
Dashで「ソフトウェア」と入力し、「ソフトウェアセンター」を探して起動します。
検索ウインドウにて「synaptic」と入力して、「synapticパッケージマネージャ」を選択してインストールします。

4.Ubuntu restricted extrasのインストール

Ubuntuソフトウェアセンターから「Ubuntu restricted extras」を検索してインストール。途中でライセンスに同意するウインドウがソフトウェアセンターの下に表示されるので、時々チェックしながら先に進めます。

5.いろいろインストール

DashからSynapticを起動し、いろいろインストールします。
・GIMP
・clamtk
・jhead

6.Launcherのアイコンを小さくする

左側に並んだLanucherのアイコンが妙にでかくて素人っぽいのが気に入りません。これは、「システム設定(歯車とスパナの絵が描かれたアイコン)」で「外観」をクリックすると、下の方に「Launcherアイコンのサイズ」という設定がありますので、そこでサイズを変更することができます。自分は32に設定しています。

ちなみにウインドウメニューがウインドウのタイトルバーに表示されずに気持ち悪いですが、こちらは同じく「外観」の中の「挙動」のタブの中に「ウインドウのメニューを表示」という設定項目があります。

こんなところでしょうか。あとはChromeとかもインストールしますが、特に難しいことはないので・・・。

ESP8266はIoT界のPICマイコンになれるか?

最近、無線LANコントローラチップESP8266が盛り上がってきているように感じます。ESP8266の概要については以前こちらでざっと記事に書いたのでそっちを参照してもらうとして、とにかく面白そうです。

  1. なんと言っても安い。モジュール1個で$5程度。前回の記事の時は500円位だったのが、今では600円になってしまいましたが、それでも安い。
  2. お手軽にUART経由でATコマンドで制御することができる。つまり、Arduinoやその他のマイコンと簡単につながる。
  3. さらにSDKが用意されていて、内蔵CPUのプログラムの開発ができる。GPIOにつないだデバイスを無線LAN経由で外付けチップ無しで制御できる。

といったところでしょうか。しかも、今日は3のSDKを使ったオリジナルプログラムの作り方についてHackadayで記事になっているのを見つけてしまいました。開発環境はLinuxで必要なソフトウェアはgitにあるようです。しかも、そのセットアップの方法とサンプルプログラムのビルドまでの手順をXtensa用gccツールチェーンのセットアップ方法も含めてビデオで細かく解説してくれています。

もうここまでくると、もう無線LAN/IoTの世界のPICマイコンになりそうな勢いなんではないかと思ってしまいます。

技適の問題さえなければすぐにでもポチりたいところなのですがねぇ・・・。