カテゴリー「Raspberry」の23件の記事

2017年6月12日 (月)

RaspberryPi3の電源問題はOSの不具合だった

 しつこいことでは誰にも負けない当研究所の所長が、やっとのことでRaspberryPi3(以降Raspi3)が立ち上がらない問題を解決することができた。

 研究所の工作テーマはESP32に移っていたが、定点カメラを目指したRaspi3の初期ブートが失敗するトラブルは解決されていない。パワーオンリセットが効かないのである。USB機器をはずして立ち上げると大体うまく行くが、USBをつないだまま(もちろんセルフパワーHUBで電源供給済み)だと、ほぼ立ち上がらない。Dsc01131_1 質(たち)の悪いことに、一旦、ブートに成功すると暫くは問題なく動く。しかし半日おいておくと、立ち上がらなくなる。一番先に疑われたのは電源である。いくつかのアダプターを買ってきたり、ケーブルを吟味したり、HUBを換えたりしたが、はっきりとした改善は見られない。

 オシロを使って立ち上がりの電圧の波形を何とかとることができた。立ち上がらない時と、正常に動いた時の双方の波形がとれた。しかしどちらも似たような波形だ。確かに0.5msくらいのところで大電流が流れたらしいディップがあるが、正常に立ち上がる時も同じようなものだ。電源が原因ではないような気がする。Dsc01133_1

もう一台RaspberryPi3を買う(5/24/2017)
 次に疑うべきは、Raspiのハードそのものである。以前、Edisonで本体がおかしくなって熱暴走したこともある。もしかしたらハードがやられているのかもしれない。今、Raspi3は一台しかないので確認はできない。これはもう一台買うしかないか。

 予備ということにして(使うあてがないのがつらい)Raspi3をアマゾンで発注する。ケースとヒートシンク付きで¥5980と安かったのでつい手が出た。数日で届く。便利な時代になったものだ。

 まずは、この新しいRaspiの動作確認である。システムディスクの16GBのSDカードを用意し、NOOBS一式をダウンロードする。OSのバージョンは2.1.0から2.4.0に上がっていた。 

 ふーむ、zipファイルが200MB以上増えている。どんどん進化しているようだ。インストールは順調に進みトラブルなくOSは展開された。電源を入れる。全く問題ない。順調に立ち上がる。少なくとも電源ではない。電源不足を示す画面の稲妻マークも全く表示されない。快調だ。

Dsc01137 やっぱり最初のRaspi3が原因だったのか。いや、まだ、カメラをつないでいない。しかもOSが違う。今のOS(2.4.0)はまだ裸の状態で、これからSAMBAや、動体検知motion、日本語入力、固定IPアドレス化などを加えていかないとトラブルの起きた状況にならない。

 加えた変更のうち、初期化のトラブルに関係しそうな要素は、何といってもカメラモジュールの接続だ。ハードの初期化でループしてしまえばブートは先に行かない。まずトラブルの起きた元のRaspi3にこの2.4.0の新しいシステムディスクを差し替えて動かしてみる。

結局、OSを最新版にして落着(5/28/2017)
 やっぱり何の問題もなく立ち上がった。いやいや、まだカメラモジュールをenableにしていない。raspi-configでカメラモジュールをenableにして立ち上げ直す。よーし、素直にブートが始まった。Raspi本体が悪くないことは確実だ。

 最後の確認である。カメラの動作確認だ。motionはまだ入れていないので、raspistillなどの専用コマンドをあせる手でコンソールに入力する。おめでとうございます。ランプがついて写真がとれた。間違いなくOSの問題である。

 これでトラブルの原因がはっきりした。2.1.0でのカメラモジュールの接続はブートの時にハングすることがあるのだ。このあと、元の2.1.0のOSに戻し、再現を確認した後、raspi-configでカメラをdisableにすると、カメラをつけていてもトラブルが解消することを確かめた。

 このハングが何の原因で起きるのかはわからない。少なくともインストール直後は起きていなかったから、カメラモジュールだけの問題ではなさそうである。このあと入れたアプリと何らかの競合が起きた可能性が高い。

 何が原因にせよ、少なくとも2.4.0で電源トラブルは解消した。というので、2.4.0にこれまでのアプリをインストールし直せば問題は解決する。せっせとNOOBS2.4.0の新しいバージョンにこれまでのアプリをインストールし始めた。

 SAMBAサーバーや、Motion動体検知パッケージ、日本語入力など、入れるたびに初期化の状況を確かめる。2.4.0では最終的にmotionを動かしても全く問題は起きなかった。

 やれやれ、長い道のりだったが、ここ暫く当研究所を悩ませたブートの不調は、OSの更新で解決することになった。もっと早く、カメラをdisableにしてテストしておけば、もう一台Raspi3を買わずにすんだのだが、まあ、これは結果論だろう。

今度はSAMBAドライブが不調(5/29/2017)
 そうこうするうちにまたトラブル発生である。SAMBAのディスクにしていた昔のLet'sNoteの2.5インチIDEドライブがおかしなことになった。立ち上がり時に、$LogFile is not clean. mount in Windows....のエラーが出て、書き込みが出来なくなった。Windowsでマウントし直しエラーをリセットせよとのことである。

 ファイルの中身は普通に見ることができる。SAMBAを通すとWindowsからも正常に見えるが、書き込みはこちらからもできない。それではというので、Win10の方にUSB経由で直接持ち込んで、エクスプローラーで見たら、何とドライブは認識したが「この場所にファイルはありません」という完全拒否である。

 Windowsに昔からあるディスク管理ユーティリティで調べる。コントロールパネルの奥にあるこのユーティリティ(このネストの深さは何だ。このソフトはサードパーティ製で、MSとしては何としてもいじらせたくないらしい)でドライブを見ると、ちゃんと正常にディスクは見える。  
 しかし、ディスクの形式がRAW(生とでも訳すか)となっているのが気になる。このRAWをキーワードにウェブを検索すると、おお、良かった。沢山解決法があるようだ。要するに、何らかのタイミングでドライブのブートレコードのディスクの種類を規定するコードが誤って変更されるとこういう状態になるらしい。

Windowsのフリーソフトで解決(6/1/2017)
解決法の中から、まず、TestDiskを選ぶ。このユーティリティは、LinuxやWindowsでも動くフリーソフトで一番評判が良さそうなソフトだ。早速ダウンロードした。ガイドするサイトも沢山ある。簡単に治りそうに見えたが、これが結構難しい。

 やれることが沢山ありすぎて迷うのだ。日本語化されていないのはともかく、何がおかしくなっているのかわからないので下手にいじることができない。このあたりは、一瞬の動作で、すべてのファイルを失う危険がある。良く納得してからでないと作業は出来ない。

 要するに、「今、自分が何をやっているかを理解していないときは手を出してはいけない」というやつである。この「RAW」という文言が何を意味するのか具体的にわからないからである。迷った挙句、他にも方法がありそうなのでこのユーティリティの作業を諦めた。ウェブで検索を続ける。

 その結果、昔、所長も使ったことのある商用ソフトAcronisの無償試用ソフト(Acronis Disk Director)が良さそうなので、これで修復することにした。サイトに行き、慎重に無償版をダウンロードする。こういうソフトのページには、宣伝用の全く違うソフトのダウンロードボタンが隠れていることが多いので気を付けないといけない。Ws000008

 何とか目的のソフトをダウンロードして、早速試してみた。このサイトが親切だ。
画面がわかりやすい。ガイドに従って、未初期化をRAWと読み替え作業を進める。順調に処理が進んで、そう時間もかからず完了した。RAWはNTFSに変わる。

 念のため、Windowsを再起動する。よーし、正常なドライブに戻った。書き込めるか。中に入っているテキストファイルを呼び出し文字を書き込んで保存する。良いぞ、問題なく変更された。このディスクの中に入っているファイルで失って困るものはないが、正常に戻ったことが嬉しい。

 SAMBAにつなぎなおし、read/write可能なことを確かめる。昔、知人にPCで何をするでもないのに環境整備だけに異常に熱心な人がいた。自分も今度の入れ込みぶりはこの系統かなと苦笑いする。今のところSAMBAで使っているのはmotionの記録ファイルだけである。

ACアダプターの負荷特性を調べると驚くべきことが(6/2/2017)
 Raspiの電源問題の後日談である。Raspi3の立ち上がりの不安定さを解消するため、めたらやたらDC5Vの安定化電源ACアダプターを買い込んだことは前回までにご紹介してある。それが、落ち着いて数えたら、容量が2A以上のものだけで6個もあった(購入4ケ、故障した無線ルーターなどからの流用品2ケ)。 

 容量とは言うが、本当にこれだけの電流を取り出せるのか確かめたことはない。前にも書いたように、必ずしも容量の大きいアダプターが安定してRaspiを動かせていたわけではない。彼らの実力がどの程度なのか、ちょっと本格的に調べてみたくなってきた。

 良く言う電源のレギュレーションとは過渡特性のことを指すが、それ以前の静的な負荷特性は余り問題にしない。しかし過渡特性は、この静的な負荷特性が基本になるもので、これが低いようでは問題にならないはずなのだが、余り話題にならないのはなぜだろう。調べてみよう。

Dsc01135 こういうときのために、セメント抵抗を何種類かそろえてある。スライダックのような本格的なものはないが、物理の実験よろしく直列並列を駆使すれば、5Vなら0.1Aきざみで数Aくらいまで測れるくらいの種類は持っている(50、20、10、2Ω)。

 ブレッドボードにこのあいだ買ったUSBコネクター電流計や、ACアダプタージャックを取り付け、少しづつ測り始めた。データが揃ってくると驚くべき事実が明らかになってきた。おおげさな話かもしれないが、こうしたACアダプターは全然定電圧電源ではないのである。

結構、ケーブルの損失があるのだ(6/5/2017)
 どのACアダプターでも、1A少々の電流でもかなりの電圧降下がある。負荷によって出力電圧が変わらないのが定電圧だと思うのだが、サイトのいう定電圧回路の一般的なロードレギュレーションの上限±0.2%どころではない。平気で数%も落ちてしまう。

 4A容量のアダプターといえども1A流して(正確には0.9A)、0.3Vも下がり4.7Vになってしまうのはどうみてもおかしい。これで定電圧アダプターと称するのはいかがなものか。

 確かに、5Vフルスケールでグラフを描いてみれば、0.3Vの低下というのははごくわずかだが、0.5Vフルスケールにしてみると直線的に電圧が低下していく。

 汎用的なアダプターと違い、無線ルーター、USBハブなどの付属のアダプターは無負荷のときはあきらかに5V以上で、使われる範囲で5Vを維持するようになっている。これなんか一種の詐欺だ。

Dsc01138  グラフを描きながら、悪態をついていたが、少し冷静になって考えてみると、わけがわかってきた。流れる電流が1A近くなるとケーブルの長さが効いてきて負荷端では電圧降下が避けられないのだ。 

サイトで調べてみると、銅線の直流抵抗は意外に大きい。#24(アダプターで使われる一般的な太さ)の撚り銅線(錫メッキ)で1mあたり、0.09Ω(1kmで89Ω)。ということは、1A流せば、たった1mのケーブルで、0.1V近く下がってしまうのだ(往復換算)。

 大抵のアダプターのDC側のケーブルは2m近い。一生懸命、アダプターを取り替え、セメント抵抗をつけたりはずしたりしてグラフを作ったが、あまり意味がないことがわかった。手持ちの沢山のACアダプターの記録を詳しく公開するつもりだったが、誤解を招きそうなのでやめておく。

 この測定結果は、これまでのRaspiでのテストの状況と良く符合する。アダプターではなく、DC側のケーブルの長さや太さが大きく影響している。一番成績の良かったのは、例の秋月での長さ10cmの電源ケーブルが一番トラブルが少なかった。

 負荷端での電圧降下を少なくするのは、太いケーブルにするか短くするかが一番で、ケーブルの長さにかかわらず一定にするには、負荷端から電圧測定線(リモートセンシング)を引き出すような大掛かりな装置が必要だということも分かった。今回は良い勉強をさせてもらった。

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

2017年5月19日 (金)

RaspberryPi 3の電源事情好転せず。ESP32に手を出す

 RaspberryPi 3(以下Raspi3)による監視カメラはほぼ完成したが、恐れていた通り実際の観測には重い腰が上がらなくなった。現役時代の習い性だろう(若い時はそうではなかったので、一種の職業後遺症)。こういうプロジェクトを計画なしに始めることに強い抵抗があるのだ。

 どんな仕事でも一旦始めると、それを中止する大義名分が見つからない限り止められなくなる習慣が出来ている。途中でやめることに強い罪悪感を覚える。作業を始める前に具体的な目的と目標を決めておくのが決まりになっている。

 これまでに何度か気楽に始めてそれが止められず、といって順調に事は進まず、その葛藤で、へとへとになってしまったことがある。とまあ、出来ない屁理屈をこねているが、実はそれよりもっと深刻なことがある。Raspi3そのものの動作がまだ安定しない。

 USBセルフパワーHUBと電源のACアダプターを共通にすると大量にHUBの方から電力を供給してしまう問題は、特定のHUBの逆流と結論付けたのだが、念のため単独でテストしたところマスター側には電圧がかかってこないし(LEDが点かない)、このHUBを分解して中身を確認しても、しっかりVBUS側にはSBD(ショットキーバリヤーダイオード)が入っていたりする。

 別のHUBに交換し、ケーブルを吟味した結果、定常的な電源容量不足は一時的に稲妻の警告がでるものの、相当な負荷をかけても(カメラと自前ブラウザーなど)、ほとんど落ちることはなくなった。しかし、今度は、本体そのものが電源を入れてもブートしなくなるというトラブルが発生し始めた。Dsc01110

 必ず起きるということではなく、何度か電源を入れ直したり、HDDにつながるセルフパワーHUBの電源を別にしたり、あとからUSBを接続したりすると正常にシステムが立ち上がるので、それほど神経質になることはないのだが、安心して運用テストに入れるレベルにない。

UARTの字化けはあっさり解決。ボーレートがおかしかっただけ(4/17/2017)
 
Tiny13を使ったRaspi電源制御装置も、最初、電圧低下でRaspi3では不安定だったのだが、ケーブルやHUBを交換しているうちに安定して作動するようになっている。この制御装置は、電流量のモニターが出来るので、このまま使いたい、しかし肝心のUARTシリアル出力が盛大な字化けをしているのが気になる。Dsc01111

 で、これを先に直すことにした。久しぶりにオシロを動かして、ボーレートを調べる。明らかに9600bpsのボーレートより遅い(1ビット10.4μsのはずが12μs近く)。ネット情報によれば、Teratermはボーレートが設定画面で自由に変更できるというのでオシロのタイミングに合わせてボーレートを下げてみたが(9600 -> 9000近辺)、不思議なことに全く改善されなかった。

 どうも他の原因が考えられる。自作のソフトUARTのソースコードをじっくり見直した。すると送信期間はボーレートを守るため割り込み禁止(cli();)にしているところを、ストップビットを出した直後、解除(sei())してしまっているのを発見した。 

 ふーむこれか。もしここで割り込みが入ってしまうと、規定よりストップビットが長くなって字化けする。ただ、シリアル出力は、500msに一回の電流測定のときだけで、かかる時間は、9600bpsで30 字だしてもせいぜい3ms(1文字10ビットで1ms)だ。他と被ることはないはずだ。

 しかし、さらにコードを調べていくと、待ち時間をループでなく8ビットタイマーで作っていることがわかった。それもその割り込みは1ms単位だ。もしかしたら、ペンディングになっていたタイマー割り込みがここで入ってUARTと被るのかもしれない。

 ロジアナでも持ち出して測れば一発で原因がわかると思うが、何しろTiny13は8ピンでプローブに使えるピンが一本も残っていない。面倒なので、ボーレートの調整と、この修正(割り込み解除をひとつずらしただけ)を一緒に直してテストしてみた。Ws000019

 ピンポーン!見事に字化けはひとつもなくなった。やっぱり被っていたのか。念のため、割り込み解除のステートメントを元に戻してみた。何と、何と。それでも字化けは解消している。被ってはいなかったのだ。

 単なるボーレートの修正だけで直ってしまった。通信ソフトのTeratermのボーレート変更では治らなかったのに何故だ?心残りではあるが、余りこればっかりやっているわけにもいかない。先に進もう。

10インチのHDMIモニターを入れてRaspi環境が改善(4/18/2017)

 現在のRaspi3のOSはJessieで、HDMIコンソールからブートするようになっている。今まではPCのHDMIモニターを共用にしてディスプレイのSWで切り替えていたのだが、電源のトラブルシューティングで頻繁に再起動をする状況ではどうも具合が悪い。 

 例の7インチIGZOパネルをこのときとばかりに使いたいのだが、1920x1080の解像度では、動画を見るのならともかく、コンソールは猛烈に字が小さくなりデバッグなどはとても出来ない。フォントを拡大するコマンドは入れたが、実用性に欠ける。迷った挙句、適当なHDMIディスプレイを別個に買うことにした。Dsc01115

 ウェブで調べてみる。沢山ある。10インチ近辺のモニターは、車載用のTVモニターの需要があるらしい。爆安店で探せば数千円で買えるかもしれないが、買いに行く時間が惜しい。通販でも1万円近くだせばスピーカーまでついた本格的なHDMIモニターが買える。アマゾンで注文する。良い時代になったものだ。

 ほどなく品物が届いた。タッチパネル式のスイッチ、リモコンまでついて立派なものである(1024X600)。動かしてみる。おおお、少し小さいがコンソールを見るには十分だ。これで格段にRaspiの開発環境は整備された。いちいちPCのディスプレイをスイッチで切り替えなくて済む。Dsc01116

 専用のディスプレイが出来たので、Raspi3そのものの整備が楽しくなった。Raspi3はBluetoothもあるし、NOOBSのデスクトップには、既にいくつものブラウザーが動くようになっている。電源問題が先に進まないので、つい色々なことに目移りしてしまう。

 前にも書いたが、Raspi3の性能は大したもので、ウェブサーフィンも殆どストレスを感じない。居間で使っているASUSの古いネットブック(CPUはAtom)より早いかもしれない。感心なことにデスクトップにはBluetoothのドライバーまでインストール済みだ。

秋葉原で久しぶりの買い物。秋月の最大ACアダプターなど(4/21/2017)
 暫くご無沙汰だった秋葉原に仕事の帰り立ち寄り、秋月電子でいくつか部品を買ってきた。これからの電子工作プロジェクトの候補である。現状が迷走しているので、何らかの起爆剤になることを期待している。

・LTC1799
オシレーターチップ。電波時計の電波(JJY 40/60khz)をこれで発生させ、ESP8266などで、ネットのNTP(Network Time Protocol)で得た時刻を標準電波形式にスイッチングする。要するに電波時計リピーター(別経路のリピーターだが)を作ろうというものである。

ウェブサーフィンをしているときに、これを使い、ESP8266のArduinoIDEで作っている記事を見つけた。電波の届かないところでも電波時計が使える。面白そうなのでとりあえずICだけを調達する。Dsc01129

・ソリッドステートリレー (シャープ 8A 250V)
AC機器をリモートで入り切りするために在庫がなくなったので補充した。これまでのESP8266が遊んでいるので、これにウェブサーバーを立てて、ブラウザーからの指示でAC機器を制御する。典型的なIOTの第一歩である。WiFiモジュールは、新しいESP32も買ってあるが、この程度の制御にはもったいないので別の用途を考えることにする。

