« 2015年2月1日 - 2015年2月7日 | トップページ | 2015年3月8日 - 2015年3月14日 »

2015年2月15日 - 2015年2月21日の1件の記事

2015年2月21日 (土)

RaspberryPi 2ではなくて、Intel Edisonを買う

 最近の超小型CPUボードの進歩の早さは眩暈(めまい)がするほどだ。ブームに先鞭をつけたBeagle Boardが出たころは、1万円の前半(それでも超安値)だったが、ここへきて高性能、低廉化が止まらない。最近のRaspberryPi2(以降RasPi2)に至っては、これまでと値段は全く変わらないのにCPUがいきなり4つになって性能は6倍だという。

 RasPi2は秋月電子などの大所(おおどころ)の電子部品店でも販売が始まり、何度も発売直後に売り切れたりして、ちょっとしたブームである。BeagleBoardのとき、「これはもうPCだから、電子工作としてはやらない」と宣言した当研究所としても、先代のRaspPiのときは、余りの安さにたまらず2台も買ってしまった。このRasPi2の出現を心穏やかに見守れる状況ではない。

 これくらいの速さになると、ちょっと前のノートPCクラスのパソコンの性能である。これが手のひらサイズになってしまったのだから、アプリケーションの可能性は想像を超えて限界が見えない。アマチュアだけでなく業界そのものも何となく浮き足立ってしまっているような感じがする。

 しかし、アマチュアにとっては、今回の飛躍的な性能向上は実はアプリケーション的には、かえって使いにくいマシンになっている。これだけ性能が向上しても、用途が簡単に見当たらないからだ。それに、この高性能を生かせるアプリはどうしても大がかりになり、自作は容易なことではない。

 当研究所に導入された2台のRaspiは、幸い就職先が見つかり(一台は、我が家の現役ファイルサーバー、もう一台は予備役だけれどWebカメラ)、無駄にならずにすんでいるが、最初に買った初代のBeagleBoardと、BeagleBoneBlackは、用途が決まらないまま、多くの雑誌付録基板と同様、部品箱の不良在庫(積み基板ともいう)になっている。P2216943

 こんなわけで、迷った挙句、タイトルのようにRasPi2ではなく別のCPUボード(ボードというよりカード)を買ってしまったのだが、その経緯はあとで詳しく説明するとして、まずは、ここ2週間の電子工作の作業記録から報告する。

表面実装のDC-DCコンバーター基板完成(2/9/2015)

 LEDペンライト2号機を作っていた時にご紹介した、DC-DCコンバーターチップのMNH7601である。効率が良いというのでAitendoから買ってきてブレッドボードに組み、動作を確認したのだが、ブレークアウト基板にしようとして、チップの変換基板が大きなスペースを占めるのが気になった。P2066881

 せっかく、SOT23-5という3ミリ四方の小さなチップなのに、変換基板はmilピッチで4×3ピンの大きさで無駄に大きい。心電計プロジェクトが片付いて手が空いたので、これまで考えていた小さく実装する方法を試してみることにした。

 その方法とは、以前、用もなく買ってあった秋月の表面実装(SMD)汎用基板を利用して作ることである。買ったとき店頭で店員に聞いたところでは、この表面実装のパッドのピッチは1ミリピッチで、mil規格のものとは合わないということだった。

 しかし、SOT23のピンピッチは、0.95ミリとインチ規格ではなく、この1ミリピッチにぴったり合う。実際にチップをこの基板に載せてみると、横3ピンくらいなら0.05ミリのずれは全く問題にならないで綺麗に配置された。

P2076901  早速、秋月でこのために買ってきた47μFのチップセラコンと、表面実装のインダクターを載せてレイアウトをしてみる。うーむ、変換基板のときより高さは間違いなく低くなるが、面積はそう減らないな。

 簡単に見えたが、ハンダ付けは結構難儀した。難しいのは短い配線である。試行錯誤でやっとコツがつかめた。それはUEW線を短かく切ってしまわないで、長いままハンダ付けして行って、そのあとで切る。短くなったときは必ず、ピンセットなどで固定し浮かさない。さもないと一旦ハンダが溶けたら短い線は必ずハンダごての方に持って行かれ作業は振出しに戻る。P2076907

 たいした配線量ではないので、ほどなく完成した。チップの横の使わないパッドはミニルーターで削り取ったが、特にその必要はない。ハンダブリッジはすぐわかる。気分的なものである。このあいだのLAN基板のこともあり、少し強めに部品を動かして固定を確認する。よし、大丈夫だ。

 通電した。白色LEDが眩しく点灯する。いやあ、こんなものでも動くと嬉しい。インダクターが大きすぎたため、専有面積だけでみると、以前作った写真のHT7750基板に負けている。まあ、自己満足の世界である。P2126927