・4Aの定電圧5V ACアダプター
 Raspi電源制御の切り札、秋月電子内の最大容量の5Vアダプターである。自前で強力な5V安定電源を作る前に、本当に電源容量だけの問題かこれで確かめようというもの。

・ブレッドボード用DIP基板のついたUSBコネクター    
 Raspi電源問題解明で何らかの回路をUSBバスに付加してテストするため。ブレッドボードでハンドリングできるDIPピンのついたUSB Aタイプコネクター。ブレッドボードそのものは接触不良のかたまりみたいなものだが、何とか藁をも掴む思いである。          

4AアダプターでもRaspi電源事情は改善せず。好い加減あきてきた(4/22/2017)
 当研究所には、5V定電圧ACアダプターなら山ほど揃っている。秋月で買った3Aと2.5Aのものを始め、例のUSBセルフパワーHUBの2.6Aや、2.1Aなど、数えてみたら5つもあった。

 今さら、さらに買い足す必要もないのだが、何となく意地になって4AのACアダプターを思い切って買ってみた(といっても¥900)。帰宅して、とるものもとりあえずまずこのアダプターの実験をする。しかし、残念ながらRaspiの電力環境は好転しなかった。これまでのACアダプターと殆ど変わりはない。

 相変わらず稲妻マークは出るし、時々最初のブートが効かない問題は依然としてなくならない。USBプラグを抜き差しすると変化があるので、アダプターの容量の問題ではなくこのあたりの接触不良の疑いも出てきた。

 ウェブで「電源 ロードレギュレーション向上」などのキーワードで、関連情報を探すが、出てくるのはプロ向けのおおがかりな回路設計の話ばかりで、アマチュアが手軽に試せるようなことは何も見つからない。

 本当は、自前で高性能の3端子レギュレーターなどでACから5Vにする定電圧装置を作るべきなのだろうが、このあたりは、素人なのでとっかかりがなく、もどかしい。

 解決の方向が見えない。ブートを失敗するのは、電源投入時の瞬間的な電圧降下であろうとあたりはつけているが、確認するにも現象が固定化されない(どのACアダプターでも起きる。長時間OFF後はほぼ必ず発生。一旦成功すると、そおあとは失敗しない)。具体的な手段が見つからない。段々飽きてきた。

Raspi3のオーディオ環境整備にはまっている(4/30/2017) 
 そういうこともあるが、このところはRaspi3の環境整備にはまっている。専用のディスプレイでデスクトップ環境が格段に使いやすくなったこともある。

 Raspiのオーディオは無印のころから、これまで全く手を出していない。Raspiのオーディオも結構人気のようである。まずはオーディオ関係を整備することにする。

 Raspi3にはアナログ(単なるステレオジャック)と、HDMI出力、それに情報によれば、入出力ピンにI2Sが出ているということだ。この10インチディスプレイはスピーカーがついているのでHDMIからの音が出るはずだ。Dsc01128

 とりあえずRaspi3のデスクトップのメニューバーにオーディオ選択のダイアログがあったので、これをHDMIにしてみる。ブラウザーで適当な音源を選び音を出す。簡単に音が出た。小さなスピーカーなので音質はお世辞にも良いとは言えない。「音も出ます」程度の音である。

 次は、アナログである。内蔵DACは11ビットというのでこれも音質は期待できない。ヘッドフォンを取り出しジャックにつなぐ。おやあ、シーッと量子化ノイズが耳ざわりだ。11ビットならもうちょっと良いはずだが。

 音を出してみる。小さいスピーカーに比べれば、音はましだが、やはりノイズが気になる。ウェブで評判を調べる。うーむ、このアナログの評価は散々だ。