焦電型人感センサーのトラブルシューティング(2/11/2015)
 次の工作は、前々から気になっていた階段照明の自動点灯装置の修理である。Tiny13で焦電型の赤外線人感センサーを制御し、人が近づくとスタンドに明かりがつき、何秒後かに自動で切れる。意外にも家族で人気になり、すっかり実用品として活躍している。

 ただ、こいつ高感度なのは良いが、冬にエアコンの暖房をつけると、つけた直後の微妙な温度上昇で誤動作が頻発する。以前、入力ピンの基準電圧を上げたり色々やったが、改善できなかった。

 誤動作と言っても、照明が少々無駄に点くだけでそれほどの実害はない。まあ人感センサーそのものも、それほど正確性があるわけでもないので(良く駐車場などで突然点いたりしている)、放置していたのだが、手が空いたので少し本格的に修理することにした。P2126917

 方策は考えてある。微妙な温度差で動くのは、オペアンプの増幅度が高すぎるのではないかと言う仮説である(現在2段で1350倍)。このためアンプの1段目に半固定の抵抗器を入れて増幅度を下げてみる。ところが回路図が見当たらない。こういうときのブログである。PCを立ち上げて記事一覧を検索する。すぐに回路図は見つかった。

 画面が階段の上部で見られるようにオシロを機器のそばに移動し、反応をチェックする。ここで反応する限界まで増幅度を下げれば、誤動作が一番少なるはずだ。その結果、400倍くらいまで下げても十分反応し、誤動作は明らかに少なくなった。

P2216951  しかし回数は少なくなったとはいえ、ゼロにはならない。今度は固定抵抗を交換してさらに200倍まで落とした。反応は余り変わらない。いつものように距離3メートルくらいの階段上部でも確実に反応する。さらに誤動作は少なくなったが完全にはなくせない。

 温度変化による変動は、オシロで見ていると、温度が上がり始めると、5秒周期くらいの緩い上下動が少しづつ始まり、何回かののちついには閾値にまで下がって、その後、元にもどり、暫くするとまた始まるという周期を繰り返している。P2216953

 そもそも人を感じるということは、こういう微妙な熱変化を連鎖反応的に増幅して動作に結びつけているわけで、これを否定するわけにはいかない。しばらくこれで様子を見てみよう。

Raspberry Pi 2を横目で見てあえてIntel Edisonを買う(2/14/2015)
 RaspberryPi2である。色々なところで話題になっている。秋月では、売り出し初日で売り切れたそうである。何しろ価格据え置きで性能6倍だ。使うあてがなくても食指が伸びる。

 欲しいと思う半面、余りみんなが騒ぐと、その反動でむくむくと反抗心が出てくるのが当研究所の所長の性格である。自慢ではないが、天邪鬼なことでは誰にも負けない(あ、やっぱり自慢しているか)。だいたいこのRasPi2、買って何かに使うあてが全くない。以前のBBBなども使いこなせず積み基板にしているのに。

 自問自答しながら、それでも休みの土曜、自然に足は秋葉原に向かった。当然のように秋月も覗いて見る。これがすごい混雑だ。人が入口付近に密集し店内に入れない。余りの人出に驚いてしまう。RasPi2が店頭で売られているからだけではなさそうである。休みの日の秋月はいつもこんな状態らしい。

 しかし、RasPi2は買わないことに決めている。替わりに手に取ったのが、IntelのEdisonである。入口の平積み台にRasPi2と同じところに並んで売られている。実は元からこれを買う気で秋葉原を訪れた。そもそもEdison自体も今買わなければならない理由はないのだが、こういうのは弾みである。

 RasPi2ではなくIntel Edisonにした理由は次の通りである。まず、RasPi2には今思いつくアプリケーションがない。ただ速いだけでは面白くない。しかし、Edisonは無線LAN(WiFi)が標準でついているので、そのままロボットや、RCカーなどに載せて交信ができる。ウェブカメラを車載して周囲を見るというのは洒落ているではないか。

 しかも消費電力がRasPiに比べれば半分以下だ。ここでRaspiとの比較をしている。RasPiについている有線LANは大飯ぐらいで、150mAくらい平気で消費する。勿論、LANインタフェースのないAタイプもあるが、それでも本体だけで400mAは喰う(Edisonは公称250mA程度)。

 RaspiにあるHDMI周りのビデオの装備がないのもEdisonを選ぶ理由だ。RasPiのビデオだって、CPUパワーがまだ不足なので、限られた範囲の動画はともかく、Xwindowなどのデスクトップは、思ったほどスムーズには動かない。

 これがRasPi2で早くなるとしても、こうした大画面映像を動かす必要性はあまり感じない。事実、これまでのRasPiの開発でXを使ったことは殆どなく、全部キャラクターベースで済んでいる。このあたりのEdisonの考え方は割り切っていて、最初からビデオインターフェースが省略され、とてもすっきりしている。P2196931

 Edisonの物理インターフェースは0.5ミリピッチの精密なソケットなので、ブレークアウト基板が必須だ。Arduinoインターフェースをサポートするものと、しない基板とが2種類ある。所長はArduinoはやらないので、迷わず、素のブレークアウトボードを選ぶ。秋月で¥8,480。

 これが高いか安いかは論議のあるところである。ただRasPiにハブやWiFiのUSBドングルをつけたりバッテリーの充電装置(あまり宣伝されていないけれど、このブレークアウト基板にはリチウム充電池を充電する回路がついている)を入れたりすれば余り差がなくなる。

 というか、Edisonのこの小ささは尋常ではない。手のひらサイズということだが、これは手のひらではなくてSDカードのサイズである。拳の中にすっぽり納まる。ブレークアウト基板もRasPiの半分くらいしかなく、フリスクのケースに入りそうである。どうしてこちらがブレークしないのか不思議なくらいだ。

IntelEdison意外に手強い。やっとWiFiでつながった(2/15/2015)
 これが、簡単に行かなかったのである。スイッチサイエンスのサイトが一番詳しかったのだが、どこかが省略されていて、カーネルの再構成がうまく行かない。USBの仮想ネットワークがつながらないので、どうしてもシェルが立ち上がらない。

それならとシリアルを探すが、UARTが動かない。もうひとつのUSBコネクターからの UARTであることに気づくまで時間がかかった(その後、USBのネットワークがつながらないのはPC側の設定ミスと判明した)。

 マイクロUSBケーブルを2本差しし、やっとrebootが効いて、カーネルが作り直された。WiFiのテストに入る。これは順調に自宅の無線LANにつながった。しかし、地下からなので、IEEE802.3A(5Ghz)はつながらず、IEEE802.3G(2.4Ghz)しかつながらなかった。それでもつながった時は感動した。

 こんな小さな基板でたいしたものである。ブレークアウト基板を入れても、Raspiの半分以下の小ささである。これが無線LANを経由して、HTTPサーバーまで見える。RaspiやBeagleBoardで味わった驚きを、ここでも味わう。本格的なLinuxマシンが手の中に隠れるサイズで動いている。

Ubuntu14.04の導入にはまる。マルチブートが出来ないのであせる(2/16/2015)
 Edisonのカーネル再構築のため、メインPCでUbuntuを久しぶりに更新した。現在のカーネルはUVCクラスのUSBカメラをサポートしていないというのでその準備である。

 簡単に行くと思ったが、Windowsと共存を図るマルチブートではまった。最終的にはうまく行ったのだが、このあたりは失敗すると、OS全部が動かなくなる。冷や汗ものの作業である。

 長期対応版のUbuntu14.04をインストールする。インストールイメージのDVDをダウンロードし、現在のWin7のCディスク(1テラもあった)を少し削るという(150Gばかり)一番楽なインストールコースを選ぶ。

 小1時間くらいでインストールが無事終わったので、気楽に再始動をかける。ところがマルチブートローダーGRUBが全く出ず、これまでどおりWindowsが立ち上がるだけだ。ええー、何でー?インストールDVDのLinuxを立ち上げて確かめるが、Ubuntu14.04はしっかり所定のところへインストールされている。うーむ、どうしてだ。暫く考えていて思い当たるところが見つかった。

 現在のマシンは、動いているWin7システムにこれまで使っていたXPのシステムディスクを接続してデータを回収した。いわばブートディスクが2つある状態で動いている。BIOSのブートシーケンスから、このディスクは除外してあるので、Win7は何事もなく動いているが、Linuxでは怪しい。

 BIOSにはそれ以外にも、ディスクドライブの順序の設定というのがあって、前のXPのディスクドライブは、昔のパラレルATA(IDE)なのでWin7のSATAより優先順位が高い。良くわからなくなったので、このXPディスクの電源と、インターフェースケーブルをはずして再度Ubuntuをインストールした。

 ところが、これでも動かないのである。インストールの方法は、既に入れたパーティションに上書きする方法である。これも順調に終了したのだが、相変わらずGRUBは見えず、何事もなかったかのようにWin7が立ち上がる。

 ライブDVDのUbuntuでGRUBだけインストールすれば動くのかもしれない。ウェブサイトには、ライブDVDの立ち上げの時、コマンドモードにするオプションがあって、ブートシーケンスをいじれるような裏技が紹介されていたが、こいつは何をやってもカーネルパニックで先に進まない。

 インストールは簡単になったが、中の事情がわからないので途方に暮れるだけである。GRUBだけの個別インストールなんかはなるべくやりたくない(LinuxどころかWinまでが立ち上がらなくなる危険がある)。P2216942

 暫くぶりのPCでのトラブルである。今、Ubuntuが動かなくても致命的なことにはならないが、どうも、すっきりしない。デュアルブートではなくVMWareなどにすることも考えたが、このまま引き下がるのもしゃくである。

 インストールの方法にはいくつか種類がある。これを調べているうちに、ふっと気が付いた。もしかして上書きインストールの場合は、GRUB部分は全く同じだというのでここの書き換えは省略しているのではないか。上書きではなく、パーティションを指定してのインストール法に切り替える。ピンポーン!これが当たりであった。

 無事にGRUBの画面が表示され、やっとのことで、ディスクからUbuntuが立ち上がった。心配していた日本語環境も、インストール版はしっかりついていた(ライブ版では日本語入力不可)。