RaspiAudioの音質不良はrpi-updateで少し改善。Bluetoothも(4/28/2017)
 ウェブをさまよい歩くうち、Raspiのアナログ音の出力は、ここのサイトによるとファームウエアがバグっていてサンプリングビットが1ビット少なく10ビットになっているという情報を得た。(オリジナルはここ

 ここには、バグの修正版のダウンロードサイトも紹介されている。2012年の古いパッチのようだが、正規のupdateにはなっていない。現在の最新バージョンには反映されていないようだ。ふーむ、恐らく何か別の不具合があってのことかもしれない。

 まあ、ものは試しである。一式をダウンロードして、インストールしたあと、ファームウエアの書き直し、rpi-updateをかける。エラーもなく順調にrpi-updateは終わった。

 音を出してみる。うーん、少しは良くなったか。確かに少しノイズが少なくなったが、音は驚くほど良くなったとは言えない。まあ11ビットDACは、二昔前のPCのサウンドカード程度なのでこれ以上の向上は無理のようだ。

 Raspiオーディオで検索をかけると沢山ヒットする。いわゆるハイレゾオーディオの中継基地として安上がりなのが人気なのだろう(この手のオーディオ機器は信じられないほど高価)が、当研究所は今のところハイレゾ再生には行かないことにしている。

 というので、次はBlueToothでの音の再生にチャレンジした。キーボードは動いたが手持ちのBluetoothヘッドフォン(サンワのMM-BTSH30)は、認識はするものの、音がすぐ切れる。ブラウザーや、デスクトップのScratchという教育ソフトの猫の音もでないので、BlueToothの問題だと放置していたのだが、あるとき、コンソールから、

aplay /usr/share/sounds/alsa/Front_Center.wav

というコマンドを入れたら、何と、Bluetoothでの音の再生に成功した。だとすると、ウェブに沢山情報のあるとおり、bluetoothのオーディオパッケージBluezと、これまでのLinuxのオーディオALSAとの衝突がどこかで起きている可能性が高い。

 Raspi内のどれかのオーディオパッケージをインストールし直せば、うまく行くのかも知れないが、問題は深そうで簡単に行く話ではない。ウェブでは調べた限りでは、こういう話題がヒットしない。解決策が見つかる可能性は低い。これも少々あきてきた。

ESP32-WROOM-32のテストに着手する(5/4/2017)
 というので、このあいだ買ったままになっていたESP-WROOM-32(以降ESP32)を試してみることにした。このESP32はWiFiモジュールESP-WROOM-2(以降ESP8266)のグレードアップ版である。Dsc01127

 中華製のWiFiモジュールには信じられないほど安価なのが多いが、日本の電波機器の技術適合証明、いわゆる技適をとっていないのが殆どである。しかし、ESP32はいち早く技適をとり、秋月からはPCへのUSB-UARTまで装備したブレークアウトボード(¥1480)も売り出された。単体の値段もESP8266と殆ど変わらない(¥550 と¥700)。

 これまでのESP8266の弱点、CPUが遅い、I/Oピンが少ない、SRAMの量が今一つという不満を一気に解消しており、これはお買い得と、少し前、予定もないのに単体と、ブレークアウトボードをひとつづつ買ってしまってある。

 以前ESP8266で画像付きのサーバーを作ったことがあるが、画像を出すだけ一息の時間が必要で、簡単なGPIOの操作ならまだしも、ちょっと手の込んだ遠隔制御には使えそうになかった。それがこのESP32ではだいぶ使えそうである。

 その割には日本ではまだブレークしていないようだ。技適はついているし、秋月などでもオリジナル(Espressif)社のブレークアウト基板を廉価で出しているに不思議だ。調べてみて何となく理由がわかった。

 どうもESP8266ほど周辺のソフト開発環境が進んでいないようだ。ESP32の開発元、Espressif社が、Arduinoではない独自の開発環境 ESP-IDEというのを作ったようだが、そのあたりの情報が不足している。一本道ではなく、いくつもの開発環境があるというのは、初心者にとってはかえって弊害になる。

 検索をかければ、ウェブには山ほど紹介記事が出てくるのだが、どれも今までのものと何か違和感がある。一例をあげれば、ここなどは、懇切丁寧な記事の大部分は、トリッキーな空中配線や、ブレッドボード上の配線法なので、読み流しているうち、急に複雑なウェブサーバーの紹介になってびっくりする。 

 ここのサイトは、詳細なESP32の情報が掲載されている。でも、ここの情報だけで、初心者がESP32を動かすことは難しいだろう。膨大な情報があるが、多すぎて、恐らくどこかで折れたら(書かれている通りに動かないなど)最後、手も足も出なくなるだろう。

 この違和感は、これらサイトの筆者の責任ではない。明らかに電子工作のやりかたがArduinoなどをきっかけに大きく変わってきたからではないだろうか。要するにハードやソフトウエアの複雑さが比較にならないほど大きくなって、全貌を簡単に把握できなくなっているのだ。

 結論から言えば、素人が手を出しにくい。WiFiによるスマホとの連携ひとつをとっても、その実現は膨大な技術の蓄積で可能になっている。本当の初心者なら電子工作はもっと少ない要素でできている8ビットのPICやAVRで経験を積む方が結局早道なのではないか。

 悪態をついてばかりいても先には進めない。とりあえずは開発環境から整備を始めることにする。何しろ沢山サイトはあるが、ちょっと目を通しただけではなかなかわからない。当研究所には、ESP8266を開発したArduinoIDEがある。当然この環境と一緒にしたいのだが、このあたりの解説が少ないのである。

ESP32のWiFiサーバーまであっさり動く(5/10/2017)
 このサイトを参考に、既存のArduinoIDEに、ESP32関係のパッケージをインストールする。ここを見つけるまでは、殆どのサイトが新規にArduinoIDEをインストールするところから始まっているので苦労した。要するに既にArduinoIDEがあるのなら、所定のディレクトリーにダウンロードしたパッケージを解凍して入れるだけで良い。IDEを再始動すれば、すんなりESP32関係がロードされる。

 ハードの方はいたって簡単だ。ブレークアウトボードなら、追加する配線は殆どない。LEDと制限抵抗を適当なGPIOピンにつなぐだけである。電源はとりあえずUSBから貰う。ここも電源問題が大変なようだが、まあ、実験レベルなのでこのまま行く。

 ArduinoのLチカのコードをコピペし、ビルドする。何事もなく、終了した。次は、ファームへの書き込みである。おお、無事に書き込みが始まったようだ。心なしかESP8266より速いような気がするが、これは、ファーム焼きこみのシリアルの速度が921600bpsとべらぼうに早いためで、本体が早いわけではないようだ。

 ファームの書き込み終了のメッセージと同時に、LEDが点滅し始めた。あっけなくLチカ成功である。ブレークアウトボードのおかげで、前の手製のESP8266開発キットに比べると、動作モードをタクトスイッチで切り替える必要がない(勝手にボードでGPIOピンを切り替えてくれる)。

 勢いに乗って、WiFiサーバーまで動かしてみることにする。ESP32のライブラリーにある、SinpleWebServerのソースを読み込み、このサイトを参考に、Lチカで使ったLEDをブラウザーからスイッチするコードに組み替える。

 これもビルド、ファーム書き込みともNO ERRORで終わった。立ち上げる(といっても何もしないで良い)。恐る恐る、PCに戻り、ESP32のIPアドレスを調べ(まだ固定化していない)、該当のIPアドレスでアクセスする。Ws000020

 やった。小さなメッセージだが、サーバーからの画面が出た。必要な所はクリック可能な色に変わっている。ONのところをクリックする。おめでとうございます。LEDが点いた。とりあえずESP32はウェブサーバーまであっけなく動くことが確認された。

 これから、ESP8266とどの程度高性能なのか調べていくことになるが、紙数も増えてきたので、このあたりで記事を区切ることにする。

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

2017年4月16日 (日)

motionの動体検知はRaspi3の電源が安定しない

フィールドテストの開始(3/25/2017)
 適当なパラメーター(前記事参照)を設定して、いよいよmotionによる自宅前の道路の動体検知の監視を始めた。道に面したサンルームのブラインドにカメラのレンズが通るだけのの隙間をわずかに開けて、そこに三脚に固定したカメラを設置する。外から見ると、ブラインドに隙間が空いて何か不自然だけれど、実験なのでとりあえずはこのままに。

Dsc01104 RaspiはWiFiにしたので引き回すケーブルは電源ケーブルだけで良い。設置は楽になった。HDDは三脚の下に置いた菓子折りの空き箱にHUBと一緒に載せる。電源スイッチを入れてその場を離れる。地下の工作室に戻ってPCからSSHを開き、motionを起動する。

 よーし、これでmotionは、ストリーム画像を送りながら、動きがあった時だけ、動画(aviファイル)と静止画(jpegファイル)をSAMBAサーバーの所定のフォルダーに画像を残していくはずである。念のため、PCのブラウザーでストリーミングを確認する。うむ画像が出た。102017032517352505 小一時間、カメラをサンルームに置き、データを収集した。ファイル数200ばかり。容量にして80MBくらいが溜まった。これくらいなら一日放置しても大した量にはならないか。

 データの中身をチェックする。自動車は監視対象ではないが、動体検知するのは車のときが殆どである。カメラの位置は進行に対して90°なので自転車の追尾は結構難しい。この場所からでは流れ映像しか撮れない。

 歩行者は問題なさそうだ。動体検知画素数1000程度で十分捕捉している。それでもタバコを人家の庭にポイ捨てする不届き者の人相を完全に把握するのは難しそうだ。 Ws000017

 ファイルは動体検知をしたセッション単位にひとつづつ数が増えていく。現在は、イベント番号(検知セッションの中での連番)というのがファイル名の先頭に来るので、ソートがうまくいかない。ファイル名を工夫しないといけない。

監視カメラの仕様がなかなか決まらない(3/28/2017)
 フィールドテストは始まったが、本格的な運用に入るまでに解決しなければならないことがブラインドの不自然な隙間だけでなく、まだ沢山ある。

 現在、撮影は室内から窓ガラス越しにやっているが、本当は外に置きたいところだ。しかし、外に置くとなると、カメラの防水、防風、防塵などの対策がただちに大ごとになる。レンズを近づけてガラスの影響を少なくする場所があれば良いのだが、今のところ都合の良さそうな所は見つからない。

 また、三脚にカメラを固定し、付属物を横に置いているが、これももう少し工夫したい。掃除はしにくいし、機動的な移動はできない。それに、まだ猫に気づかれていないが、HDDは僅かだが音を出す。長時間放置した場合の音に敏感な猫の対策も考えておかないといけない。

 さらにカメラの運転仕様が悩ましい。吸い殻を捨てる不届き者の特定を当面の目標にしているから、長時間の監視が求められる。人通りの少ない早朝か深夜が考えられるので、もしかしたら赤外線カメラにする必要があるかもしれない。自動的な時間制御もあった方が良い。

 出来上がった映像のチェックがこれまた大変である。motionを使っているので、歩行者、自転車が通過するときだけの映像になっているはずだが、映像をチェックするPC側のビュワーの機能だけでなく、現在のファイル名を今よりもうすこし合理的なものにしたい。

 先述したように、現在のmotionの録画したファイル名の先頭は、ひとつの動き検知のなかの複数の動きの番号(イベントNo)で、ソートするときとても不便である(ここの1や2は余り意味をなさない)。これはmotion.confのファイル名設定で換えられそうだが。Dsc01110_

 世の中の監視カメラの整理はどうやっているのだろうか。やっぱりしらみつぶしに映像を見ていくしか能がないのか。悩ましい所である。

電源制御装置を入れるだけで電圧降下の警報マークが出る(3/29/2017)
 フィールドテストをしながら、Raspiを安定して動かす電源の検討をしている。Raspbianのデスクトップには、電力不足になると画面右上に警報の稲妻型のロゴが出る(4.65V以下)ことを知り、これで、たくさんあるこれまでのACアダプターの性能比較が楽になった。

 ブート時はCPUにロードがかかり手持ちのすべてのアダプターで一部に稲妻が出る。結構敏感である。しかも必ずしも容量の大きい(流せる最大電流)アダプターの方が安定しているとは言えない。秋月の5V 3Aより、セルフパワーHUBについていた容量表示が2.6Aの方が何故か稲妻の出方が少なかったりする。ただ、少々稲妻が出てもすぐRaspiがダウンするわけではない。

 電源ケーブルとして使っているUSBケーブルでも大きな違いがある。太いケーブルの方が相対的には良いが、これとて余り長いと細い短いケーブルに負ける。秋月電子のRaspi専門の商品棚にあった長さわずか10センチくらいのUSBケーブル(タイプA->マイクロB)がやはり最強だ。

 先だって作った自慢のRaspiの自動電源制御装置(スイッチ押下で電源が入り、シャットダウンで小電流になると電源OFF)は、レギュレーションを間違いなく悪化させる。これを経由させると稲妻が出る頻度が高くなり、システムが不安定になってしまうことがある。

 この電源制御装置は0.22Ωのシャント抵抗で電流を計測している。500mA流れても、0.1Vの低下にしかならないので影響は少ないはずだが、どうしてなのだろう。

 以前買った、USBソケット内にLCD電流計を入れたやつはもっと良くない。入れただけで電圧が下がり、正常に立ち上がらない。表示は4.7V以上だが、恐らく瞬間的な大電流のとき表示以上の電圧降下があるのだと思われる。Dsc01113

 オシロでこの瞬間的な電圧降下を測定したいと思うが、トリガーをどうかけて良いのかわからない。入力をACにして、高感度にし、トリガーをnormalやsingleにしてみるが、全く引っかからない。

 こうした瞬間的な降下を回避したいのだが、どうもうまく行かない。下手なインダクターは無用の直流の電圧降下があるし、コンデンサーも大容量のものが既に付いている。これ以上の追加は突入電流が心配だ。

 どうも、Raspiの電源コネクターになっているマイクロUSBのソケットを疑いたくなってきた。2A以上の電流が流れるというのに、あの接点の小ささは気になる。あまり結果は期待できないが、これも例のやり方に替えて試してみることにする。

電源をGPIOピン経由にしても改善せず(4/1/2017)

 それは、以前の無印Raspiで愛用していた、GPIOピン配列に一緒に設定されているVccピンに直接5Vを供給する方法である。無印RaspiはUSBからのパワー供給は、ポリスイッチが間に挟まっており、こいつが悪さをして電源が安定しなかった。

 このポリスイッチを無効にすることで安定化したのだが、最も簡便なのはそのあとにピンに出ているVccピンに電源を供給してしまうことである。ポリスイッチが有効に動くのは、raspi基板内でショートなどで電流が流れることで、それは通常考えられない。これがなくても余り問題にならないという判断である。

 今度のRaspi3は、電源供給用に特化したUSBマイクロソケットがついており、その先の配線はRaspi2までと変わることはない。しかし、マイクロUSBのような小さな接点で、2Aを越す電流を安定的に送れるとは思えない。不安定さの要因のひとつになっているのではないか。

 そこで、前の無印Raspi同様、GPIOピンのVccに電源を供給し、いくつかの同じテスト(ブラウザー2本立ち上げ、motion動作、自分でストリーム受信など)をやってみた。残念ながら、マイクロUSBからの給電に比べ大きく改善されることはなかった。

電源制御装置で奇妙なトラブルにはまる (4/3/2017)
 問題なさそうなケーブルやACアダプターを選んで、何とか自作の電源制御装置を入れても安定して電源が供給されるようになった。

 ただ、SAMBAサーバーに使っている2.5インチHDDの電源供給(USBから給電)は、ただでさえ逼迫しているRaspi3の電源事情を考えて、当初から、セルフパワーのHUBを追加している。しかし、これでは、監視カメラを動かすのに2台のACアダプターが必要になり、取り回しが悪い。

 そこでせめて、ひとつだけのACアダプターでRaspi本体と、HDDをドライブするセルフパワーのHUBの電源にしようとした。ただ、セルフパワーHUBのACアダプターの受け口は、当研究所標準の2.1ミリジャック(秋月電子の標準と同じ)と違うので少々の加工が必要である。

 ところがこのテストをしているうち、妙な挙動に悩まされることになった。電源制御装置にACアダプター端子を追加し(単に入力をパラにしただけ)テストした時のことである。ブートしてRaspiのデスクトップ画面が順調に立ち上がった途端、電源制御のリレーが動いて切れてしまった。

 はじめは過電流が流れてRaspiがリセットしたのかと思ったのだが、勿論そんな状況ではなく、正確にリレーが働いて電源を切っており、症状は再現する。つまり、これはRaspiの消費電流量がシャットダウン時とみなされるまで低下していることを意味する。これはおかしい。Raspiは電源が切れるまで、ブートメッセージを始め、正常な動きをしている。Dsc01109

なんとUSBセルフパワーHUBが犯人(4/5/2017)
 こういう状況を放置しておけないのが所長の習性である。何が原因なのだろう。突き止めるまでは先に進めなくなった。幸いこのTiny13の電源制御装置は、裏蓋を開けるだけでデバッグ用のUARTにアクセスできる。字化けが何故か多いが(未解明)、そのときの消費電流と測定カウント、インターバルなどを表示する。

 このUARTをつないでスタート時からの電流量をモニターして驚くべきことが分かった。何と、このHUBのときは、Raspiには通常の1/3の電流しか流れていない。Raspiは普通、立ち上がりの時はかなり電流が流れるが、デスクトップが出てしまえばRaspiは200mA前後に落ち着く。これが通常の1/3だとシャットダウン時に想定している最高電流80mAを下回る。で、制御装置はシャットダウンと判定したのだ。 Dsc01111

 しかし、電流量が減ったのが全く理解できない。ブートは通常通り行われており、問題はない。するとHUBの電源を共通のACアダプターからとっていることが、これまで違ったところなので、これが原因であることは明らかである。しかし、理屈が合わない。USBコネクターから電源が供給される?そんな馬鹿な。

 試しにHUBを取り替えて別のHUBにしてみた。ははは、この問題は全く解消した。本当だ。セルフパワーのUSB-HUBの中には、スレーブからでもマスターのUSBパワーの電源を戻してやることがあるのだ。

体制は整ったが、突然、工作意欲がなくなる(4/14/2017)
 妙な現象は、手持ちのセルフパワーHUBの特性であることがわかった。症状の出ない別のHUBに切り替え、Raspiの監視カメラの電源整備はとりあえず一段落である。

 三脚の上にカメラ付きのRaspi3を置き、そこから電源用と、HDD接続用のUSBケーブルを2本出す。三脚の下にHDDとセルフパワーHUBを配置し、そこからACアダプターへの電源ケーブルを引くというレイアウトである。Dsc01108

 これをサンルームに持ち込み、テスト開始と意気込んだところに、珍しく風邪を引いた。これがかなり酷く、熱は微熱なのだが咳が止まらないうえ、声がしゃがれて出なくなった。こんなに喉をやられたことは記憶にない。無精して医者に行くタイミングを逃し、家人からあきれられた。

 そんなことで、突然工作意欲が湧かなくなった。電源制御装置のモニターのUARTの字化けを直そうと、久しぶりにAtmelStudioを立ち上げたりしているのだが、次の一歩が出ない。実はこのあいだネットで評判になっているESP8266の発展版、ESP32も買ってきてあるのだが、これも手が付かない。

 これまでにやった工作らしい工作は、傘の骨の修理(東急ハンズで修理用パーツをゲット)。DVDレコーダーリモコンの修理(これはカラ割には成功したが赤外線LED点灯せず。アマゾンで買い直し)。このあいだてこずったRaspiのBlueToothのテスト(キーボードは簡単につながったが、タイムアウトがあって使いにくい)、と脈絡のないことばかりである。

 まあ、これは意欲が戻るのを待つしかない。ブログもこのままではまずいので、とりあえず、中身はないが、これまでの報告ということで。

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

2017年3月25日 (土)

RaspberryPiのmotion動体検知の実用化に向けて

 このところRaspberryPi(以下Raspi)にはまっている。これを電子工作というのにはちょっと抵抗があるが、システム開発と言うのも何か大げさだ。まあ、Raspiは簡単にI/Oピンをいじれるマシンなので電子工作と言っても間違いではないだろう。

 巷(ちまた)には、Raspiに関する情報は溢れかえっている。しかし実用的な工作まで解説しているサイトは意外に少ない。あっても、詳しいのは導入までの工程で、そのあとの作業について解説しているところが少ないのだ。

 監視カメラに使うといっても、電源や、設置場所、耐天候対策、映像データの蓄積・管理など、検討すべき項目は数多い。この分野も既に専門家による大きな市場ができているので、素人が立ち入る場所がなくなっている。アマチュアがちょっと手軽にやってみるときの情報が少ないのは仕方がないのかもしれない。

 それに、アマチュアは作って動くところまでが楽しみで、動いてしまうと急激に興味が薄れるものだ(かく言う所長もその傾向を否定できない)。しかも、応用の方向は個人によって千差万別なので、参考にならないことが多い。このあたりは自分なりに開拓していくしかないのだろう。Dsc01068

 それはともかく、やっとmotionで想定した通りの動体検知システムが動き始めた。この監視カメラの運用までは、まだやることが沢山あるが、とりあえず一段落したのでブログに報告する。例によって時系列でまとめてあるので、話題が飛び飛びになることはご勘弁願いたい。

サブネット越しの名前解決(3/8/2017)
 直前の記事は、Raspi3をWiFiでつなぎ、SAMBAサーバーを動かすところまでだった。WiFiそのものは何事もなく動き、映像ストリーミングも快調に流れるのだが、SAMBAがなぜか通らない。撮りためるmotionの映像データは、何もしないとすべてRaspi3のSDカードに収容されるので、SDカードの耐久性が心配で、別のメディアを用意しておきたい。

 SAMBAにしておけば、リモートから監視映像を確認することもできるので一石二鳥だ。というので、SAMBAにこだわっているのだが、有線なら通るSAMBAが無線のWiFiではつながらないのである。

 WiFiルーターはブリッジで使っている(はずな)ので、同一のサブネットだと思うのだが、どうもSAMBAサーバーでは別のネットになるらしく、WindowsがRaspiを見つけられない。

 調べてみると、ウェブでは既知の問題点らしく、色々なところで解決法が紹介されている。要約すると以下のようになる。

(1)直接、PCでSAMBAサーバーのIPアドレスを指定してリモートドライブを定義する。WiFi越しでも通る(はずだ)。

(2)PC側のhostsファイルにサーバー名とIPアドレスを登録する。Windowsにもhostsファイルがあるとは知らなかった。しかし、これがとんでもないところにある。C:\Windows\system32\drivers\etcという深いパスの下にある。

(3)PC側のlmhostsファイルにサーバー名を登録する。これが正道なのだろう。lmhostとは、NetBIOSというWindowsのネットワークサービスの名前解決法である。このファイルも、hostsファイルと同じディレクトリにある。

 それぞれ試してみた。(1)は問題なく動いた。但し、固定アドレスをいちいち打ち込むのは運用上うまくない。他をあたってみた。(2)は、最初このファイルを変更することが出来なかった。さらに調べて、管理者権限が必要とわかり、エディター(Terapad)を管理者権限で実行させて変更に成功した。これも問題なくPCはサーバーを見つけてくれた。

 (3)も(2)と同じやりかたで、ホスト名とIPアドレスのセットを登録すると、WiFiでもSAMBAが動くようになった。一番、もっともらしい(3)にする。

Raspi3不調。OS入れ直し(3/9/2017)
 Raspi3の新機能のうち、まだ試していない機能がある。Bluetoothである。ただ、現在は、Bluetoothは、シリアルコンソールのUARTとぶつかるということで、停止している。実際に、ウェブにあるBluetooth関連のコマンドはエラーで戻って先に進まない。

 しかし、情報によれば、シリアルコンソールは、RaspiのBIOSにあたるconfig.txtに、クロックを固定する core_freq=250という設定だけで正常に戻るというのである。しかもBluetoothも動くという。

 今、Bluetoothを使う必要はないのだが、この方法が果たして有効なのかを確認するためBluetoothを動かしてみた。確かに、Bluetoothのセットアップコマンドは有効になり、Bluetoothが動き始めたような感じになった。

 ところが、Bluetoothのディバイスを持ち出して動作を試そうとしている間に、何故かRaspiそのものが正常にブートしなくなったのである。延々とエラーメッセージを吐き出すだけでブートが終わらない。ログインプロンプトまで行かないので何もできない。

 これまで加えたUART関連の変更(config.txtはPCから操作できる)を少しづつ元に戻してみるが、現象は変わらない。一番最初まで戻ったが、同じ状態である。恐らく何らかのBluetoothの設定ファイルが作られてしまい元に戻らないのだろう。設定ファイルをいじろうにもシステムが立ち上がらないので手の施しようがない。暫し途方に暮れる。

 余計なことをして、全く先に進めなくなってしまった。こういうときの一番の解決法は、OSを作り直すことだ。あれこれ悩んでいるくらいなら最初からシステムSDカードを作り直す方が手っ取り早い。Noobs

 手元に16GBのSDカードが見つかった(安売りショップで余りの安さに衝動買い)ので、今度はここに本格的なRaspbianをインストールしなおすことにする。ウェブを改めて調べる。どうも以前と様子が違ってOSのインストール方法が変わったようだ。

NOOBSって何だ?(3/10/2017)
 RasPiも例によって横道からつまみ食いをして動かしてきたので、最近の動向が良く見えていない。このNOOBSというやつが良くわからない。ウェブをさらにさまよい、これが複数のOSを選択インストールできる最新の方法であることがわかった。

 以前やっていたOSのカーネルをイメージファイルで、そっくりコピーする方式はどこへ行ったのだろう。ちょっと探したところでは見つけることが出来なかった。で、このNOOBS方式(ノービス、初心者向けということか)を試してみることにする。

 どうもこいつは、HDMIケーブルを使った画像デスクトップを要求するようだ。Raspiのデスクトップは、この前のSharpの7インチIGZOパネルを用意していたが、これが新しいOSで動くためには、またあのconfig.txtに修正を加える必要がある。面倒なので、PCのディスプレイと共用にする。

 太いPC用のHDMIケーブルを接続し、SDカードに展開したファイル群に起動をかける。よーし、画面にそれらしい起動画面があらわれた。ここではおなじみのRaspbianを選ぶ。他の選択肢にも興味をそそられたが他のは情報が圧倒的に少ないので選択の余地はない。

 Windowsと同じようなビルド画面が延々と続き、数十分でセットアップは終了した。そうか段々こいつもWindowsに似てきたな。キーボードとマウスをUSBハブにつけ準備を整える。順調にデスクトップが立ち上がる。ウェブブラウザーは既に日本語化されていた。20170324234018_1920x1080_scrot

 それにしてもあらためてRaspi3の速さを実感する。1920x1080の画面がスムーズに動く。ネットサーフィンも全くストレスなしに楽しめる。Linuxで動かす分にはもう十分な実用性があるように思えた。

新しいOSはデスクトップからでしか動かない?(3/13/2017)  
 デスクトップからの立ち上げには成功した。ところがシリアルから立ち上がるコンソールが動かないのである。SSHは動くが、シリアルは無反応である。シリアルはハードに直結しているので、ネットがおかしくなったり、デスクトップがおかしくなった時の緊急時のために動かしておきたい。

 ウェブを探していたら、何と、Raspi3からはシリアルはオプションで通常はdisableだという。(ここがとても参考になった。)

 あわてて、デスクトップの仮想ターミナルで、raspi-configを入力し、シリアルをenableにしようとした。なんと、そこにはシリアルを有効にする項目がないのである。ありゃー、これはどういうことなのだ?

 気を落ち着けて、ウェブの説明を最初から読み直す。なになに、デスクトップの「設定」メニューにはシリアルのenable/disableボタンがあるではないか。画面から「設定」を選び、最初のconfig.txtの部分を開く。ほんとだ。ちゃんとある。

 これをenableにして、rebootをかける。おおー、コンソールにブートメッセージが戻ってきた。やれやれ、これで一安心である。それにしても、以前のイメージファイルからのOSは何だったのか。

Raspi3は少しづつ元に戻る。マウントの制作(3/15/2017)
 OSを入れ直して、さらにWiFi化や、SAMBAサーバー、motionのインストールなど原状復帰の作業を進める。そのかたわら、定点監視カメラの本格的な実装に向けた工作も始めた。

 まず、ヨドバシでカメラ用の安い三脚(¥4000)を手に入れ、マウント台をアクリル板から自作する。マウントへのRaspiの固定は当初は輪ゴムで良いだろう。本格的にはいずれ別の方法を考える。Dsc01067

 久しぶりのアクリル工作である。楽しい。アクリル板からRaspiを載せる10X8(cm)の台座と、固定用の1/4インチボルト(これは万国共通のようである)を埋め込む2枚のホルダーを切り出す。以前、USBカメラを固定するのに使った方式と全く同じやり方である。

 これを2液混合のエポキシ系接着剤で接合した。乾燥のため一日放置し、これで丈夫になっただろうと実際に三脚に付けてみた。これが何と、少し力をかけただけでポロッと簡単にはがれてしまった。

 えー、エポキシ系ってアクリルにはつかないのか。前のUSBカメラのときは問題なかったのに。あわててGoogle先生にお伺いを立てる。接着面があまり滑らかだと接着力が落ちるらしい。そういえば前のUSBカメラの表面は梨地だった。

 そこでアクリル板の接合面を紙やすり(#200以下)で表面が曇るまでこすり、念のため別の新しい2液混合の接着剤にしてやり直してみた。今度も一日乾燥させる。試してみた。うむ、今度は大丈夫なようだ。 Dsc01071

 ついでに、近くのDIY店で、滑り止めのゴムシート(厚さ1ミリ、商品名エラストマーシート)を買ってきて、台座に合わせて貼り付ける。これは強力だった。輪ゴム程度の固定でしっかりカメラは固定された。よし、これで定点カメラの固定は万全になった(屋内専用)。

カメラモジュールのパイロットLEDの明度を下げる(3/17/2017)
 定点カメラにするためには直しておきたいところがある。カメラモジュール正面のLEDだ。動き出すと赤く光るのでわかりやすいが、カメラの正面に煌々と赤い光が点くのはまるで威嚇しているようにみえてまずい。

 このLEDをソフト的に消すことはできる。設定ファイルのconfig.txtで、disable_camera_led=1とすれば消えるが、カメラが動いているかどうかの確認が出来なくなるのも困る。

 そこで、LEDの位置を変えようとカメラモジュール基板を色々調べる。カメラチップのピンがビアを通して正面に出ている。これを利用して裏に移すことを考えたが、裏面にはスペースが余りない。しかもこれはかなりな手間だ。 Raspiled

 で、結論はLEDの制限抵抗を増やして暗くすることにした。基板についている抵抗は220オームである。どれくらいの抵抗が良いのか、適当な赤LEDをブレッドボードに差して(同色なら似たような特性と仮定)試してみる。

 10Kオームくらいでも結構明るく輝く。100Kではさすがに暗すぎる。久しぶりに例の低温ハンダを持ち出す。LEDのところに広がらないよう細心の注意を払ってハンダをつける。よーし、簡単に抵抗ははずれた。低温ハンダをハンダ吸い取り線で入念に除去する。

 部品箱の中から昆虫採集のように残してあったチップ抵抗のコレクションから10KΩを探し出し、交換する。パターンは1005だったが、手持ちの1608でも実装可能だった。交換作業は30分もかからなかった。

 試してみる。うん、10Kでも明るすぎるくらいだが、これくらいなら目立たないで良い。いや、くだらない作業だったが、何かとても充実した気持ちになった。

本格的なmotionの設定。画像はとれたが管理が大変(3/22/2017)
 準備が進んできたので、いよいよ、motionの監視用のソフト仕様の検討に入る。motion.confの膨大な設定パラメーターを、我慢して最初から読みはじめる。

 バージョンに新旧があるようで少し混乱するが、読み込んでみるとそう難しい構造ではなかった。大きく分けると静止画(動きを確認したところでのスナップショット)と、その前後の動画の2種類をアクションごとに保存していくようだ。Motion1 Motion2

 沢山のパラメーターがある(動きを検知する前の画像の処理とか、動かなくなってからの動画の記録をどこで止めるとか)。

 管理的には、スナップショットの静止画と、動画は別々のフォルダーに残しておきたいが、これはどうも無理なようだ。

 記録を始める動きの範囲の大小は、実際に動かして見て決めるしかないだろう。ファイルの置き場所は、SAMBAのHDDに指定する。とりあえず、以下のようなパラメーターで監視を始めることにする(変更したところのみ)。

width 640     (320)      Raspi3ならこれくらい画像を大きくしても十分見られる
height 480    (240)
framerate 12  (2)          あまり大きくすると時間遅れが大きくなるようだ
netcam_keepalive on (off)       HTTP/1.1を使ってストリーミングの性能向上
threshold 3000 (1500)             これはとりあえず。これでも結構敏感に反応する
pre_capture  1    (0)                      検知する前の画像も記録する。
event_gap    5    (60)                     検知したあと、不感となる時間(秒数)
max_movie_time 10  (0)                 動画記録の最大時間(秒数) 0は制限なし
output_captures best (on)        検知した一連の画像のうち最大変化量の静止画を残す
output_debug_pictures on (off)   静止画を検知するときの2値化した画像で残す ffmpeg_output_movies  on (off)    検知した時の動画を記録する
locate_motion_mode    on (off)     検知した画像の部分を4角で囲む
target_dir /SAMBAファイルのパス (/var/lib/motion)記録データの保存場所
stream_motion   on  (off)            ストリーム配信をする
stream_maxrate  20  (1)          ストリーム映像のフレームレート
stream_localhost off     (on)        ストリーム配信を自分以外にもする
webcontrol_localhost off   (on)  各種パラメーターの設定を自分以外でも変更可能

 以上の設定で、工作ルームでのテストでは、手を振ったり、動いたりすれば確実に画像が記録されるのを確認した。これが実際の道路を移して所定の画像がとれるのかはわからない。

Dsc01070  このあとは三脚をサンルームの道路に面した場所に置き、観測を開始することにする。さて、どんな映像がとれるか、久しぶりにわくわくする気分である。このあたりで今回の記事は一区切り。次回をお楽しみに。

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

2017年3月 6日 (月)

やっぱりRaspberryPi3は早い

 RaspberryPi(以下Raspi)の定点カメラのハードとOS周りの整備は完成した。次はアプリである。定点カメラの細かい仕様は、まだ決まっていない。とりあえずは、通行中の人や車をチェックする(家の前で何が起きているか監視する)ぐらいのことを考えておく。厳密なものではない。

無印Raspiは遅い。motionはすんなり動いたがカクカク(2/3/2017)

 満を持して無印Raspi(初代のRaspberryPi B)に、motionパッケージをインストールする。Raspi3は電力消費が大きいので、無印の方で動くなら動かしたい。無印RaspiのOSはこのあいだ更新した。アプリを入れる前にapt-get updateと、upgradeをかける。

 うーむ、何かエラーが起きているようだ。updateが進まない。エラーメッセージは「サイトが見つからない」と怒っている。えー何故だ。apt-getを中止して、pingをかける。何だ何だ、ネットワークが外へ出ていっていない。

 そう言えば、RaspiのIPアドレスを固定にするため。staticアドレスに変えた。設定ファイルを確かめる。DNSはちゃんと定義してある。何で行かない? 面倒なので、DHCPに戻す。問題なく外部へpingが通り、apt-get updateは無事終わった。upgradeに入る。これがまたえらく時間がかかる。小一時間かかった。件のmotionの方は何のことはない数分でインストールされた。

 このあと、IPアドレス設定ファイル(/etc/dhcpcd.conf)の中を見るともなく見ていて、とんでもないミスを発見した。DNSを定義する設定行domain-name-servers=XXX.... が、server=になっていた。Linuxは無口で、こういう誤りは教えてくれない。

 motionの設定でもまた少しまごついた。最初の設定値(デフォルト)ではサーバー外へのストリーミングを許さないのだ。ウェブ上の情報と、実際のパラメーターの名前が微妙に違うので結構混乱する。それにしてもこの設定量の多さには辟易する。ここの記事が親切だ。

 エディター(nanoこいつは便利だ)の検索機能(ctl+W)を使って目的のパラメーターを探し出した。stream_localhost off (ウェブ上ではwebcam_localhostになっている) これを直せば、すぐに画像が表示された。

 しかし、遅い! 前はもう少し早かったような気がするが、640ドットはお話にならないくらい遅い。320x240の画面でもカクカクして見にくい。景色を見るだけならともかく監視には使えない。シリアルコンソールには、motionが残しているファイル名が延々と出ているので、無駄な設定をしている可能性はある。うーむ、無印Raspiでこのまま行くか、Raspi3に上げるか迷うところだ。

mjpg-streamerは早かった(2/6/2017)
 motionは動体検知の機能がついているので動きが重い。320x240の画像のストリーミングでも2~4fps(フレーム/秒)がせいぜいだ。動きを検知するたびにデータフォルダーにaviファイルを大量に残しているようなので余計遅くなっているようだ。

Mjpgstreamer  これを止めようと、あれこれ設定をいじったが、うまくいかない。これからの目的(路上の不審者の究明)には、このソフトがうってつけなのだが、なかなか手ごわい。motionの仕組みそのものを理解していないので、どう止めるのか行き当たりばったりである。一番無駄な方法だ。

 motionばかりにこだわっていても先に進まない。で、以前使ったもう一つのストリーミングソフトmjpg-streamer(これにapache2とでライブカメラにした)を導入することにした。動体検知はできないがライブカメラとして使える。motionより早いはずだ。

 このアプリは、ソースコードからである。この前は、ダウンロードに手間がかかり、コンパイルエラーが出たりして大騒ぎだったが、今回はスムーズにインストールされた。バージョンが上がったのかも知れない。

 早速試してみる。おおお、こいつは早い。無印Raspiでも640x480の画像が滑らかにでる。Raspi3ならもっと早いだろう。motionのように動体検知は出来ないが、ストリーミングだけならこれで十分だ。

Raspi3に切り替える。シリアルコンソールが字化け(2/14/2017)

 Raspiのカメラモジュールは当初の目的(定点カメラ)をほぼ実現した。ただ、2つの無印Raspiには既にお役目がある。ひとつはSAMBAサーバー、もうひとつはパンチルトが出来る外部ライブカメラのメインマシンである(いずれも最近は使っていないけれど)。

 Raspi3は現在具体的な用途が決まっていない。こちらに移した方が合理的である。それに無印では遅かったmotionも早くなって、最終目的の動体検知が実用になるかもしれない。 折角、無印Raspiで動いているのを改めてRaspi3に移すのも二重手間だが、どれくらい早くなるのかも試してみたかったので移し替えることにした。

Dsc00976 まずは、Raspi3のケースに、カメラを固定する工作を加えなければいけない。Raspi3のケースを手に取っているうち閃いた。カメラの固定は、無印の時はケースについている段差(というより縁)を利用している。これをRaspi3の時も使えば良い。そう、縁のかわりをアクリルの細い棒で再現するのだ。

 早速、アクリル棒を切り出し、瞬間接着剤で固定する。差してみる。おお、うまくはまった。ちょっとテーバーが付いているので(勝手にできたのだが)、ピッタリだ。よーし、良いぞ。こんなささいなことでも、何かとても幸せな気分になれる。次はソフトだ。

 当研究所のRaspi3は、去年の6月に買ったので、OSはJessieで、例のカメラモジュールのディバイスファイル化は済んでいる。7インチのIGZO液晶パネルを動かすため、日本語化までやったがアプリは全く入れていない。久しぶりに火を入れることにする。シリアルコンソールをつなぎ電源をON。

Dsc00977

 おやあ、シリアルが字化けだ。前はどうした。あ、前は、HDMIケーブルでデスクトップ画面を出していたのでこれを使っていない。あわててシリアルの接続ピンを確認する。間違っていない。そりゃそうだ、化けた文字がでているのだからハードがおかしいのではない。

 こういうときは、Google先生に聞くのが一番だ。調べてみるとすぐに原因が明らかになった。Raspi3では、そのままだとシリアルコンソールがまともに動かないとある。入出力ピンが新しく入ったBluetoothのUARTと共用になったためらしい。

 これはあとの話だが、SAMBAのインストールをしたらまたおかしくなった。この解決は、ここ(http://akkagi.info/20161004_web/)に詳しい。要はmdline.txtの中を変えれば良い(と言ってもconsoleの順番を変えただけ)。これでやっとシリアルコンソールは安定した。

Raspi3にもSAMBAサーバー(2/19/2017)

 ついでに、このRaspi3にもSAMBAを入れる。SAMBAはすんなりインストールされたのだが、WindowsからSAMBAディスクが見えない。Raspi側の状況は問題ないのに。なぜだ。

 居間で使っているWinXPのネットブックではいつもどおりディスクが見えるので、これはこのWindows10の問題である。これもWebに情報を求める。うーむ、SAMBAの認証がえらく面倒くさくなったようだ。

 まず、Raspi側でSAMBAサーバーにsmbpasswdにユーザーIDとパスワードを定義し、Windows側ではネットワーク資格情報なる登録がいるようだ。この前までは、何もしなくてもすんなり読み書きができたのになぜだろう。

 SAMBAの設定パラメーターも、motionに負けず劣らず膨大な量なので、ことは簡単ではない。いくつかのウェブ情報を頼りに、せっせと設定を入れ込む。うまく行くときと行かないときがあって混乱する。

 リモートディスクの設定方法が複数あるのが混乱のもとだ。このユーザーIDというのはWindowsのなのかLinuxなのか、SAMBA固有なのか良くわからない。うまく行くとユーザーIDの入力は求められないが、求められたときは、正しい(と思われる)IDを入れてもはじかれる。

 何度もやっているうち、何とか安定してディスクがつながるようになった。Windowsは「ネットワークドライブの割り当て」から始めるのが確実なようだ。しかし、この「割り当て」のアイコンを出すのが結構難しい。Windowsのエクスプローラー(ファイラー)も機能が肥大してしまっている。

Raspi3のmotionは早かった(2/21/2017)

 まあ寄り道ばかりしていても仕方がない。本来の目的に移ろう。motionのインストールだ。これは問題なくインストールされ、定義ファイルの修正も何度目かなので順調に終わった。カメラモジュールが動くことは、raspistillなどの専用のコマンドで確認してある。

 Raspi3のOSは、Jessieなのでカメラモジュールは既にディバイスファイル(/dev/video0)になっている。motionは何もしないで動くはずだ。動作させる。赤いLEDが点灯し動き始めた。しかし、ストリーミングは始まらない。

 コンソールには何か延々とバックアップの画像ファイルを残していくメッセージが出るだけだ。えーなんで。何も変えていないよ。設定ファイルがおかしいのか、もういちど確認する。いや無印のときと変わっていない。

 OSもアプリも全く同じだ。それなのになぜRaspi3では動かない。設定ファイルを何度も確認するが、変わったところはない。暫く途方に暮れる。仕方がない、派手に出ているmotionの起動直後のメッセージを地道にひとつひとつ調べていくことにした。

 すると、コマンドを入れた直後のメッセージで、motionの設定ファイル/etc/motion/motion.confがないというメッセージが見つかった。ええー、そんな馬鹿な。さっきエディターで編集したばかりだ。何故だ? ああー、もしかすると motionに設定ファイルを読む権限がない? つまりmotionをsudoをつけずに動かしているからか。

 そのとおりだった。sudoを付けて動かすと問題なくストリーミングが始まった。しかしそれにしても、今までsudoをつけていたっけ?motionの設定ファイルmotion.confの属性がおかしい。オーナーがrootになっているのはともかく、他ユーザーに読めないようになっている(パーミッション600)。

 これではsudoがないと動かないはずだ。以前は一般ユーザーでも動いていたように思う。まあ、それはともかく、chmodで属性を644に替え、一般ユーザーで見えるようにする。動かしてみる。うむ、正常に立ち上がった。

 ストリーミングはどうだ。焦る手でPCのブラウザーを開く。出た。おおお、こいつは早い。無印に比べたら雲泥の差だ。640x480でも軽く20FPSくらいはいっていそうな滑らかさだ。さすがRaspi3だ。遅延は少し(0.5秒程度か)あるが、監視には全く問題がない。

 これはRaspi3で決まりだな。電源は元から電池にするつもりはないのであまり障害ではない。ACアダプターに大きいのが必要なだけだ。

自宅前の定点カメラのテスト順調。夕方でも鮮明(2/25/2017)
 いよいよフィールドテストに入る。自宅前の道路に面したサンルームの一角に3脚を据え付けカメラ付きのRaspi3を固定する。電源を入れ、LANケーブルを延長して(早くWiFiにしよう)接続する。動作中を示すカメラの前の赤LEDが眩しく、道行く人は不審に思うかもしれないが、これはいずれ消せる。

Raspi3_motion  ネットブックを持ち出し、ストリーミング映像を確認する。うん、良く映っている。窓ガラス越しだが、視認性は高い。解像度も問題ない。車の通行も飛ばないで映っている。いやあ、これは簡単だ。定点カメラとしての実用性は十分だ。

 日が暮れてきた。人間の目ではかなり暗いが、映像ではまだ十分な明るさだ。これでmotionの動体検知の機能を稼働させ、画像ファイルをSAMBAに入れて、遠隔地からその画像を確認するという手順が可能になった。

 カメラの固定がまだ仮りの状態なのと、引き回すのに有線LANではなく、WiFiにすることが課題に残っているが、今回のプロジェクトは何とか想定通りに進みそうである。

無線LANでもmotionは快調に動いたが。SAMBAが不調(2/28/2017)
 最後の仕掛けに挑戦する。Raspi3から実装されたWiFiである。定点カメラの移動の際、有線LANではなく無線(Wifi)にできればとても楽だ。セキュリティの問題はあるが、どうせ家の中から撮った外の景色が外に漏れたとしても大した問題ではない。

 Raspi3の無線LANの設定は多数のウェブサイトに紹介記事があり、インストールに不安はない。適当なサイトを選んで設定を進める。ただ最近の改定で、設定方法がかわり(dhcpの指定ファイルが一元化された)、設定方法が複数あるようで少し混乱する。

 LANケーブルがなければカメラの移動は大変楽になる。電源ケーブルさえ気にしていればいいからだ。motionの結果は、ストリーミングを利用して他のサーバーに送ったり、SAMBAディスクに記録して離れたところから眺めたりできる。

 WiFiの設定は、簡単にできた。ifconfigでIPアドレスを確認する。ここも、固定アドレスにする。メインPCからSSHでRaspi3にログオンする。よーし、入った。次はいよいよ動画ストリーミングだ。

 おお、何の問題なく画像が出た。動きは有線のときと全く遜色ない円滑さである。いやいや、これは楽だ。今後、Raspi3を移動体に載せて動画中継をすることも可能になる(電源が大変だけど)。

 勢いに乗って、SAMBAサーバーが動くか確認する。しかし、Wifi経由では、SAMBAがつながらなかった。確かに、有線LANと無線LAN2つに経路が出来たとき、経路を選ぶ設定パラメーターはSAMBAにはない。何か別の理由があるようだ。

 調べ始めると、意外に根の深い問題であることがわかった。そのうち確定申告の期限が迫ってきて、電子工作に時間がかけられなくなった。このあたりで記事をまとめて、話の続きは次回に報告するとしよう。

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

2017年2月 1日 (水)

RaspberryPiのカメラモジュールで定点カメラの野望

 今年もみなさまに新年のご挨拶をする前に、1月も終わりになってしまいました。昨年同様、正月早々、家族が酷い風邪にやられました。だいたい年末のお節料理の準備で精魂つきはてるようです。

 そんなことで初詣にも行けない散々な状況でしたが、本人だけは5日に学生時代の仲間と珍しく正月七福神詣でをすませ、とりあえず年神さまには義理をはたしました。

Dsc00830 その話はあとでするとして、電子工作の方は相変わらず低調です。というのも昨年来のPCのビデオボードのトラブルが解決せず、これにこだわって万事が進みません。MPU6050の次のテーマとして、滞留在庫の整理を兼ね、RaspberryPiの組み込みカメラモジュールの動作テストをするつもりでしたが、具体的な目的が決まるまで迷走が続きました。

 昨年予定していた忘年会が色々な都合で持ち越しになり、このところ連続して新年会があったことも進まない原因のひとつです。それでも何とか、試行錯誤でアクリル板のカメラマウントをでっちあげ、想定した定点カメラが形になってきたのでブログに上げることにします。以下の報告は備忘録を兼ねているので時系列でわかりにくくすみません(2/1/2017記)。

ビデオカードの不具合に悩まされる(12/29/2016)
 暮れも押し迫ってきたが、電子工作は思わぬ展開で先に進まない。ジャイロセンサーMPU6050の3Dライブラリーのために替えたビデオボードのせいで、メインのPCが頻々とフリーズを繰り返し、安心してPC作業が出来なくなってしまったのだ。

 症状は、ワープロぐらいでは起きないが、動画を見たり、ゲームをしたりすると、画像が途切れエラーメッセージが出る。そのあと復帰することが多いが、時にはフリーズしたり、システムがリセットしたりする。このPCは電子工作専用ではなく、汎用的に使っているので何とかしなければならない。

 出てくるエラーメッセージは「ビデオドライバーの応答がないので、システムをリセットする」というもので、例によってこのキーワードでネットを検索すると、膨大な量の記事がヒットする。Win7時代からの古い問題のようである。何らかの原因で、GPU(ビデオボードのCPU)の応答が遅いと、OSがそのアプリの実行を止めてしまうというものだ。

 少なくとも、元々の内蔵ビデオインターフェース(Intel)では起きていない。ウエブにある症例では、NVIDIA系のボードが圧倒的に多いが、AMDのRADEON系で全く起きないわけでもないという。ワープロや簡単なウェブサーフィンくらいでは起きないが、グラフィック画面で(ゲームのトランプのカードの移動だけでも)大体おかしくなる。

 年賀状も書き終えて、少し暇になったので、色々な対策を片っ端から試してみた。まず、デフォルトで2秒というレジストリーのパラメーターのタイムアウトの時間を、レジストリエディターで5秒に延長する。これでエラーの様子が少し変わったが、頻度はかえって多くなったような気がする。

 次が、ビデオドライバーの更新である。ビデオカードに付属していたドライバーはネットで調べると少し古いので最新のものにとりかえる。全く変化なし。古いドライバーが残っているとおかしくなるというので、ユーティリティを使って古いドライバーの削除とクリーンインストール。これも駄目。

 サイトによっては、NVIDIAのコントロールパネルでのオプションの設定変更だけで綺麗に治ったというのがあったが、全く効果なし。こんな簡単なことで治るわけがないと思う。

 さまざまなことを試してみた。結局のところ最初に比べれば発生頻度は少なくなったような気もするが、完治はしない。頻度が少なくなったとはいえ、ゲームで遊んでいて大事なところでフリーズに見舞われると気晴らしにもならない。フリーズは1分ほど待つと前の状況に復帰することが多いのだが、タイミングが悪いとそのアプリが落ちたり、システムが完全に止まったりする。

 マザーが古すぎて新しいビデオカードと合っていないというのが、どうも最大の原因のような気がする。しかしマザーを変えるとなると、CPUとメモリーまで入れれば、やはり数万円はかかるだろう。そんな馬鹿なことはしたくない。3Dを見るだけのためにとんだ疫病神を引き込んでしまった。

ビデオカードの不具合に決着つかず。別のボードを発注(1/2/2017)

 いずれにしても、こんなに長い間(少なくともWin7時代から)ユーザーを悩ましている問題が全く解決されていないというのも、このPC業界の不思議なところだ。最近のビデオボードのオプションは3D関係(恐らくDirectXというパッケージ)だけで軽く10個以上あり、何か技術の末端肥大を感じさせる。モンスター化して制御不能になってしまっているのではないか。

 年が明けても、あきらめきれず色々しつこく試していた。最も基本的なハードの部分、カードスロットの接触不良を疑い、ビデオボード基板の接点の掃除と差しなおしを何回かやったが、事態は進展しなかった(これで劇的に治ったという報告もある)。

 メモリーとの不適合を指摘するサイトがあり、そこではメインメモリーを交換したら解決したとあったが、この少し古いPCのメインメモリーを買いなおすのはやりたくない。(このサイトは系統的に良くまとめられている。高知の自作パソコンショップが2009年に詳細な調査を行っている。結論はメモリの相性問題ということだ。)

 メモリ交換でなく、PCのBIOSのアップデートでも解決したというサイトもあった。これなら費用もかからない。早速試してみた。久しぶりのBIOSのアップデートである。マザーボードのASUSのサイトを探すと幸い現在のバージョンより先のBIOSが見つかったので(もう2年も前のやつだったが)、入れ替えてみた。

 動かしてみる。ふむ、起きない。これが原因だったのか。暫く使う。駄目だ。1時間ばかり経って、やはり再現した。頻度は明らかに前より少なくなったようだが、全く0にはならない。

 マイクロソフトの基本ドライバーでは全く起きないので最悪の場合はこれに戻せば良い。ただ、このドライバーは3Dをサポートしていないので、Processingの飛行機は動かない。元の内蔵ボードに戻しても動かないことは同じだ。PCを取り替えるという手段も本末転倒である。だとすると、どういうことになる? そう、トラブルの報告の少ないRADEONのビデオボードをウェブで発注してしまったのだ。

谷中七福神詣でをしてきた(1/5/2017)
 しかしお正月なので、品物はすぐには来ない。というので新年での行事をご紹介しておこう。このあいだの筑波山歩きの山(街)歩き仲間が誘ってくれた七福神めぐりである。例年この仲間は、新年に都内の七福神詣でをしているそうだ。今年は、江戸最古という触れ込みの谷中(やなか)の七福神である。

Dsc00839 Dsc00845

 出発点は田端駅近くの福禄寿を祭った東覚寺で、ゴールは上野不忍池の弁天堂である。距離にしておよそ12キロ。街歩きとしては丁度頃合いの長さだ。昔の人は良く考えている。我々一行は正月5日、田端駅に集合した。

 歩き始めてまず驚いたのは、お正月ということもあるが、参詣者の多さである。それも高齢者の小団体が多いのでうっかりしていると他のパーティに紛れて迷子になる。我々も参加者が10人を越えていたので、グループを2つにわけて行動した。 Dsc00857 最近は御朱印帳で参詣の印を押してもらうのがはやっているが(スタンプラリーと同じ趣向)、ここには七福神をイラストした色紙(¥1000)が売られている。ここに各寺、神社の朱印を押してもらう(各¥200)。帰って壁に貼ると結構な正月飾りになる。

 田端駅近くの最初のお寺が少し離れているだけで、ほかは、いわゆる谷中墓地に点在するお寺の敷地内に七福神の祠がある。人通りが多いのはみんな七福神詣の人たちである。お寺によっては長い行列ができている。Dsc00849

 幸い、風もなく絶好の散歩日和で、不忍池の弁天堂で満願成就である。ちょうど日も落ちて来て、お酒を飲んでも後ろめたくない時間になってきた。解散する前に近くのビヤホールで新年を祝って乾杯である。いや生きてきてよかった。

ビデオカードはカードの交換でけり(1/9/2017)
 発注していたビデオカードが届いた。正月休みだったのでネット販売にしては少し時間がかかっている。今度はNVIDIAでなくてRADEON(ATI)である。

 こちらは3Dゲームなどには関心がない。安物で十分だ(玄人志向のHD6450 ¥4000少々)。実は年の暮れ、また秋葉原を覗いたのだが安いものは店頭には殆ど売っていなかった。店頭販売では単価の低い商品は効率が悪いからだろう(数万円が売れ筋のよう)。通販のポイントが溜まっていたので、出費は¥2000程度ですんだ。 Dsc00865 早速、とりかえる。PCI Expressの仕様がやっとわかってきた。前のビデオカードGT710は、PCI Express X8で、今度のHD6450は、X16(スロットのバス巾)ということが始めてわかった。最初のボードのスロットにすき間があったのはそういうことだったのだ。

 結果は予想した通り、トラブルは完全にきれいさっぱり解消した。何時間動かしても、全くフリーズは起こらない。古いマザーとの相性問題というが、これはやっぱり、NVIDIAの不具合としか言いようがない。性能的には、GT710より、3D性能が少し低いが、2DはむしろRADEONの方が高く、何といっても安定しているのが一番である。

 やれやれ、3週間近く悪戦苦闘したあの時間は何だったのか。この執筆時点(1/31)でも起きていない。PC関係で、このあいだのマザーボードといい、このNVIDIAのビデオカードといい、不要不急の部品がまた増えてしまった。ともあれ、これでやっと、本題の電子工作に戻れる。

RaspberryPiのカメラモジュールはあっけなく動いた(1/12/2017)

 電子工作の話に戻る。テーマは、このあいだRaspiのディスプレイを買ったときについでに買ってあったカメラ(Raspi カメラモジュールV1.3 ¥3000少々)はまだ一度も動作させていない。部品棚に眠ったままである(このモジュールは既にV2になって画素数も800万と高性能になっている。価格は高くなってしまった) Dsc00855

 実用ということでは、はっきりした目的はない。自宅の前の道から吸い殻を車寄せに捨てる不届き者がいて家族が怒っている。これを動かして、定点カメラか、ドライブレコーダー的な使い方をしてみれば面白いかもしれない。

 現在、当研究所には、3台のRaspiがある。無印のRaspiが2台(SAMBAサーバー、パンチルトの出来るライブカメラでいずれも最近は電源が入っていない)と、Raspi3が一台である。Raspi3は用途が決まっていないが、電力喰らいなので、無印のSAMBAサーバーにカメラをつなぐ。

 カメラは、最初、逆刺し(絶縁面に接点側が入るので副作用は心配なし)して動かなかったが、このサイトの案内で、専用のコマンド(raspistill や、raspividなど)を使い、簡単に静止画や動画を撮ることができた。

 検証は、SAMBAなのでWindowsディスクにコピーして、PC側で見る。RaspiでXwindowを動かすほどのことでもない。SAMBAサーバーにカメラをつけたのはこれが理由である。

 500万画素もあるので鮮明な画像だ。ビデオも問題なく撮れた。ビデオの再生は、WinPCでは動かなかったので、例の7インチのIGZOパネルを使った。

 config.txtの設定データをこのSAMBAサーバーに移してデスクトップを表示させた。これも順調に液晶パネルが動作し、例の超微細なデスクトップが現れる。シリアルターミナルから、ウェブサイトで教えられた動画プレーヤーomxplayerを実行させる。

 画面はデスクトップ画面である。何かもうひとひねりしないと画像が出ないと思っていたが、一息待ち時間があったあと、突然、画面全体に、工作室を逆さ(カメラモジュールが逆さまになっていた)に映した動画が見事再生された。5秒で10MBばかりのハイビジョンクラスの画像である。とても滑らかな再生で驚く。

久しぶりのアクリル工作は大変だった(1/17/2017)
 さて、カメラは動いたが、課題が2つ残っている。カメラのマウントと、カメラを汎用的なビデオディバイスにすることである。現在は専用のコマンドからで、motionや、mjpg-streamerのようなライブカメラのシステムを動かすには、/dev/videoなどのディバイスファイルにしないといけない。

Dsc00854  それはさておき、まずはカメラマウントの制作である。カメラモジュールは2センチ四方の小さな基板だけであり何らかのマウントが必要だ。それに、FFC(フレキケーブル)が短く、堅いのでカメラの固定が難しい。定点カメラにするならRaspiごと固定する手段が必要だ。

 手持ちのアクリル板を、いつものアクリル曲げ器を使って、カメラマウントに加工することにした。モデルは以前作った赤外線センサーのマウント台である。アクリル板を曲げて2つのコの字フレームを作り、ヒンジで接合する。

 部品庫に眠っていたA4ほどのアクリル板(厚さ2ミリ)をサーキュラーソーで、切り出す。小さなサーキュラーソーなので、20センチ近い長い板の切断は苦手だ。切断面がどうしても歪んできて回転部分の摩擦が大きくなり、下手をすると大事故の心配がある(材料の破損とか飛散)。 Dsc00862

 何とかだましだまし切り出した後、アクリル曲げ器でコの字型のフレームに曲げる。温度が少し低すぎるのか、どうもうまく曲がらない。久しぶりなのでノウハウを忘れてしまっている。温度を上げて何度か曲げを調整しているとき、少し力を入れて整形していたら、ポリっと割れてしまった。

 アクリル板は何度も同じところに熱をかけて曲げていると強度が極端に落ちることを忘れていた。焦げない程度に一気に強い熱を加え一回で曲げ切らないと材料が劣化することを、終わってから思い出す。やれやれ年はとるものではない。 Dsc00863

 結局、外側のフレーム(マウントを固定する方)は2回作り直した。2回目はサーキュラーソーが心配でコッピングソー(糸鋸盤)を使った。外側を半円形に切ると、少しそれらしくなった。

 このあと苦労したのが、チルトさせるためのヒンジの穴あけである。平面時に穴あけして正確な位置合わせをすることは殆ど不可能なので、曲げたあとから穴をあけるしかない。正確な位置決めのため小さいドリル穴から全部リーマーで直径15ミリまで円形を広げたのだが、これが大変で、指に豆を作ってしまった。

 苦労の結果、何とかそれらしいマウントが出来た。ただ、リボンケーブルが固くてマウントそのものを固定しないとカメラを安定した位置に止めることができない。実用的には、Raspiのケースそのものに固定する必要がでてきた。

試行錯誤の結果、まずまずのマウント(1/30/2017)
新年会が続いて工作の時間がとれなかったが、少し落ち着いたので、久しぶりにAitendoに行き、FFCケーブルと無印Raspiのケースが安売りされていたので購入した。

 FFCケーブルは、カメラのケーブルを下から出したくて順目のケーブルを買ってきたのだが、つけてみて大失敗に気づく。このまえのESP8266変換基板のときと全く同じである。FFCケーブルの接続面を替えたら接続は全く逆になる! これをつけてからそれに気が付く馬鹿さ加減にまた暫し呆然となる。

 これは買いなおすとして、はずみで買ったRaspiのケースはあたりだった。うまいぐあいにケース上段に段差が出ていたのでそれにあわせてマウントに溝を作り、きっちりその段差に固定する。おお、ぴったりカメラは固定された。こいつはうまくいった。嬉しくて記念撮影。

Dsc00864  さて次はソフトである。motionなどのライブカメラで動かすには、汎用的なディバイスファイルにするしかけが必要である。もとのSAMBAサーバーのOSはV3のWheezyで汎用的なビデオパッケージVideo4Linuxをサポートするカーネルモジュールが入っていない。最初、このサイトの情報でインストールを試みたがうまくいかなかった。

 そこで、OSの取り換えを試みる。最新バージョンのJessieが無印のRaspiで動く保証が得られなかったがだめもとで入れてみた。幸い、何事もなく順調にインストールに成功。めでたく/dev/video0というディバイスファイルが出た。

 これであとはmotionや、jpeg-streamerなどのインストールをすれば定点カメラが完成する。ブログの紙数も増えてきたので、このあたりで報告を一段落しよう。

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

2016年9月11日 (日)

電子工作は復活できるか。行き当たりばったりの工作

 また更新が遅れている。とうとう8月は記事を一本も出せなかった。このブログの大きなテーマである電子工作をろくにやっていないので書くことがない。当然と言えば当然なのだが、電子工作を始めてもう10年近く、ブログも8年を経過し、このブログは自分の備忘録として欠かせない存在になっている(物忘れがひどいのでこれが頼り)。

 大げさに言えばこれが人生の一部になってしまったような感じで、何か書いていかないと、自らの存在を否定してしまうような恐怖感を覚えるほどだ。ということで、読者の方には甚だ申し訳ないが、今回も脈絡のない行き当たりばったりの電子工作の記事を読んでいただくことになる。申し訳ない。

赤外線学習リモコンはとりあえず撤退。復旧作業に入る(8/1/2016)
 Windows10のインストールにかまっていたら、あっというまに8月になっていた。前回はやっとのことでブログ記事を上げたが、電子工作の部分は極くわずかで、大部分は、同窓会と病気とPCの話ばかりである。工作机のブレッドボード上の学習赤外線リモコンの配線は、ロジアナのプローブで山盛りのように盛り上がったままである。

 とにかく、先に進む意欲が生まれない。迷路に入ってしまったこともある。テスト対象にしている赤外線リモコンボリューム(自作)の方が頻々と暴走を繰り返すので、本題の学習リモコンのトラブル解明が進まないのだ。

 ロジアナで見る限り、ちょっと見たところでは、正しいビット配列を指定の時間間隔で出しているように見える(リーダービットなど)。しかし受け側の赤外線リモコンボリュームは全く反応しない。手持ちの市販リモコン送信機では苦も無く反応するのに、どうにも気分が悪い。

Ws000006 このリモコンボリュームは、Tiny2313を使っているので、SRAMが128バイトしかない。必要なデータを表示しようと思うと、すぐスタックがオーバフローし、リセットされてしまう。こいつのデバッグをしていると何かとても無駄なことをやっているような気がして気分が盛り上がらない。

 別のテストベンチを作るか、記録するデータを長さのデータではなく、一度デコードする方式に換えれば、先に進むのだろうが、これらを変えるのは、すべてかなりの手間(恐らく今のTiny861では無理)になるので、さらにやる気が起こらない。

 暫く放(ほう)ってあったが、このまま立ち枯れ状態になっているのも始末が悪い。とにかく、このテーマからは撤退することにした。ロジアナのプローブを片付けて机を整理する。テストのため、いじっておかしくなった(時々止まる)リモコン電子ボリュームの復帰から始める。

Dsc00525

 現在この電子ボリュームは使っていないとはいえ、元通りにはしておきたい。ソースに入れたテストステートメントをすべて抜き出して再コンパイルする。暴走はしなくなった。しかしこのボリュームの売りである電源を切る前のボリュームの位置を再現しなくなった。

 このしかけは、リセットICを使って、電源が切れる寸前に制御信号を入れ、EEPROMにその時の音量レベルを記録することで実現している。ソースコードを調べているうちに、リセットICの制御ピンとUART受信ピンが被っていることを発見した。テストのためのUART受信を生かしたままになっていた。

 やれやれ年は取るものではない。これまでのソースやブログの記事に明記していなかったので、このことをすっかり忘れていた。UART受信を無効にし、これで電子ボリュームは完全復活した。組み立てなおして所定のオーディオラックの位置に戻す。

アームクローラーの玩具を買ってみる(8/10/2016)
 simさんのブログに載っていた、キャタピラーが2重になった不整地走行可能なアームクローラーの玩具が急に欲しくなり、いつのまにかアマゾンの購入サイトでボタンを押してしまっていた。

 何かの当てがあるわけでもない。どれくらいの不整地まで踏破できるのか試してみたくなったような気がするが、これは衝動買いを正当化する言い訳で、要するに気分が乗っただけである。電子工作も本来はこういう「ときめき」から始めるべきで、無理にやるのは無駄が多い。自戒である。

 キットは、単に直進するだけの機能で価格は¥2000しない。しかし¥2000以下だと送料がかかる。良くしたもので、2モーターのリモコン対応の部品をつけると送料無料の金額になるセット販売の案内がある。躊躇なくこちらを選ぶ。昔はこういうのに抵抗があったが、今は全くない。

Dsc00569 到着したタミヤのプラモデル風のクローラーの組み立てに熱中する。作りながら、これをこれまでのリモコン用の機器をどう組み合わせるかあれこれ考える。もうXbeeは良いだろう。ESP8266かIntel Edisonか、それともRaspberry Pi(以下、Raspi)か。

 いずれにしても手を動かしていると、スランプを忘れる。2モーターのモーターアセンブリーも一緒に組み立てる。組み立てたあと、シャフトが違うことに気が付き、もういちどギヤボックスの組み立てをやりなおし。説明書が微妙に不親切だ。

 モーターの配線に2か月振りにハンダごてに火を入れ、雑音抑止のコンデンサーとリードをハンダ付けする。モーターを回してみる。問題なく両方動いた。とりあえずこれでメカの部分は完成である。

IGZOの液晶パネルを買ってしまう(8/18/2016)
  そのうち、オリンピックが始まった。予想外の選手がメダルを獲ったりして、日本が盛り上がっている。いつものようにメディアが金属回収業者のように「メダル、メダル」と叫び、例年このプレッシャーに負ける選手が続出するのだが、今年は続々と表彰台にあがる日本人選手の笑顔が何度も画面に映る。

 吉田沙保里の4連覇は実現しなかった。五輪主将はメダルをとれないというジンクスがあるらしい。しかし銀メダルなら大威張りではないか。若手が台頭してきたのだから先輩は喜ぶべきで、表彰式まで泣きじゃくるのは少々大人げない感じがした(主将なんだから)。

 クローラーの組み立ては終わったが、これをリモコンにするための実装の良いアイデアが浮かばずそのままになっている。そのうち、ウェブをみているうち別のものに関心が移ってしまった。

Dsc00553_2 これもどなたかのブログで、Raspiの液晶パネルの話が出て、以前から気になっていたのだが、急に再燃して欲しくなってしまった。夏休みで10日近く休んでいた事務所に出た帰り、久しぶり(2か月以上)に、秋葉原を訪れる。秋月電子はいつものようにごったがえしていた。

 この盛況を見る限り、電子工作が下火になった感じはしない。Raspi用の液晶パネルは前と同じ、店の前の平積みのカウンターに無造作に積み上げられていた。ついでに500万画素もある専用カメラなども購入。珍しく2万円近い出費である。

IGZOパネルは最初は気難しかった(8/20/2016)
 秋月には、2種類のRaspi用のパネルが売り出されている。ひとつは、純正のタッチパネルがつき、専用のインターフェースにつける、800x480のもの、もうひとつは、SHARP製の、何と1920x1200のパネル。どちらも7インチだが、SHARPのIGZOパネルは、HDMIインターフェースである。Dsc00551

 値段はどちらも1万円を超すが、どちらにするか迷うところだ。結局、汎用性、性能対価格比の優るIGZOを買うことにした。7インチで1920ドットである。フレキケーブルが微妙だというので、専用のスタンドも一緒に購入した(¥2000)。

 帰宅して、液晶パネルを取り出す。まず驚くのがその薄さである。スタンドのアクリル板の保護シートを、傷をつけないよう慎重にはがし、パネルを挟み込む。2枚ある基板を付属の取り付けポストを使って背面のアクリル板に固定する。

Dsc00552_2  ここまでは、それほど難しい作業ではないが、一番難儀したのが、薄紙のように薄いFP(フレキ)ケーブルの接続である。不安定な状態でパネルを持ち、基板側のソケットにケーブルを接続しなければならない。

 特に電源側は、4ピンしかなく、髪のように細い。ブログにも、この4ピンFPケーブルがコネクターに刺さらず泣いたという話が紹介されている(ハッチの上がる方向が逆)。こちらも何回か予行演習をしたあと何とかつながった。

P9057517 しかし、基板とFPケーブルの周りは裸で、このままでは何かの拍子に、ものが当たって、ケーブルが切れる心配が十分ある。色々考えた挙句、コネクター周りにプラスチックのガードを2面つけた。それにしてもこの細かさは尋常ではない。

config.txtはRaspiのBIOSだった(8/21/2016)
 久しぶりにRaspi3に火を入れる。順調にシステムは立ち上がったが、液晶は真っ暗のままだ。電源はシステムが立ち上がる前に入れておかないといけないとか、画面が出ているときに不意に電源を切ると液晶ピクセルが壊れるとか脅されている。えらく気難しい。

 何度か説明書を読み込み、指定通りのconfig.txtをtelnetを使って作ったが、画面は出てこない。config.txtを戻して、これまでのPCのHDMIケーブルを差し替えると、問題なくRaspiのデスクトップが出るので、犯人はこのconfig.txtの設定か、液晶パネルそのものである。

 心配なので、FPケーブルのコネクターの差し込みをやりなおす。念のため、実体顕微鏡を持ち出して、コネクター周りを視認する。大丈夫なようだ。とするとconfig.txtの設定誤りということになる。

 調べてみると、config.txtとは、RaspiのBIOSにあたる部分で、ハードに密着しており、少しでも違うとおかしくなることは十分考えられる。試しに、このパネル用のconfig.txtで立ち上げると既存のPCディスプレイでも真っ暗になる。

 もういちど説明書の、config.txtの記述と、実際のコーディングとの違いを調べ始めた。その結果、2か所も間違っていた。最初の、hdmi_pixel_freq_limit=200000000の0がひとつ多すぎるところと、frame_buffer_height=1200をmaxと同じ1920にしてしまっていた。Dsc00558

 これらを直して、祈る気持ちで再度、raspiの電源を入れる。おーし、液晶パネルのバックライトが明るく点灯し、画面右上隅にアイコンが現れた。とみるまに立ち上げのメッセージが矢のように流れ始める。間もなく、順調にデスクトップが現れた。いやあ小さい、しかし実に鮮明な画像だ。

いやあそれにしても小さい。すごい(8/23/2016)

 IGZOの7インチデイスプレイがやっとのことで動いた。嬉しくて記念撮影をする。HDMIケーブルが大きすぎてパネルが動く。もっと細いケーブルを買ってこなくては。マウスポインターは糸くずのように微小で、文字は殆ど読むことが出来ない。残念ながら画像や動画ビュワー以外の実用性には欠けるようだ。Dsc00555

 アマゾンでHDMIのスリムケーブルを入手した。届いたケーブルを見て吃驚(びっくり)する。こんな細いので大丈夫? 無事つながることを確認した。面白いので以前使っていたケーブルと比較写真。これまでのケーブルではケーブルを動かすと本体が動いた。

 デスクトップ画面の実用化のため、画面拡大の方法を模索する。調べた結果、Ubuntuにkmagという画面拡大のアプリがあり、これが一番使いやすそうである。しかし、raspiのOSは同じdebian系統だが、ubuntuではない。ウェブを調べたが、確証はとれない。

Dsc00566  だめもとで、試しにraspiで apt-get install kmagをやってみたら、感心にもインストールを始めた。無事、エラーもなくインストールされたので、勢いでkmagをターミナル端末から直接入力した。なんと、無事にubuntuのkmagがraspberryPiでも動いた。

 今のところ、kmagを立ち上げるところだけが細かいが、そのあとはそう苦労せずにターミナルからのコマンド投入が行えるようになった。少しは実用に近づいたかもしれない。

MP4212の回路に大きな誤解があった。モータードライバーを作る(8/15/2016)
 ウェブで刺激されて買った、キャタピラーが2重になって荒れ地を走行できるクローラーの玩具の話に戻る。モーターが動くところまでで止まってて、次はこれを何でドライブするかである。モータードライバーは、MP4212にしようと思っている。

 世間には数限りないモータードライバーが売られているが、へそ曲がりの所長としては、出来合いのモータードライバーを使うのには抵抗がある。どうせなら、裸に近い形から作りたい。といっても「へたれ」なので、単体のFETやパワーTRから組みこむのは疲れる。

 そこで、MP4212だ。このFETモジュールICはとうに生産停止になっているが、まだ在庫があるようで、入手性はそう悪くない(千石やサトー電気で買える¥300程度)。モーターの正逆転回路、HブリッジをひとつのICで実現できるようコンプリメンタリーなFET(N-MOSとP-MOS)が2つづつ入っている。

 このFETモジュールは、以前、自作サーボモーターの時使って、回路図まで公開している。しかし、今度のクローラーで調べているうち、もっと安全で簡便な回路があることがわかった。前の回路は、間違っているわけではないが、使い方によっては、ICを燃やす危険がある。

 前の回路は、正転と逆転のそれぞれの制御信号があるが、これを両方Highにすれば、貫通電流が流れる危険があるのだ。ソフトでそうならない保証はない。今度見つけた回路は、正転、逆転の2つの制御信号が同時にHighになっても、モーター部が短絡するだけで(ブレーキがかかる)、電源側は短絡しない。しかも前は必要だったドライバーのトランジスターが不要である。

 この回路図をみつけたので、急に自分も作りたくなった。オリジナルは、ドライバーにフォトカプラーを使っているが、同じVccを使うならこれもいらない。ブレッドボードで手早く作り、動くことを確認した。

リアルタイマークロック(DS3231)の月差は1秒以下(8/27/2016)
 クローラー工作の続きで、ESP8266のPWDでモーターを動かそうと、棚に放置していたESP8266を引っ張り出した。このブレッドボードには、I2C機器のテストに使ったRTC(DS3231)が付けたままになっている。Dsc003860002 ヘルスチェックのつもりで通電し、今年の4月1日に接続したままの時計の計測をしてみた。このRTCは以前のブログ記事に、月差が2秒以内と紹介した記憶がある。

 今測れば、4か月、149日間の誤差を測ることになる。シリアルポートを生かし、時計の表示を見る。いやあ、これは驚いた、遅れが3秒以内だ。30.4日を1ヵ月として、3X30.4/149 は、月差で0.61秒である。置いてあったところが地下室で温度の変化が少ない所とはいえ、信じられない精度だ。

いやあひどい目にあった。PC突然死亡。結局、電源不良だった(9/8/2016)
 メインのPCが急に動かなくなって、この4日間、これにかかりきりだった。おかげで遅れたブログのアップがさらに遅れて気の抜けたビールのようになってしまった。

 事件は、突然に起きた。いつものようにPCの起動ボタンを押したが、反応がない。電源コンセントがはずれているのかと確かめたが、何も変わっていない。起動ボタンを押して電源ランプが一瞬点くが、すぐに消えてしまうことがわかった。CPUのファンさえ回らない。

 思い当たることは何もない。突然、メインのPCが動かなくなってしばし呆然となる。あちこちいじっているうち、BIOSの画面までは出るようになった。どうもACプラグの差し込みがゆるかったかのような感じである。しかし、Windowsの立ち上げが始まると必ず途中で電源が切れる。

一旦切れたあとは、リセットボタンも、起動ボタンの押下の反応もなくなるので、最初はてっきりマザーボードが、ご臨終になったものだと考えた(これが重大な誤りだったことはあとでわかったのだが、この時点ではマザーだとばかり思っていた)。

 マザーのトラブルは交換するしかない。あわてて、サブのノートPCを使ってウェブで、ASUSの同じ機種のマザーを探す。5年以上も前のマシンなので、もうCPUのチップセットLG755の新品は売っていない。中古のこのマザーの後継機種らしいものを見つけて注文した。

 3日で届いた。いや助かった。すぐ組み立てにとりかかる。久しぶりの自作パソコンの工作である。いくつか切り傷を作りながら(安物のケースは特に危険)、これまでのマザーを取り外し、届いたマザーに組み替える。最初、メモリーだけ積み替えて苦笑い。CPUを忘れていた。

 さあ、組みあがった。電源を入れる。何と、何と、前と同じ症状で、電源が途中で切れた。うはあ、これは大変だ。これはマザーではなく、電源不良の可能性が高い。リセットボタンが効かなかったのでマザーとばかり思っていたが、ウェブによるとこれは電源不良の特徴なのだそうだ。

 時間が惜しいので、直接、秋葉に買いに行くことにした。車を飛ばし、近くのコインパークに車を止め、パソコンショップをはしごする。いわゆるDOS/V通りは、以前と様変わりしてパソコンショップはもう数えるほどしかなかった。

 昔懐かしいTwoTopがまだやっていたので、ここで適当なATX電源(玄人志向の500W)を買い込んで自宅へトンボ帰りする。電源の交換は、マザーほど大変ではない。組み替えて、本当に祈る気持ちで起動ボタンを押す。おお、動いた。OSの立ち上げまで行った。

 しかし、立ち上げの途中で突然電源が切れることを何度も繰り返したため、Windows10は、再起不能の状態で、システムの再構成を要求してきた。仕方がない。それに従うことにする。1時間近くかかって再構成は終了した。電源が切れることはなくなったが、システムの中身は散々な状態になっていた。

 ほとんどのアプリケーションが削除されてしまっている。このあと何とかWordなどを再インストールして、このブログを書ける状態までになった。それでも数多くのアプリが死んだままだ。とりあえず今の状況を報告して、今回の記事を終わることとする。

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

2016年5月 9日 (月)

落穂ひろいの電子工作とRaspiの自動電源制御装置の改良

 Raspi3は簡単に動いた。しかし、もともと目的なしに衝動買いしたアイテムである。適当なアプリケーションはまだ思いつかない。画像処理は高速で、ネットサーフィンもそれほどストレスなく楽しめる。これをサブマシンのPCにしても良いのだが、今、特にそれが必要だということでもない。

 ということで、今まで懸案だったが、手をだしていなかった細々した周辺の工作やトラブルシューティングにいそしんでいた。そのうちひょんなことから新しいテーマが見つかり、連休はそれに夢中になっていた。この話はあとで詳しくするとして、その前のいくつかの作業についてご報告しておこう。

LM380革命アンプのケース入れ(4/15/2016)

 現在、当研究所のPCデスクには、4年前に作ったアナログオーディオチップLM380を使ったステレオアンプが、お菓子の空きプラケースに入って載っている。ケースのサイズが小さすぎ、スピーカー端子がはみ出してしまったため、未完成のままだ。

Dsc004420012  このあと作ったカナデンのデジタルアンプがちゃんとしたケースに入っているのに(といってもタカチの安物だが)比べると、少々扱いが雑で前から気にはなっていたが、そのままになっていた。 

 机の上に置いたままにしているのは、たまにスピーカーコードを切り替えて、こちらで聴くときがあるからだ。透明感のあるすっきりした音で、気分が乗らないときはこのアンプでバロック(それも初期)を聞くと、カマデンより疲れない気がする。

 このアンプは革命アンプと言われ、この制作記事は、今も当ブログで結構アクセスの多い記事のひとつだ。手が空いたので、折角だからこれをまともなケースに入れてやることにした。手を動かしていないと落ち着かない性分になっている。

 どんなケースにするのか、あれこれ迷ったが、結局、カマデンと同型(SW-125)のケースに落ち着いた。うーむ、創造力が落ちているなあ。まあ、形を統一するというのも環境を美しくみせるコツのひとつだと無理やり理屈をつける。

Dsc004210002  こんどは、カマデンのとき失敗した送風孔の位置を正確に開ける工夫をしてみよう。まず、1.2ミリ程度のドリルで下穴をあけ、錐やアートワークナイフで微調整する。そのあと2回くらいドリル穴を換えて所定の大きさ(3ミリ)にする。この結果、完全ではないが、前に較べれば格段に揃った穴があいた。

 基板の固定方法では苦労した。アンプ基板はケースのことを全く考えずにレイアウトしてあるので、可変抵抗器や、入力ジャックが外に出るようにしたら、ケースの側板と基板が干渉して、ケースがはまらなくなってしまった。

 本来なら基板の実装を変えるところだが、無精して、可変抵抗器の軸をパネルに固定することにした。こうすると今度は基板の固定が非常に難しくなる。正確に穴あけをしないと基板固定ポストの接着がすぐ外れるし、開け方を忘れて無理にはずそうとするとポストは簡単に破壊されてしまう。

Dsc004430013  基板の固定は、このままでは可変抵抗器の軸だけなので、フォンジャックを差し込むときはぐらぐらするし、いずれは可変抵抗器は壊れるだろう。どうしたら合理的な固定法があるか頭を捻った。

 色々考えた挙句、ケースには可変抵抗の軸だけで固定し、裏蓋をはめたあと、裏蓋から基板を釣る形で固定した。これでフォンジャックを差し込んでもぐらぐらしなくなった。

 こういう実装方法を考えるのは、実はとても楽しい。参考にする情報もないし基準もないので自己満足そのものだが、うまく行った時の快感はソフトでしつこいバグを見つけた時くらい大きいものがある。Dsc004260004

沢山の実用品の修理。腕時計の自動巻き機の修理にはまる(4/21/2016)
 これまで作った数多くの電子工作品が年を経て次々に故障を始めている。プリンターのLAN電源制御1号機がまた故障した。こいつはモジュラージャックの終端抵抗が内部で断線していることを、一年前、長い間かかってやっと突き止めたものだ。

 件(くだん)の抵抗器はリード線を強く押えたところ復帰したので横着して交換せず、そのまま動かしていたのだがやっぱり再発した。この交換は結構面倒なのでそのままになっている(プリンターの遠隔制御が必要なくなったこともある)。

 メトロノームの正確な時間間隔を測定するリズムキャプチャーも最近ノイズが出てうまく動かなくなった。電池を交換したが症状は変わらない。どうも電圧不足ではなさそうだ。今急にこれが必要ということもない(保有するメトロノームの補正は済んでいる)ので、これも手がついていない。

 そのうち、ここ4年近く毎日動いていた腕時計の自動巻き機もおかしくなった。ソフトパワースイッチを装備し、スイッチの長押しでスタート、さらに長押しでパワーが切れるようになっている。毎日、定期的に動かすため、昔FMのエアーチェックに使っていたタイマーで電源が入るようになっている。

 電源が入った時はソフトパワースイッチでなくても動くようにしてある。一日2回動かしているのだが、このところ時計の時刻が大幅に遅れることが多くなった。電源が入っても動かないときがあるようだ。

 試しに、タイマーではなく単に電源を入れてみる。ちゃんと動く。タイマーでスタートさせてみる。今度は動かない。ふーむ、接触不良か。重い腰を上げて、工作テーブルに持ち込みUARTを付けて様子を見た。すると問題なく動く。いつもの場所に戻す。動かない。何か馬鹿にされている感じだ。

 この装置のUARTはISPケーブルを使ったChaNさんのUARTを改良したものだ。どうもこいつを接続しているときはエラーが起きない。調べるうち現象がだんだん見えてきた。整理すると次のようになる。

Dsc004270005  パワーダウンモードでスリープしているときに電源が切られると、そのあと電源を入れても復帰しないことが多いということがわかった。タイマーがONになっている時間は、この装置の1セットの運転時間より長く、必ずパワーダウンモードでスリープに入る。UARTをつないでいるときは全くトラブルは起きない。

 これまで順調に動いていたのが何故こういう現象になるのかが謎である。接触不良ではない。片手間で調べられなくなった。すこし本腰を入れることにする。ISPケーブルがつながっているのは、MOSI、MISOなどのピンでこれらが全体に影響が出てくるとは考えにくい。あとは、VccとGNDそれにRSTだが、やはり、RST(リセットピン)が一番臭い。

 オシロに接続する。パワーダウンスリープに入ってもRSTはHighのままではある。ここまでは当然だ。しかし、電源コネクターをはずしても、RSTは下がらない。何と、これはどういうことだ。

 早速ウェブに助けを求める。スリープでは、すべてのピンの状態を保持すると書いてある。しかし、電源を切ってもRSTを含めたピンが続くとはどこにも書いていない。この電力はどこから来ている?わけがわからない。

 スリープでなく通常に動いているときに電源を切れば、すべてのピン(RSTを含めて)はあっさりLowレベルに落ちる。ところがスリープ状態では、電源をはずしても、信じられないことにRSTはHighのままなのだ。

AVRのパワーダウンスリープはVccまで保持される!(4/24/2016)
 あわててAVRのデータシートを見るが、そんなことはどこにも書いていない。I/Oピンが保持されるとはあるが、リセットピンまでがそうだとはどこにも書いていない。そのうち、もっと思いがけないことが分かった。そもそもVccが下がっていないのである。オシロを2現象にしてみて初めて分かった。

 確かに、このシステムには、モーターの突発的な駆動電流の影響を考慮して、Vccには100μFとインダクターのフィルターが入っているが、パワーダウンスリープでないときは、電源を切ると、一気にVccは下がるのに、パワーダウンスリープではなかなか下がらない。

 それではと、このコンデンサーを接続からはずしてみた。驚いたことに症状に変わりがない。パワーダウンモードでないときは一気に下がるし、ISPケーブルを差した場合はどちらも簡単に0にもどるのに、パワーダウンスリープ中での電源断では下がらないのだ。

 信じられない。とにかく、この影響でおかしくなっていることは明らかだ。Vccとリセットが0に戻らないので、再度電源を入れると、CPUは不安定な動きになる(暴走状態)。 

 試しに、10KΩでVccピンをシャントすると、あっさり落ちる。しかし、これではパワーダウンスリープ中も、この電流は流れ続け、なんのためのソフトパワースイッチかわからなくなる。なんとかならないか。

 しかもこの問題がなぜ顕在化せずにここまできたのかというのも謎である。少なくとも、ここ半年前までは、全く順調に動いていた。最初の長期動作テストでは、UARTを入れて調べているので、この問題がわからなかったのは当然だが、最近起きはじめたというのが、どうも解せない。

パワーダウンスリープ中の電源断は想定外のことなのか(4/28/2016)

 さらに、もっとおかしいことがわかった。パワーダウンスリープのとき、ACアダプターのジャックをはずして、再度、電源を入れ直すと正常に復帰することが多いのだが、ACアダプターをつけたまま、AC側で電源を切ると(現行タイマーの使用状態)、ほぼ確実にAVRはハングアップする。これは一体どういうことか。

 不思議なことに、ISPケーブルをつけたままでは、この症状は起きない。オシロで見ている限りでは、Vcc、RSTピンの電圧は、2分もすれば、0Vまで低下している。タイマー運転は1日に2回だけ。パワーオンリセットには十分な低電位だと思うのだが、ハングアップが起きているようだ。

 それにしても、経年変化でこういうことが起きている。パワーダウンスリープにしたまま電源を切ってしまうと、どういう動作になるかというのは、調べた限りウェブ上に情報は見つからなかった。

 確かに、ソフトパワースイッチの前提は電池駆動で電源は常時ONであることが前提だ。OFFになることは想定していない。従って、ここでの追及はどうも、CPU内部の話に行き着きそうで、余り深く詮索することは無理なような感じがしてきた。

 完全に暗礁に乗り上げた。こればっかりやっているわけにも行かない、移りたい次のテーマが見つかっている。残念だが、これは少し棚上げにしよう(少し閃いていることがあるが)。

Raspiの電源制御装置2号機の準備(5/1/2016)
 Raspi3周辺でやりたいことが見つかっている。それは以前、初代のRasPiで作った電源制御装置である。スイッチを押すだけで電源が入り、shutdownすると電流量の減少を検知してリレーで電源を切る。一般のPC と同じ操作イメージである。

Dsc004300008  ただ、問題なのは以前のプログラムではshutdown時の電流量が決めうちなので、ペリフェラルをつないだりすると(例えばHDD)、うまくshutdownと認識してくれない。個別にコンパイルし直さなければならない。これを何とかしたい。これが汎用化されれば使いみちはぐっと広がる。

 初代のRaspiに較べ、RasPi3は2.5Aが最大電流なので、前の2Aのリレーでは不安である。もう一台作ることにする。部品箱から手持ちのリレーを探す。たまたまあった3Aは少し大きく、これまでのケースには入らない。

 今度はUSBソケットを入れる予定だが、手持ちの少し大きいケース(タカチSW55)では何か間抜けな感じだ。ということで久しぶりに秋葉原に行って部品を調達することにした。

久しぶりのAVRの開発とケース工作にはまる(5/3/2016)
 連休中の秋月は大混雑していた、RasPi3が店頭に平積みで山のように並んでいた。値段は前と同じ¥6200で、どこよりも安い。早まってよそで買ってしまったことを少し後悔する。

 それはともかく秋月で見つけた3Aのリレーは前と同じ大きさで、余り小型化に寄与しない。諦めきれずに千石本店の2Fに行く。さすが千石だ。沢山のリレーがあった。値段は、秋月の4倍以上するが、スイッチング最大電流は2Aで最大通電電流3Aの国産オムロンのものが見つかった。

Dsc004290006  しかも、こちらの方が格段に小さい。これだけ小さくなれば、USBソケットを入れても前と同じケースに入るかもしれない。4倍といっても単価は¥400台だ。迷わず買い込んだ。リレーがこんなに高くても、この装置の部品代の総額は¥1000以下で押えられるはずだ。

 ただ、本当にこれまでのケースに入るか心配なので、これまでの小さいもの(タカチSW-40)に加えて、これより少し大きく、今までのものより小さいSW-50というのも念のため買っておいた(¥120)。

 帰ってきて部品合わせをしてみると、これが大正解だった。今度の装置はUSBのAタイプのジャックを入れることにしたのでSW-40はとても入らない。SW-40の1.5倍の大きさのこのSW-50がぴったりだった。

  小さなケースの工作は久しぶりである。楽しい。アートワークを念入りにやる。この前のときは、しっかり誤配線をした。ピンとピンの間隔が少ししかないので間違いやすい。回路図は前と全く同じにする(ソフトをこの前の無印Raspi用と共用したいため)。

 ケースの固定でまた遊ぶ。この前のものは2.6ミリの小さな固定ネジを4つも使っていたが、今度は裏蓋は単に蓋にするだけで、ケース上蓋に全てを実装することにした。

 考えているだけでは、先に進まないので、基板を切りだして、実際にソケットやプッシュスイッチを仮止めして、ケースと現物合わせをしながら入るかどうか試してみる。対象が小さいので自由度が極度に制限されるが、これが楽しみの要因になっている。箱庭、盆栽と同じような気分である。

Dsc004330007  ケースに少しづつ穴をあけ、部品がうまく入るか何度も調整を重ねて先に進める。USBソケットが出る穴を少し大きめに広げると、ちょっと見栄えが悪くなるが、きれいに入ることが分かった。ケースはABS樹脂なので加工が容易なのが助かる。

配線は間違っていなかったがTiny13を2回も逆ざし、一個失う(5/5/2016)
  ハードの実装は見通しがついた。次はソフトの方である。大分前から考えている(ソフト開発は紙と鉛筆さえあれば、いつどこでも出来る)。ターゲットはTiny13なので沢山ロジックは詰め込めないが、通電中の電流値をEEPROMに蓄積し、これが1/3や、1/2になったときshutdownと判定するロジックで良いはずだ。ただ、1KB以内に収めたい。Tiny85でも良いが少し勿体ない。

 最終的に決まったロジックは以下の通りである。EEPROMは使う必要がなかった。まず、Raspiの消費電流をシステムが立ち上がった一定の時間の後から計測を始め、この平均値から一定量以下の電流値をシャットダウン時の電流とみなして、この値で待機する。

 このロジックの根拠は、沢山のペリフェラルがあっても、シャットダウンのときとアクティブなときの間の電流差は一定という考え方に基づいている。比率でシャットダウン電流を推測するより汎用性があるはずだ。

 擬似コードでは、簡単に「一定時間待ったあと電流の平均値をとる」と書いたが、実際のコーディングはどうしたら良いのだろう。 プログラムは考えたようには動かない、書いた通りにしか動かない。まあ、あまり深刻に考えてみても仕方がない。コーディングしてみよう。

 書き始めると思ったより簡単に実現できた。もともとこのシステムは電源を入れた後、定期的(0.5秒毎)にADコンバーターを動かして電流値を測定している。この回数を記録しておいて、一定の期間の電流値をしまっておくだけである。それまでは、強制終了以外の電源断は行わない。途中で止めれば、最初からやり直すだけである。

Dsc004350010  さあ、出来た。考えたようにコンピューターは動いてくれるのか、ドキドキの瞬間である。

無印Raspiの2機とRaspi3で完動(5/7/2016)

 始めは、慎重にセメント抵抗を負荷にしてテストを始める。おやあ、頼りのUARTが出ない。同じ配線なのに、おかしい、何か虫が知らせたので、すぐ電源を切り、部品を触る。アッチッチ、CPUがやけどしそうに熱い。これはいけない誤配線だ。

 8ピンのCPUの配線を前回に続いて間違えるとは情けない。基板を裏返して最初から配線チェックをする。間違っていない。うーむ、どうしてだ。まさか、CPUを逆差ししているのでは、はい、逆になっていました

 あの熱さでは、息が絶えているか心配だったが、幸い、Tiny13はけなげに生き返ってレスポンスを返し、ファームの書き込みも無事に終わった。祈る気持ちで再度電源ON。よーし、ボタンを押すと、SCKを使ったUARTからメッセージが出て、1秒ごとの電流値を表示し始めた。(実はこのあと実装でまた逆差しし、ひとつをお釈迦にしたことは秘密)。

Dsc004390011  秋月でついでに面白がって買ってあったUSBメーター(積算値つき)をつけて、本番のRaspi3に接続する。1分後から計測を始める。30秒の平均値を出し、それより200mA低い場合はshutdownとみなすロジックにした。USBメーターは0.27Aを示し、shutdown時は0.04Aなので、これでぴったりマシンの電源が切れた。

 次は問題のSAMBAサーバーにしている無印Raspiのテストである。このRaspiにはハブ経由で2.5インチHDDがついている。HDDだけで0.2Aは常時流れる。最初作った電源制御装置は、この待機電流にそなえるため、コンパイルしなおして初期値を設定した。

 新しい制御装置に切り替えて、つまりRaspi3の設定のままで、テストする。何事もなく立ち上がった。shutdownである。こいつは、GPIOピンを見てshutdownコマンドを送る機能がついているので、所定のスイッチを長押しする。LEDの点滅が激しくなり、shutdown処理に入った。

 少し長い間、高負荷の電流が流れた後、「チッ」と小さな音がして、無事電源は切れた。よーし、それでは、もうひとつの無印Raspiはどうだ。こいつは今動かしていないが、ウェブカメラのサーバーになっている。

 こいつも問題なく、スイッチひと押しで電源ON、shutdownコマンドで電源OFFが実現した。うーむ、今度は売り物になるかもしれないな。今までのものは機械にあわせてコンパイルしなおす手間が必要だったので、みんなに使ってもらうことを躊躇っていたのだが、これなら問題ない。

こちらにTiny13による電源制御装置2号機のソース一式をAtmelStudio7のフォルダーの形でzipにかためたものを置きます。回路図は前の1号機と全く同じで、ソフトは共用できます。

「AutoPwr13a.zip」をダウンロード


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

2016年4月11日 (月)

ESP8266の冒険(3)は一段落。Raspberry Pi 3に手を出す

ESP8266モジュールのWiFi接続のキャンセルには成功(3/20/2016)
 安価なWiFiモジュールであるESP8266で色々遊んできた。その結果だが、こいつはブラウザーなどの重いネットワークの仕事はさすがにちょっと無理なことがわかった。深く解析したわけではないが、デフォルトの状態では画像の表示や中継転送速度は話にならないくらい遅い(前記事参照)。

 32ビットのCPUなので期待していたのだが、CPUクロックが80Mhz程度ではやはり力不足のようだ。リモートセンサーの数値データの送信や、リモート機器の制御などに使うのが無難だ。ただこちらとして問題なのは、このなかに、作りたいと思うアプリケーションが見つからないことである。02p1257479

 温度・湿度センサーに今のRTC(リアルタイマークロック)のデータを足してサーバーに送る携帯型の温湿度ロガーあたりが、差し当たっての有力候補なのだけれど、これをすぐ作ってみようという気分にどうもならない。

 当研究所のモットーは「実用に役に立つものを作る」ことである。なるべく「作りました、動きました、おわり。」というのは避けるようにしている。目的がないときは強引に目的を作る。これはなぜかというと、目的のない機械(しかけ)は制作努力を何にかけるかの焦点がぼけるため、圧倒的に開発効率が悪い。作った後の達成感にも欠ける。

 その意味で、温・湿度ロガーは目的ではある。しかし、無理に目的を作った感じなので、どうしてもその気になれない。とはいえ、折角、新しい世界であるESP8266(というかArduino環境)に慣れてきたのだから、もう少し付き合ってやろうと、これまで気になっていた細かい課題を解決することにした。

 それは、立ち上がりのときのUARTモニターのゴミ(字化け)と、バックグラウンドで自動的に動きだすWiFi接続のメッセージである。双方ともUARTを使わない限り何の支障もないし、無視してしまえば良いのだが、UARTを出力画面にしているときは何となく目障りだ。

 リセット直後のUART開始メッセージのゴミは、ESP8266のROMモニターが出している。ボーレートが74800bpsという中途半端な値なために字が化ける。調べたところでは、ユーザープログラムで、これを制御することは出来ないようだ。

 もうひとつのWiFiが勝手に立ち上がる問題である。これは、Arduino IDE環境におけるプログラム開発特有の問題だと思うが、LED点滅のような簡単なプログラムでも、必ず背後でWiFiが動きだし、WiFiの開始メッセージがUARTに出てくる。

Esp8266rtc  ウェブを探すと、WiFiをステーションモードにすれば、これが止められるという情報が見つかった。早速これを試してみた。しかし、ステーションモードにしても( WiFi.mode(WIFI_STA);)、止めることは出来なかった。

 出来ないとなると、余計気になるというのが当研究所の所長の性分である。さらにしつこく、あれこれサイトを探索する。すると、開発ライブラリーキット(SDK Sytem Developpment Kit)に、色々なモードを設定するAPIを見つけた。

 ここには必ずWiFiを制御するAPI(関数)があるはずだ。しかし一通り調べたが、見つけることは出来なかった。そもそも、このSDKは良くわからないところがある。実ライブラリーの所在がArduino IDEの中で不明である(バイナリーをどこにリンクする?)。サンプルソースには、このincludeステートメント(#include "user_interface.h")が入っているだけである。これだけでSDKのAPIが動くのか。

 半信半疑でテストしてみた。なんと、簡単にSDKバージョンを示す関数が動いた。しかし動かない関数もある(os_printfなどは動かない)。何やら問題としては奥深い、キーワードを頼りに、さまざま資料を探し回るが糸口が見えない。オープンソースという割には、情報がネットで不足している。

 良い加減飽きてきて、別のことをやっているうち、偶然、SDKの関数群の中に見つけた。何ということはない、その名もずばり、Wifi_station_disconnect()という関数があるではないか。今までの俺の目は節穴だったのか。

Ws000002  早速、これを持ってきてテストしてみた。ビンゴ!であった。見事にWiFiが止まって、無用な接続メッセージが止まった。久しぶりの達成感に幸せになる(安い娯楽だ。この項4/1/2016)。

RTCは恐ろしく正確だった(3/25/2016)
 ESP8266につけたRTC(リアルタイマークロック)のテストを続けている。これまでのところ、このI2CでつないだRTC(DS3231)の精度は極めて高い。3日連続で、1秒(0.5秒以下)行かない。このままでいくと月差は数秒と市販のクオーツ時計並みの正確さになる。

 遅ればせながらDS3231のスペックで確かめる。スペックによれば、±2 ppm(0~40℃)ということである。月差を調べてみる。1か月は、24 * 365 * 60 * 60 / 12(秒)なので、2,628,000秒。2ppmとはこの50万分の一で5.256秒となる。実機はこれを上回りそうだ。

 当初はESP8266の実用的なアプリケーションとして、このI2CのRTCに同じようなI2Cの温湿度センサーを加え、可搬型の温湿度ロガーを作ることを考えていた。好きなところに放り出しておけば、勝手にデータを記録し、蓄積する。定期的にネットに接続して送信する。

 どうせならウェブでグラフを出したい。データの蓄積は、ESP8266のフラッシュで十分か、省電力設計をどうするか、ウェブサイトにあるように何かIOT用の中継サーバーを利用するのか。あれこれ迷う。なかなか仕様が決まらない。これを作ってESP8266をそろそろおしまいにしたいのだが、いつまでも決まらない。

 そのうち赤外線のコードを記憶して再生するプロジェクトを見つけた。スマホを入力端末にして、赤外線リモコン(エアコン)を簡単に、ネットを通して遠隔操作が出来る。おお、これなら、温湿度ロガーより実用的だ。寝室のエアコンを居間から制御できる。

 仕様の決まらない温湿度ロガーは棚上げにして、このスマホを端末にしたリモコンの遠隔操縦をESP8266の卒業制作にすることにした。実は他のプロジェクトが待っている。最近、秋月でも売り出したRaspberry Pi 3である。

無線(WiFi)ルーターにはまる(3/27/2016)
 その前に、別の騒ぎを1つ紹介しておこう。ESP8266を本格的に運用するために、我が家のWiFi環境を整備しようと、手頃な無線ルーターを増設することにした。

 これが、めたらやたら設定の難しい無線ルーターにあたったのである。恐らくどのメーカーでも同じと思うので公平を期すため、ここではメーカーの名前は出さない。まともにつなぐのに2日以上かかった。 Dsc004150001_2

 現在、我が家のメインの無線ルーターは地下室と1Fをつなぐオープンスペースに設置され、1F居間と、地下のPCルームをカバーしている。このままでは、2Fが不感地帯となり、ESP8266を実用的に2Fのエアコンのリモコンにすることができない。

 従って、無線ルーターを1Fに上げ(こうすると2Fはカバーする)、地下は中継ルーターにすれば全域がカバーできる。ついでに1Fトイレのような難接続地域も解消できる。

 どうせ組み込み機器は最新のプロトコルはサポートしていないので高いものを買う必要はない。量販店で在庫切れになる寸前のルーターを探した。大体最大で600Mbps程度のものを選ぶ。値段も定価の半額以下の¥3000台で手に入る。

 設定を難しくしたのは、一般的なルーター設定ではなく、アクセスポイントとして使っている無線ルーターの中継(リピーター)機能の設定だったので、余計難しかったのかもしれない。

 始めは、単なる中継機能なので、簡単に設定できると思ったのだが、説明が少なく難航した。設定自体も、いくつもの手法があるのが、そもそもの混乱のもとなのだが、その内容が説明書だけでなく、ネット上の解説でも少しづつ違うのが問題だ。

 会社のサイトの情報は豊富なのだが、これがことごとくその解説どおりに動かないのである。説明されている画面が実際の画面と少しづつ違う。類推を利かせながら先に進むが、たいていはどの手順でも途中でエラーになってしまう。

 メーカーとしては何とかお手伝いしたいという誠意は感じるのだが(情報は多い)、どうしても先に進めない。特にやろうしていることが通常のルーター機能ではなく、中継(リピーター)機能なので余計混乱する。

 Netブック(WiFi機能あり)、メインのPC(WiFi機能なし)、スマホの3台を総動員し、だましだまし工場出荷リセットを10回近く繰り返してやっとのことで成功した。

 成功したと言ってもリピート機能は確認が難しい。SSIDが同じになってしまうからだ。正常に動いているように見えるが、新設した中継ルーターの電源を切っても通信速度が変わらなかったり、どうもおかしい。

 しかも、設定しようとした2.4Ghz帯(802.11/g)の中継がどうしてもうまく行かず、5GHz(802.11/a)にしかつながらない(リピート機能は単一バンド単位しか効かない)。5Ghzは自宅では速度は早いのだが、感度不足で、問題の地下や1F洗面所などの難接続地帯を解消できない。

 最後は少し離れた場所からのスマホでの設定で、やっと2.4GHz帯のリピート機能に成功した。偶然、スマホが2.4GHz帯のSSIDを発見した。何故、スマホでの接続に成功したのはわからない。まあ、動いたのだから、そっとしておこう。

RaspberryPi 3を衝動買い。OSのダウンロードに2時間以上かかる(4/1/2016)
 RaspberryPi 3である(以降RasPi3)。このブログを振り返るとRaspberryPiにはまっていたのは、もう3年前のことである。こいつにウェブカメラをつけたときの記事は今でもアクセス上位を占める当ブログの人気ページでもある。

 あれからRaspi 2というのが出たが、これは導入せず、IntelEdisonにした。今度のRaspi3は、飛躍的に性能の上がったRaspi2に較べれば、1.5倍の性能比だが、初代からは10倍もあるという。何しろクロック1.2GHzのQuad CPUなのだ。

 それに、WiFiやBlueToothも実装済みである。WiFiは技適が心配だが、ウェブ情報によれば、これもクリアし、先ほど秋月電子でも販売を開始したというニュースが飛び込んだ(即、売り切れたそうで、現在も在庫切れ)。

 ESP8266の冒険も一段落したので、目的もないのだが急に欲しくなった。どれだけ性能が上がったのが自分の目で確かめたい。売り切れと聞くとなおのこと物欲を刺激する。大所の店は売り切れのようだが、最近は、アマゾンなどの通販でも電子部品を手に入れることができる。

「Raspi3 販売」で検索すると、沢山ヒットした。秋月より少し高いがいくつものショップが売り出している。WiFiの技適が通っているのか一抹の心配はあったが、アマゾンが一番安かった(¥6458)ので、早速ポチッとしてしまった。

 数日後アマゾンからRaspi3が早くも届いた。心配していたが、技適マークがちゃんとついた正規品だった。

Dsc004170001 Raspiのインストールの案内はウェブサイトに山のようにあるが、意外にRaspi3のものは少ない。でもソフト的には2と全く同じだというので、サイトの情報を頼りに、手始めにOS(Raspbian)のイメージのダウンロードを気楽に始めた。しかし、これがえらい時間がかかったのである。

 総量は1.5GBだから大したことはないのだが、先方のサーバーが遅い。午前0時ごろから気楽に始めて終われなくなってしまった。次の日は出勤日なので、早く寝ないといけないのだが、こういう時に限って止められない。せまい道で電信柱とすれ違うときに何故か対抗車が来る感じである。

 結局、2時間以上かかって、やっとのことでイメージファイルのzipがとれた。これを解凍すると4GB近いイメージファイルが出来る。メインPCで、マイクロSDカードにコピーする。

Raspi3の描画能力は素晴らしい(4/8/2016)
 SDカードへの書き込みは、次の日だったが、4G近いサイズのイメージのコピーは結構時間がかかった。といってもダウンロードに較べればあっと言う間に終わる。ソフトの準備はあっけない。これだけである。次はハードだ。

Dsc004100001_2 初代のRaspiで使ったHDMIケーブルや、ワイヤレスキーボードをつなぎ、電源は手製のUSB AタイプコネクターとDCジャックの変換基板に秋月の5V 3AのACアダプターをつなぐ。

 メインPCのディスプレイを借りてスタートする。立ち上げる。おおお、出た!いやあ、早い早い。ブートメッセージが矢のように流れる。4CPUなのでラズベリーのアイコンが4つでるところがご愛嬌である。Dsc004130004_2 何事もなくデスクトップが立ち上がった。色々な整備を始める。日本語を設定して、立ち上げ直したら、デスクトップが豆腐のような盛大な文字化けで先に進めない。いけない日本語フォントが入っていないではないか。localeを戻そうとするが、どうもうまくいかない。

 誰もがやる失敗のようで、ウェブ上には回避策が沢山出ている。いずれも面倒なので、SDカードにイメージファイルを焼き直し、最初からやり直した。これが一番楽だ。raspi-configで初期設定をしたら再起動する前に、必ずapt-getで日本語フォントをインストールする。フォントのインストール方法もウェブサイトにちゃんと出ている。Dsc004110002_2

 ブラウザーは特別な軽いもの(Epiphany)が入っているようだ。日本語フォントが少し気に入らないが、ブラウザーも問題なくスムーズに動く。いやあ、初代のRaspiに較べれば雲泥の差だ。そりゃ、CPUの数が4倍、クロックもほぼ倍近くになっている。早いのは当たり前だ。下手をすると今のNetブックより早いかも。

Dsc004120003  殆どストレスなしに大きな画面(1920X1080)を制御できている。FireFoxもいれてみる(RaspbianではIceWeaselという名になっている)。これはさすがに心持ち遅い感じだ。しかし、これはサブマシンとして十分使える早さだ。音もすんなり出る。進歩の激しさに眩暈がする。

Dsc004160001_2  ワイヤレスキーボードでは前回同様、又少し手こずった。電池が完全に抜けていた。そりゃそうだ3年も放置しておけば待機電流だけで抜けるのは当たり前か。頭に来たので、久しぶりの基板工作とばかり、このキーボードにスライドスイッチを取り付けることにした。結果は、こんなもの。あまり褒められる品質ではないが、まあ、工作欲を満たすことはできた。

 さて、これで何をするのか。やれやれ、何か、前にもこんなことがあったような。誰かが言っていたが、結局電子工作って、作ることが楽しみなのだろうな。

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

2013年11月22日 (金)

RaspberryPiの電源制御装置の回路図とソース公開

そう簡単には動いてくれない(11/13/2013)
 Tiny13を使ったRaspberryPiの電源制御装置は、前回の記事を書いているとき実はまだ完全には動いていなかった。あのときは苦労の末何とか動き始めていたので、そう書いたのだが、実機とのテストではさらに予想もしなかったドラマ(試練)が待っていた。

 実装版は、まず最初からプログラマー(AVRSP)がTiny13を認めないのである。ブレッドボードでは動いているので、配線間違いか、ハンダ付けのミスに違いない。しかし小さな基板に空きピンが殆どないほど部品が密集しているので目検するだけでも結構手間がかかる。S_pb146180

 とはいえ、たかが8ピンのAVRである。そんなに時間がかかるわけでもない。ひととおり配線をチェックするが、間違っているところは見つからなかった。しかし動かない。ハンダブリッジなどのハンダ付け不良は、マルチテスターで確認した。おかしいところはない。夜も遅かったので、その日は諦めて手仕舞いする。

 次の日、頭の中がクリアになっているのだろう。すぐ誤りが見つかった。何で昨夜見つけられなかったか不思議なくらいの基本ミスだ。ISPピンの順番と、Tiny13のピン配列を勘違いしていた。こいつが隣り合わせに密接していたので混乱してしまった。

 間違いの原因は、配線量が少ないのでTop Viewだけのアートワークだけで配線面のハンダ付けをしたためである。ハンダ面のBottom Viewの図面を作るのをさぼっていた。基本を忘れるとやはりろくなことがない。

 Tiny13をプログラマーが認識してしまえば、あとはブレッドボードと同じように問題なく動くはずだ。ミニブレッドボードに差したセメント抵抗で負荷テストをする。スイッチで電源が入りショートしていた抵抗を生かすと電流が減ってちゃんと電源が切れる。よし、良いようだ。

 いよいよ、実際のRasPiの電源につなぐ。おやあ、スイッチを入れた瞬間は電源が入り、LEDがつくが、すぐに切れてしまう。何回かやると、1回くらい無事に電源が入って動き出す時もあるが、たいていは切れてしまう。投入直後の電流が少ないのかもしれない。S_pb146170

 オシロのスイープを最大(一単位5秒)にし、実際に流れる電流を測ってみることにした。例の超低抵抗(0.22Ω)を電源にシリーズに入れ、両端の電圧をオシロの入力にする。シャットダウン時の電流量はきれいにいっぺんに下がるが、電源投入時には、定格になるまで結構時間がかかっている。

 これだ。定格の数百mAに上昇するまでには、秒どころが数秒かかっているではないか。現在の仕様は0.5秒たって定格にならないと、さらに0.5秒待ってそれでも下の場合に電源を切っている。そうか、立ち上がりのときはこの仕様では電源が入らないのだ。S_pb146171

投入直後だけ時間をあけるロジックを考える(11/14/2013)
 電源が切れるときは、すぐに切れて欲しいが、立ち上がるときは数秒待って欲しいという要件である。一種のパズルである。色々考える。要するにパワーダウンモードから立ち上がったときだけ、この電流監視を一定期間オミットしてやれば良い。

 出来上がったロジックはまあ、あまり褒められたものではない。秒カウンターを設けてこいつを数えているだけである。動作中はこの無駄なカウントアップを常に行うので(実際には一定以上は増やさないが)無駄なオペレーションになるが、大したロードではないだろう。

 テストに入る。おやあ、全く改善されない。電源を入れるとすぐに切れる。それにこの切れ方がおかしい。少なくとも1秒近くは電流を監視しているはずなのだが、この切れ方は一瞬だ。そうか、わかったぞ。これは電流を監視して切っているのではないのだ。これはマイコンがリセットされているからだ。

 今まで、ロジックばかり気にしていたけれど、Tiny13がリセットしていることまで気が回らなかった。電源投入時のRasPiのラッシュカレントで、電源電圧が低下し、マイコンがリセットしてしまっているに違いない。今度もオシロの出番だ。スイープを戻して、投入時のシングルショットを狙う。

Tiny13がリセットしている。猛烈なラッシュカレントを観測する(11/15/2013)
 何回か失敗した後、オシロで、RasPi投入時のラッシュカレントを観測するのに成功した。何と、電源投入直後、2回も1V台に下がる猛烈なディップが出ている。これじゃあどんなCPUでも、リセットするはずだ。このディップがRasPi本体の初期電流か、同時につないでいるHUBによるものなのかはわからない。S_pb156191

 電源を別にすることは考えられないので、このディップを軽減する措置を考えなければならない。まず、大容量パスコンで止める事を考える。基板はもうぎりぎりで、入れられるにしても100μFが限界だ。

 Tiny13のVccのところに、コンデンサーを空中配線で接続し、動作テストする。やった。スイッチを押すと、リセットせずに電源が入り、動き始めた。良かった。インダクターまでは要らなさそうだ。実装に入る。リレーの横がなんとか入りそうだ。苦労してハンダ付けする。

 テストしてみた。おやあ、何だ、またリセットだ。バラックでは止まったのに実装すると駄目になる。何故だろう。空中配線の方が調子が良い。場所が悪いのか。空中配線は、Vcc直結だったが、実装は少し迂回している。これがいけないのだろうか。

 ばかにされている。念の入ったことに、もう一度、空中配線に戻すと、今度は駄目。ええー、これは一体なんだ。さっきはうまくいったのに。空中配線で100μHのインダクターを入れるとリセットは止まった。コンデンサーは実装した場所でもOKである。S_pb156190

 オシロで波形を調べると、しっかりなまっていて、これなら問題なさそうである。やはりインダクターが必要か。しかし、インダクターを入れる余地は部品面にはもうない。

インダクターの大きさでも変化がある。気難しい(11/15/2013)
 部品箱を漁ると、10μHのリードタイプのインダクターが見つかった。おお、これならハンダ面に入れることが出来る。早速入れてみる。おやあ、駄目だ。うーむ、気難しいものだ。部品箱にあるだけのインダクターを総動員して調べる。

 フェライトビーズまで基板の切片につけてリード線を出し調べる。こいつらはみな20μH以下で全滅。大きいものも、表面実装のものも、100μH以上でないと有効でないことがわかった。このあいだ秋月で調達したLCRメーター(DE5000)が大活躍した。測定器は買っておくものである。S_pb156186

 良く見ると、表面実装のインダクターにも外形が大きいものもあれば、小さいものもある。小さい表面実装のインダクターを見ていて閃いた。こいつはもしかしてハンダ面を整理すれば、基板に直接つけることが出来るのではないか。

 基板を確かめる。ふむ、うまくいきそうだ。リレーの下のハンダ面は、配線を整理すると、ギリギリ表面実装の100μHが収まるくらいのスペースがとれそうである。早速、実装にとりかかる。

 何とかインダクターは納まった。通電してみる。おーし、良いぞ。今度こそリセットせず、素直にRasPiが立ちあがった。今までの暗い気持ちがうそのように吹き飛んで、晴れ晴れとした気分になる。苦労すればするほど動いた時の喜びは大きい。因果なものである。S_pb216207

回路図とソースコードを公開する(11/16/2013)
 テストのためばらしてあったケースと基板を組み立て直し、スイッチボックスに入った制御装置を完成させる。SAMBAサーバーにしているRasPiに接続し、運用を開始した。スイッチを押すと、カチッとリレーの音がして、何事もなく電源が入る。次にシャットダウンボタンを押すと、暫くして、順調にシステムは終了し、赤ランプだけになり、電源も切れる.....はずだった。おやあ、切れない。

 うはあ、何だ、何だ。また、駄目か。あ、そうか。このSAMBAサーバーは2.5インチHDDがUSBでつながっている。シャットダウン時でも想定した以上の電流が流れているのだ。あわてて、ケースをはずし、ISPピンのUARTをつけて(PB1ではなくSCKのPB2がTTLの送信ピン)モニターを開始する。

 PCのコンソール上に一秒ごとのADコンバーターの計測値が表示される。こういうときのためにUARTが必要だったのだ。思った通りこのSAMBAサーバーは、HDDをつないでいるため、シャットダウン時の待機電流が、想定の倍以上の200mA近く流れていた。Autopwe_tiny13

 原因がわかれば対処は簡単だ。動作時との差は前と変わらない(動作時もそれだけ増えている)ので、閾値をそれに合わせて上げるだけで良い。プログラムをコンパイルし直し、ISPで流し込む。さあ、これでどうだ。よーし、シャットダウンのあと、チッと音がして問題なく電源も切れた。うれしくて、何度もRasPiを立ち上げ直しては喜ぶ。まるで子供である。

 以下に、このTiny13のソースコードと、回路図を公開いたします。回路図のBsch3ファイルは、AVRStudioのフォルダーの中に入っています。参考にしてください。

「AutoPwr.zip」をダウンロード

実体双眼顕微鏡をついに注文する(11/14/2013)
 前々から欲しいと思っていた実体双眼顕微鏡を遂に発注した。6年前に電子工作を始めて以来、視力はあきらかに衰えており、今では普通の2.54ミリピッチの汎用基板ですら、拡大鏡無しにはハンダ付けが覚束なくなっている。

 今使っている拡大鏡のレンズは、プラスチック製でハンダごてを不用意にあててあちこち傷が走っている。このあいだ新しいものを買ったのだが、せいぜいが3倍程度の倍率では、正直言って、0.5ミリピッチの表面実装部品のハンダ付けは無理で、前からこの実体顕微鏡は欲しかった。

 実体顕微鏡とは、研究室などでの精密な手作業には欠かせない道具で、昔、基板の実装を女子工員さんが手作業で半田付けしていたころには盛んに使われていた。立体視ができることと、スペースがレンズと対象物の間にあるので、手元の作業が出来るのが特徴だ。

 結構な値段なので、アマチュアの人はまず持っていないだろう。安いものもあるが、対物レンズと対象物の間がせまく観察するだけなら良いが、ハンダごてなどを使う工作にはむいていない。

 これから、0.5ミリピッチの表面実装ICを沢山使うことはもう余り考えられないが、今苦労している細かい作業が文明の利器で少しでも楽になるのに、それを我慢しているのもおかしな話だ。買おうと思えば買えない値段ではない。

 ハンダ付けのあとの仕上がり具合をいちいち20Xのルーペで確認するたびに、実体顕微鏡があればもっと楽に確かめられるのになあといつも思っていた。といって、5万を越える出費は、簡単に決断できるものではない。

 今年の始め頃から波動的に何度か買う気が盛り上がっていたのだが、その度に抑えてきた。年寄りの単なる趣味の工作に、双眼実体顕微鏡をそろえるのは、何か、腕はさっぱりなのに道具に金の糸目をつけない成金ゴルファーみたいで抵抗があったのだ。

 しかし、ウェブで、普通のアマチュアの方が実体顕微鏡で楽な思いをされているのを見ていると段々我慢が出来なくなってきた。中古を買っている人もいるが、こういう道具はなるべく新品が欲しい。電子工作を始めて、早や6年、年も70近くなったし、買っても、もう馬鹿にされることはなかろう(いや馬鹿にされることを恐れているわけではないが)。

 買う決心を固めつつウェブで機会あるごとに何を買うか調べていた。もとより数十万円する業務用は候補ではなく、アマチュアが手の出せる実体顕微鏡では、やはりこのホーザンのL50というのが一番良さそうだ。こいつは電子工作用に特化していて、値段も手頃(正価は8万円台だが実際は6万足らずで買える)である。

 前にも書いたように、こういう工作器具はなぜか店による価格差が大きい。沢山の店が出品しているが、結局、一番安い価格帯に入る楽天のここを選んだ。楽天のポイントが欲しかったこともある。価格は¥59,327(送料は無料)。久しぶりのオシロに次ぐ高額の電子工作関係の買い物である。

ホーザン双眼実体顕微鏡L50が届いた。こいつはすごい(11/17/2013)
 注文して2日で届いた。先方のメールでは受注製品なので1週間近くかかると言われていたのに恐ろしく早い。とるものもとりあえず梱包を解く。思ったよりコンパクトだ。これなら工作机に置いてもそう邪魔にならない。S_pb196199

 早速、セッティングにかかる。最初、メガネをつけたまま調整しようとしたが、どうしてもあわない。メガネをはずすと両眼の位置が接眼レンズに近くなって、突然視界が広がった。おおお、見える、見える。思っていたより視野も広い。

 これはすごい。これまでルーペでやっと見えていた、20倍の世界が両目に広がる。別世界を見るようだ。ハンダの肌目、フラックスの残滓、それを拭き取った時に残った綿棒の繊維の1本1本が手に取るように見える。

 照明が揃えば、もっと鮮明になるだろう。対物レンズとの間は半田ごてを入れる十分な空間もあるし、底板をはずすこともできるので、平面のもの以外にも対応が可能だ。これは楽しみなことになってきた。

 早速、照明アタッチメントを自作する計画を立てる。オプション品として用意されているが、法外な高額(2万円以上する)なのでこれは最初から自作するつもりをしている。参考サイトもある。電源を何にするか、DC-DCコンバーターを使うか、それを使うなら何にするか迷うところだ。

実体顕微鏡の照明アタッチメントをアクリル板で作る(11/18/2013)
 脱線は当研究所の得意とするところである。仕事の帰り秋葉原に寄り、秋月電子で照明用の高輝度白色LEDを物色する。いや、ここのLEDの品揃えは凄い。何を選んで良いのかこれまた迷ってしまう。下調べをしていったのだが、種類が多すぎる。昔買った白色LEDはとうに旧製品となって半額以下で売られている。

 照明用なので、カンデラは小さいが、照射角が広い60°のこれを選ぶ。帰ってきて試しに点けてみた。うわあ、これは明るい。照明範囲もぐっと広がっている。これなら、参考にしたサイトのように12個も並べずに半分で十分かもしれない。

 アタッチメントのフレームはアクリルの2ミリで作ることにする。参考サイトでは3ミリのアルミを使っているが、放熱のことはさほど心配しないで良いだろう。

 早速、手持ちのアクリル板をとりだして設計に入る。形は結局、参考サイトと全く同じ形になった。対象顕微鏡が同じホーザンL50なので当然と言えば当然だ。ただ電源は悩ましい。ACアダプターにするか、DC-DCコンバーター基板を使って使い古しの電池を活用するか。まだ迷っている。

 電源のことはあとで考えることにして、フレームの工作にとりかかる。久しぶりのコッピングソーの出番である。このあいだのライブカメラのフレームの時は、アクリル板が切れたあと熱で再固着してしまい、とても苦労した覚えがある。今度はそうならないようにしたい。

コッピングソーでアクリル板が綺麗に切れて上機嫌(11/19/2013)
 機械を棚から取り出しセットアップする。悲しいことに刃の装填方法を忘れている。ウェブで復習する。糸鋸の刃の装填は意外と難しい。間違えると、うなるだけで往復してくれないし、ゆるみがあると振動が激しくてまともに動かない。ウェブの解説どおりでは最初うなるだけで動かなかった。S_pb196194

 そのうち、糸鋸の理屈がわかって、ウェブの説明を勘違いしていたことがわかる。刃の駆動部が一番下にあるときに上部の可動部(木屑吹き出しポンプになっている)を押し下げておかねばならない。これを逆にすれば当然動かない。2つのサイトの説明をまぜこぜにしていたようだ。

 スムーズに刃が動き出したので、素材にドリルでまず小さい穴を開け、そこに刃を通して、真ん中のレンズが入る空洞部分の切り抜きから始める。今度は失敗しないよう、速度を一番遅くし、一気に切らないで少しづつ切っては休むを繰り返す。全く固着もなくきれいに円形が切れていく。良いぞ。その調子だ。

 安全のため、ガイド穴を4つあけ、1/4円単位に切る。切り過ぎないよう、所定の切り抜き線より少し内側を切るのだが、段々うまくなって、最後の方になると、ぎりぎりのところまで近づいても自信を持って方向を制御できるようになった。思っていたよりずっと早く切り抜きが終わる。

 上機嫌である。「刃のスピードを遅くする」「あせって無理に押して切り進めない」「時々休む」が、熱を持たせないコツのようだ(あたりまえのことだが)。用心して少し寸法線より内側で切ったのだが、この調子だと、これも不要になりそうだ。この部分が少なければ少ないほどあとのやすりかけの手間が省ける。今後が楽しみである。S_pb196196

 次はドリルによる穴あけである。センターポンチはアクリルなので割れる危険があるので省略する。そのかわり錐(きり)で、寸法が厳密なところ(本体との固定用6ミリ穴。これが狂うとレンズにリング部分が入らなくなる)だけ念入りに開けてドリルが泳がないようにする。それ以外のところは少々狂っても問題ない(見栄えは悪くなるが)。

 瞬間接着剤でLEDのはめたところを接着し、早くも完成である。はやる心を抑えながら、LEDを仮にハンダ付けし、このあいだの3Vから9Vを出すDC-DCコンバーターを空中配線し、点灯してみる。おおー、これは十分明るい。全く照明ムラも起きていない。60度の照射角があれば6個で十分だ。照明が明るいので、見えるものが一層はっきりして楽しい。

細かいハンダ付けが楽々。これはもう離せない(11/20/2013)
S_pb216211  辛抱できなくて、仮配線のまま、実体顕微鏡でのハンダ付けを早速試してみることにした。対象は、このあいだマルチメーターのロガー出力でUSB-TTLアダプターを交換したとき、はずしたままになっていたアダプターとUSBソケットのハンダ付けである。

 うはあ、0.3ミリのUEW線が丸太のように太い。ピンセットで動かすとこれが自由自在に動く。いやいや、これは楽だ。半田ごてをレンズの視野に入れる。レンズにあたりそうで冷や冷やするが、大丈夫、十分余裕がある。何しろ8センチ以上クリアランスがあるのだ。 S_pb196198

 ハンダがコテで溶けて基板ホールに溶け込んでいく姿がはっきりと目で確認できる。出来栄えは素晴らしく美しい。感動ものである。顕微鏡からはずして肉眼で見てみても、これが実に綺麗に仕上がっていることがわかる。ピンセットで、UEW線を細かく正確に位置決め出来るのが美しさに寄与しているようだ。

 間違いなく世界が広がった。まだ慣れていないのでひとつの工程にかかる時間は、拡大鏡などでやるより明らかに時間がかかっているが、これは慣れると早くなるだろう。本末転倒だけれど、なにか細かい表面実装の基板を作りたくなった。

 お年を召されてハンダ付けがしにくくなったら、貯金をはたいてでもこの実体顕微鏡はおすすめである。今までなんでこんなに苦労していたのか馬鹿らしくなるほど、ハンダ付けが楽になる。

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

その他のカテゴリー

ARM | AVR | EAGLE | Edison | ESP32 | esp8266 | FPGA | FreeRTOS | Node | Processing | Raspberry | STM8S | Xbee | 電子工作