Edisonのカーネルビルドで一苦労。何とUVCは既についていた(2/20/2015)
 いよいよ目的の、Edisonカーネルの再構築である。ソースコードをダウンロードして最初からのビルドに挑戦する。当然性能の高いPCのUbuntuでコンパイルする。クロスビルドである。

 沢山の先人の方々が、この作業に挑戦しているので情報にはことかかない。どこのページを参考にするか迷うくらいだ。Edisonで映像配信をするためにカーネルのリコンパイルという、こちらがこれからやろうとすることと全く同じ目的のタイトルに惹かれて、まずはここを参考にする

 しかし、手順が複雑でなかなか先に進まない。数時間かかって、2800余りのステップの1937で挫折した。どうしてもひとつのエラーが抜けずに(bin/ubwebsockets-test-server近辺)、先に進まない。ここ以外にもいくつか違う手順があるようなのでここは諦める。

 次のサイトのほうは、動かしてみると、ここでのステップ数は400足らずだった。エラーは幸い出ず、警告1件だけで、ちょうど50分で終了した。いやあ、なんで同じ再構築でこんなにやり方が違うのだろう。

 勢い込んで、カーネル再構築のメニューmenuconfigを立ち上げて驚いた。もう現在のカーネルで、USBのUVCクラスはサポートされている。他にも色々なカメラのドライバーのチェック欄があるが、UVCクラスならこういうドライバーはいらない。UVCのサポートだけで動くはずである。

P2196929  ええーこれはどうしたことか。これらのサイトの記事が書かれたころは、カーネルはサポートしていなかったのが、最近になって入ったというのか。そう言えば、最初のスイッチサイエンスのインストール手順で、最新のファームをダウンロードして更新した。

 確かに、RasPiなどに較べれば情報は山ほどあっても、Linux周辺の基礎知識がないとまともに動かすまでのハードルが高い。EdisonのOS(Yocto Linux)は発表当初のバージョンが古くバグがらみだったということで評判を落としたと聞いている。このあたりがいまいちEdisonが盛り上がらない要因のひとつかもしれない。

 さらにウェブを検索する。キーワードを換えて行くと、続々Edisonがらみのページが見つかる。おお、usbのサポート状況を調べるコマンドがあった(lsusb)。ここのサイトを参考に、EdisonのOTGコネクターに、手持ちのUSBディバイスをつないでテストしてみる。ふむ、大丈夫だ。USBメモリーなどが問題なく認識され動く。さあ、それならUVCカメラはどうだ。

P2206934  どきどきしながら、UVCカメラをRaspiのWebカメラの雲台からはずし、Edisonに接続する。lsusbを入れてみる。な、なんと、なんと、全く問題なく、出力メッセージにUSBカメラの型番、LogitechのC270が表示された。/dev/video0もしっかり作られている。

 まだ動かせないけれど、ここまで認識すればもう大丈夫だ。何ということだ。あれだけ苦労したカーネル再構築は不要となった。まあ、貴重な経験をしたと考えることにしよう。それにいずれはやらねばならない作業だ。

| | コメント (0) | トラックバック (0)

« 2015年2月1日 - 2015年2月7日 | トップページ | 2015年3月8日 - 2015年3月14日 »