スキップしてメイン コンテンツに移動

投稿

ラベル(hack)が付いた投稿を表示しています

CANトランシーバーを使わずにCAN通信をする

 CANバスの物理層は差動通信で、RS485の様にマルチドロップ接続が可能。  自動車におけるノイズ環境でも通信が成立するように、トランシーバICには様々な対策が施されている。  一方で、基板にマイコンを複数載せて、例えばブロードキャストメッセージを含んだ通信をさせたいとなったとき、ハードウェアとしてデータリンク層にあたるコントローラが実装されていて、メッセージフィルタ等が可能なCANバスは魅力的だ。しかし、長くても1m未満の配線長で差動ドライバのバスを駆動するのは電力的なペナルティが大きい。 CANバスの構成  トランシーバーには5Vレベルと3.3Vレベルの製品があり、車載以外だと省電力化のために3.3Vバスを採用する例があるらしい。(電圧が低いほうがドミナント時の電流は下がるので)製品によってはフォールトトレラントのための様々な機能が付加されている。    トランシーバーをつかわず、UARTの様に単純に接続することもできる。過去にはこのようなアプリケーションノートがあった。 On-Board Communication via CAN without Transceiver https://www.mikrocontroller.net/attachment/28831/siemens_AP2921.pdf CANコントローラの入出力を1線式マルチドロップバスとしてつなぐことで、トランシーバーが無くても通信が可能になる。規格外の使い方ではあるけれど、大幅に単純、かつ省電力になる。 コントローラのみでの接続 R4 MinimaにはCANコントローラーが内蔵されているため、上記アプリケーションノートの様に接続してみた。ダイオード2個と数kΩのプルアップ抵抗だけでサンプルコードの通信ができた。 https://docs.arduino.cc/tutorials/uno-r4-minima/can  とりあえず1Mbpsでも通信できていたけれど、Lowレベルの電位が下がり切っていないので、OD出力のバッファをTXに挟むとよいかもしれない。  R4 Minimaのコントローラのみで通信させている様子(250kbps) https://github.com/sandeepmistry/arduino-CAN/blob/master/API.md ライブラリの実装は以下で確認...

タフパッド

過去の機種ということで、1万円代で購入できたPanasonicの防塵耐衝撃タブレット JT-B1 AndroidのバージョンはICS(4.04)だが、業務用のためか、細かい修正パッチは最近まで適用され続けている。  発売当時のOSのままということもあり、レスポンスは良いが、時の流れはごまかせないので、特定のアプリのみを動かすということに割り切る必要はある。 ちょうど、初代Nexus7に背面カメラをつけたようなスペックだ。一応、RTL- SDR関連は動いた。  防塵耐衝撃ということで、大きいこと(8型タブレットを2枚重ねたくらい)、 重い(500g級)ことは覚悟していた。 あえて利点を挙げるとすれば、厚みがありベセルが広いので保持しやすいところ。 そして物理的に強そうな見た目。 また、電源コネクタとmicroUSB端子が別に用意されている。 さすが業務用だった。 一つ困ったのが、待機中の電池の消耗スピードが早いこと。 最小限のアプリとバックグラウンドサービスにとどめても、1.4%/hのレートで放電があるようだ。 単純計算だと、待受状態で3日もたない。 無線関係をオフにしても、その傾向は変わらなかった。 この原因は後ほど判明する。 お約束の分解。 固定にはすべてY型のネジが使われているので、Y型ネジ用のドライバーを取り寄せた。 背面中央部にある蓋のネジを取り外すと、取り付けられたWWANモジュール(Gobi 4000系)が確認できる。 空間の余裕があるからか、WWAN対応PCと同じような構成だ。 LTEモジュールにアクセスするなら、この4つのネジを外すだけよかった。 次に、本体を開ける。 筐体のつなぎ目はゴムパッキンが取り巻いている。 メイン基板はすっきりしていて、主要パッケージはシールドケースに収まっており、マグネシウム筐体に伝熱シートで押し付けてある。 徹底的な放熱パスの作成がなされている。 GPS、Wifi,BT,WAN関連のアンテナはフィルム基板に形成され、Pogoピンで基板から接続されるタイプ。 アクセサリーポートの上側と、画面側の右上、NFCの読み取り位置の付近に設けられている。 この2箇所は何かで覆わないようにしたほうがよさそう。  GPSの感度だが、アプリで表...

Chromebook C720/2をUbuntuマシンにする

たまたま、Chromebook C720/2 の中古を見つけて安く手に入ったので、Ubuntu専用機として環境整備をしてみた。 C720/2のスペックは、 Celeron 2955U(Haswell世代) 4GB RAM 16GB SSD(M.2) USBポートが左右に一つずつ、オーディオジャックとSDカードスロットがあるだけの割りきった設計。  2~3万円でWindowsタブレットやWindows10の激安ノートが新品で手に入る時代だけれど、 ハードウェアに32bitOS縛りが無いものはその2倍程度になってしまう。  ファンレスではないが、最大負荷でもほとんど音が聞こえない、静かなファンを搭載している。 価格なりの点としては、液晶がTNなのと、キーボードの日本語配列は英字配列の枠をそのまま使って、キーを分割して詰めこんであるあたり。 やや慣れが必要だ。 ChromeOSそのものはブラウジングだけでいろいろ完結するので、ストレスなく利用できる。 スワイプ動作が秀逸。   貧者のMacbookAirと呼ばれるけれど、北米では教育機関への導入でAppleのシェアを奪っているという記事もあった。 Linux機としての利用 ChromeOSそのものはlinuxカーネルで動いていて、Ubuntu等を利用する場合は3通りの方法が存在する。 ハードル(ChromeOS、ハードウェアへの影響度)の低い順だと、 1: croutonで、ChromeOSのカーネルを利用して、Ubuntu環境を追加で導入する。(開発者モード) 2: Chrxの導入で、予備のパーティションを利用してChromeOSとのデュアルブート環境を構築する。  (開発者モード、レガシーブートの有効化) 3: Ubuntuをクリーンインストールする。 (開発者モード、レガシーブートの有効化、USBブートの有効化)  一通りの導入を試してみた結果、自分の場合はクリーンインストールが最もストレスが少なかった。 もしSSDが16GBのままなら、デュアルブート環境では残り容量の点でかなり厳しいという弱点もある。 ChromeOS自体は、BIOS設定で失敗して文鎮化しなければ、リカバリメディアを作成し...

ウォルターの亀の子孫たち

 時は2015年。ロボット掃除機も普通にリサイクルショップに平積みされる時代。  真の名は自動掃除機。 掃除の定義を集塵に絞り、ダストボックスの中身は人間が廃棄する。 まだ全自動掃除機への進化の余地を残していそうだが、それは制度や家の設計から始める必要がありそうで別の話になってしまうかも。  立ち寄った中古屋では2~3年前のルンバが多く、ついで低価格な類似機種たち、割と希少な日本の製品と続く。 きれいな状態のものが多く、様々な家庭事情がうかがえる。  歴史的な視点で陳列棚を見渡すと、ルンバの初代機(Discovery)の箱付き品があった。箱の側面に、ゲンギスからPacbotに至る、iRobot社の歴代のロボットたちが紹介されていて、科学教材のような雰囲気をまとっている。このあたりのいきさつは、ロドニー・ブルックスの著書に載っているのでおすすめ。(Flesh and Machines / ブルックスの知能ロボット論)  ロボット台車としてのルンバは、DINコネクタを介してシリアル通信によるコマンド制御が可能なのだが、箱も含めてわりとデカい。  アメリカンサイズゆえに、重くて置き場所に困りそうなので見送る。 かわりに小さめで安いロボットクリーナーをみつけた。 ツカモトエイム製 AIM-RC03というモデル。 ニトリの掃除機コーナーでよく見かける低価格機だ。 ブラシ欠品のため安く手に入った。  仕様は、14.4Vのニッケル水素バッテリ、充電は手動。  積みがちなボードコンピューターに足を生やすにはもってこいかもしれない。 中身の観察 足回り  ネジ一本で止められている筺体底面の蓋を開け、モーターのケーブルを外すとギアボックスごと取り出せた。裏にサスペンション用バネがある。 とても交換修理がしやすそうだ。 ギアはウォームギア、モーターはJXD-RK370(8V 8000rpm)  370系モーター? 基板  大きく分けて、ニッケル水素電池の充電回路、モータードライバのブロック、センサと制御マイコンがある。 マイコンっぽい石は製造元がよくわからない。 コンパレ...

初代iPodのレストアで、CF化の夢を見た

初代iPodをジャンク品として見つけたので遊んでみた。  今はタブレットデバイスがめまぐるしく発表されているけれど、何が生き残るのかは時間が教えてくれるだろう。 ただ、Appleの製品はジャンク箱でもよく目立つ。  初代iPodはFireWire接続のみで、Macでしか使えなかった。 私がまだ中学生の頃に登場したデバイスなんだなあとしみじみ。  古いけどGigabitなPowerBookG4があるので、つないでみたら普通に動いた。 ただしバッテリは寿命が来ていて、数分で動かなくなる。    分解して、バッテリを交換し、 ついでにHDDをCFカード化してみようとしたが、結論としてはうまく行かなかった。 初期型iPodは、HDDをLinuxマシンで覗いてみると、先頭に不可視領域がある。フォーマットしても消えないファームウェア領域らしく、これをまるごとCFにddコマンドで移せば行けそうだと思い、試してみたが…  動作はするけれど、Macにつないでも認識されない。 運良く認識しても、修復しますかと問われるので、選択するとファームウェア領域も含めて初期化されてしまうため、だめだった。 仕方ないので、どれくらい消費電流が変わるのか、電流値を調べてみた。 傾向として、起動時と読み込み時は倍近く電流を消費するが、再生中は先読みしてバッファに貯められるため、CFもHDDも同じ電流値だった。 仮に交換しても劇的な変化ではなさそうだ。 Clone to CF card  can't connet iTunes  とりあえず、バッテリが交換されたことで普通に動作してくれるようになったので、HDDを戻して使っている。(CFはiPod miniに入れた) 外装はアクリサンデーの研磨剤を使い、細かい傷を消した。 初代iPodだけが持つ、ぐるぐる回る機械式スクロールホイールを堪能できる。 この機構は直感的なのだけれど、やっぱりベアリングを挟むので結構な厚みが必要になってしまう。後継機がタッチ式になったのも自然な流れだなと思ったり。

PTZカメラとVulkanoflowでネットワークカメラ

ジャンク品は組み合わせるとたまに間に合わせ機材へと進化する。今回はキヤノンの業務用PTZカメラとVulkanoflowを使ったネットワークカメラ。カメラの機能にアクセスして、視点操作もできる。 ※間違いなく普通のIPカメラを買ったほうがお手軽です。 機能 ・光学25倍アナログカメラ+映像/音声配信(iOS/Androidアプリ有り) ・電源一つで動作(有線/無線LAN接続) ・遠隔操作可能(タイムラグはひどい) 材料 ・業務用PTZカメラ VC-C50i  払い下げ品っぽいのを4つほど確保。リモコン付き 各¥1k ・Vulkanoflow 後ろにビデオ端子とLAN端子がたくさんついていたので確保 ¥1k ・三脚とビデオケーブル、延長コード しめて2千円ほど。 外観 寄せ集め 一体化 望遠端で壁の温度計を映したところ。 広角寄りだとディテールは潰れて見えない。  使い勝手 Vulkano flowはもともと自宅のビデオデッキにつないで外出先でビデオコンテンツを視聴するためのロケフリ機材。なので画質自体は有線キャプチャと遜色無い。  無線LANを内蔵しているので、電源以外のコードが不要。 音声は別途マイクとマイクアンプが要る。 学習リモコン機能はビデオデッキやチューナー操作のための機能だが、今回はカメラ操作に応用している。Arduino等にIRレシーバーを組み込めば、外部機器へ簡単なコマンド実行もできるだろう。ペットへの餌やりとか、簡単な車体操作とか。  ただ、配信映像は機器の性質上、プライベート用途にしか利用できない。Ustなどと連携できたら面白いのだが。  遠隔操作のタイムラグが数秒あり、学習機能でリモコンの操作を覚えさせて、首振りや光学ズームをしても、反映されるまでに結構時間が掛かる。 そのせいで連続操作時の加減が難しい。 組み込みで使える遠隔操作用のIPカメラのネットワークモジュールが入り用であれば、Aliexpressを漁ればビデオデコーダ搭載の組み込み用Linuxモジュールが数千円で買えるので、そっちを使えば幸せになれそう。 

Leonardにプロトシールドを乗っけてみる(2012/07)

 Arduino Leonardを手に入れてまず書いたのは、Keyboard関数でSkypeチャットに定型文を自動POSTするスケッチだった。 案の定5分で飽きた。   送信間隔をランダムにすれば完璧だっただろう。 普段のログ見返しても、驚くほどバリエーションが少ないものだからつい…  普段はスタンドアローンで動作していて、時たまPCにつなぐとExcelに直接ログを出力する気象センサとか、そういう方向性はありかな、と思った。 ところでUNO R3とLeonardはピン配列にすこし変更がある。デジタルピン側にI2Cが引き出されている。と言うことは既存のシールドでI2Cを使うものはそのままでは使えない。 どうしたものか。 電源とアナログポートは増えたヘッダもそのまま使えるが… デジタル側は後ろに追加されたI2Cも使いたいと思うとこうなる。 I2Cも含めて引き出したかったので、ドリルで穴を開けて、ピンヘッダの端子を横のスルーホールにスズメッキ線で留めた。  そのうちLeonard対応のシールドが出てくることだろう…。              白のシールドと、裏面の印刷の白が映える。  UNO、Leonardと版を重ねるに連れ、PCBの見た目は確実に綺麗になってる。

rtl-sdr その2

rtl-sdrを受信用に幾つか小改造を施した。 もともとあったコネクタと余計なパーツの除去を行う。 コネクタは日本ではあまりお目にかけないIEC型?(PALコネクタ)というもの。出品者がIEC-F変換コネクタを付属しきたけれど、敢えて取り外してみた。 RFコネクタはベタGND相手で手ごわかったが、90Wはんだこてで少しずつ吸い取り、最後は足をニッパで切り取りながら取り外した。受信部の表面実装品が熱で外れはじめたりして危なっかしい箇所が何度かあった。 ついでに基板の前の部分もカットしているけど、SMA-BNC変換コネクタを挟んでも特に干渉しなかったので実は切らなくてよかった…。そこにケースの固定穴があったのでちょと痛い点。  基板用SMAコネクタに交換して、眩しいLEDと赤外線受光部を取り外した なんとなくFCDっぽさが増してきたと思う。USB延長ケーブルを使わないとPCのノイズを拾いがちなのもFCDに似ている。ただし発熱は多い。 現実的には、小型衛星追尾だったら確実にFCDの方が必要十分な機能を備えている。 帯域も96kspsあれば、周波数は既知だから十分。 それを言うとDJ-X11でも20kHz程度あるから十分だという話になってくる…。 rtlが面白いのは3.2Msps出るという部分だろうか。 入手した方の情報を検索すると、簡易ソフトウェアGPSの試みなどを発見できる。 簡易広帯域スペアナと思えば破格の安さですね。 Atom機でサンプルプログラムが動かなかった件は、ウォーターフォール/スペアナブロックを片方だけにして、再生帯域を1Mspsに落とすとフリーズせず動くようになった。   ソフトウェア側はもうちょっと慣れないとだめだなあ…

RTL-SDRを試す

FUNCube Dongleなど、お手軽で低価格なSDRが増えてきている中で、ちょっと面白いものを見つけた。 その名はRTL-SDR。 http://sdr.osmocom.org/trac/wiki/rtl-sdr 10~20ドル帯のTVチューナーが、SDRフロントエンドとして使えるらしい。 http://dangerousprototypes.com/2012/03/20/introducing-rtl-sdr-a-20-sdr/ その受信機として使えるドングルが届いたので、まずはセットアップしてみた。 上が今回入手したチューナー。 下は比較用にFUNCube Dongle pro 受信機と言っても、 激安 デジタルチューナ―として出回っている物。 外見はいろいろあるが、重要なのは中身のチップ。 wikiのリストを見るとRTL2832Uが必須で、E4000を搭載したものが推奨とある。 非搭載の製品も見た目はあまり変わらないので、適当に判断すると危ないかもしれない。 今回入手したドングルはeBayでみつけたもの。 既にSDRとしての価値が高まりつつあるらしく、送料含め2500円ほど。 同じような製品なら、Aliexpressのほうがたくさん見つかる上に安い。ただし真偽がわからなかったので、業者がSDRに使えますと謳うほうを選んだ。  入手したものはNewsky社の製品となる。 Aliには直営?サイトがある。 リンク 置いときますが、直接取り寄せていないので中身については保証できません。 RTL2832Uを使ったワンセグチューナーであれば、日本国内でもっと安いものが買えるようだ(IC名でググると価格.comの質問欄がヒットするので…)。 いろいろと付属してきた E4000はFUNCube Dongleの要でもある広帯域チューナーICだ。 64~1700MHzの範囲でI/Q信号を出力する。本家サイトを見るとこれとは別のチューナーICを使った製品も結構ある。 その後ろにあるのがRTL2832Uで、デジタル放送の復調を行う。このICにはI/Q信号をそのまま取り込む機能があったため、ドライバをいじることでSDRフロントエンドとして使えた…というカラクリ。 昔トイデジで直接RAW...

ATmega644P/1284P向けNewSoftSerialライブラリ(Wiring)

Wiring1.0上でターゲットMCUをATmega644P/1284Pに選択し、NewSoftSerialを使おうとした場合、うまく動かない。 個人的な事象として、JPEGカメラをローバー(ATmega1284P)で設定してみたところ動かなかったので、調べてみた。 ライブラリ内にあるNewSoftSerial.cppを見ると、ピン割り込み設定において、ピン割り当てが互換ボードの一つである、Reduino:LEDheadに設定されている。 このボードとWiringS/互換機ではピン割り当てがだいぶ違う。D7までのピンなら動作した理由は、ここだけ割り込みピンとの対応が共通であるからだった。 これをWiringS用に書き換えてみる。 \Wiring\cores\AVR8Bit\libraries\NewSoftSerial\NewSoftSerial.cppの中で、 644Pの該当箇所を以下のように書き換える。 変更点 ・ATmega1284P追加 ・Wiring用にピン割り込み関連のレジスタの番号とIDE上で扱うポート番号を対応させる作業) ---------------------------------------------------------------- #elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) //for WiringS #define digitalPinToPCICR(p)    ( ((p) >= 0 && (p) <= 31) ? (&PCICR) : ((uint8_t *)NULL) ) //for Wiring S #define digitalPinToPCICRbit(p) ( ((p) <= 7) ? 3 : \ ( ((p) <= 15) ? 2 : \ ( ((p) <= 23) ? 1 : \ 0 ) ) )  #define digitalPinToPCMSK(p)    ( ((p) <= 7)...

Sparkfunのガイガーカウンタにブザーとロガーを追加

キャップを外してみたところ。 ただし付け直すのがえらく大変なのでやめたほうがいいです 前回ケースに入れたSpakfunのガイガーカウンタに、ブザーとSDロガー(OpenLog)を取り付けられるようにしてみた。 上の蓋を閉めれば、他に開口部は無いためたぶん防滴 ブザーは本体に載ってるATmega328PのTQFPにUEW線を一本はんだ付けして、放射線を検知して割り込みが掛かったときにピッとなるようにした。公開されているファームウェアにピン設定を追加しただけ。最初はLEDから出力を頂こうと思ったけど、シンク電流なので信号は常時HIGHで使えず…。 (外に反転ロジック組めばこんなことも要らないですね) このキットの外部ピンというと、AVRを介さないGM管からのカップリングされたパルス出力と、RX,TX(印字は接続する機器側から見たものだった)くらいしか無く、無改造ではマイコンを新たに増設するほうが早い。 デフォルトでは、 ・LEDが光るのを目で見る ・PCでモニタリングする ・オーディオジャックを付けてiPhoneなどのカウントアプリを使う といった用途があると思う。 ATmega328Pが搭載されているのにちょっともったい気はする。(その328Pにしても内蔵オシレータ駆動だったり) 定点観測がメインになるならこれらはあまり関係ないので、それとは別にポータブル用途ではOpenLogを取り付けて記録することにした。放射線検知とともに出力される1ビットの乱数をひたすら記録する。ただしタイムスタンプは無し。そのうちCPMも吐き出すようにするつもりだ。 OpenLogの青のステータスLEDは書き込み時に青く光るので、放射線検知とともにこれも一瞬青く光る。 結構明るい。 外付け回路シールド(006P電池と5V生成部、ブザー、OpenLog) 検知した瞬間 光だけでなく音が加わると印象もかなり変わった。 なぜか大量に検知している気がする。 でも平均したCPMでみると7~8にあがったくらいで、やはりそんなに変わってない。雨が降ったのでやや回数は増えているようだ。鳴った瞬間だけを覚えているせいで、連続して鳴った事象ばかり印象に残り誤解しやすい。人間の記憶のタイムスタンプも大雑把というこ...

Qcam orbit AF

バルク扱いのQcam Orbit AF (200万画素)を入手。今年に入り、いろいろなところに流れているようだ。 市販品には無いドーム型ケースが付属する。 物自体は申し分のない、パン・チルト可能な高性能ウェブカメラ。 レンズにこだわってるだけあって、他の200万画素モデルと比べても解像感が素晴らしい。これで3千円とは・・・ ハウジングにいれたところ ハウジングに入れても画像はクリア。 ただカメラの固定機構があるわけでは無いようだ。置いて使えということらしい。 イベント、展示等で使うためのものだろうか・・・。 おまけ 実は首のところで分離できる。チルト機構から下は(一般パッケージでは同梱されている)支柱を挟む目的でminiUSB端子で刺さっているだけなので、普通のmini-B端子でPCとつないでも問題なく動作する。カメラ部だけだとかなり軽い。 重たい台座にはマイクが入っているらしい。分解したところカメラ側コネクタに配線が消えている。 多分mini-B規格になぜかあるNCピンを利用してマイク入力を行っているのだろう。 よく考えられてる。 USB端子のついたUSBプリントサーバーみたいな、小さいLinuxボードで動かせたらいいなあ。 

シグマリオンIIをシリアル端末化

10年前。 それは2001年。やたら近未来デザインな情報機器が沢山発表されていたあの頃。ペプシを飲むと宇宙旅行に行けたはずのあの年。 sigmarion (NEC) それはともかく、H/PC(ハンドヘルドPC)という分野が存在していた。WindowsCEを搭載して、Palmなどと違って小さいがキーボードを備えたビジネスマン向けのPDAである。ノートPCより小さく、即時起動するのでノートPCの小型軽量化とパームトップ機の高性能化が始まるまでは結構な地位を占めていた。  2001年当時の先端機器も、10年以上経つと運がよければ5千円以下でジャンク品として手に入る。 当時ネットのレビューを眺めて歴史を見守るしかなかった若者も、栄光の時代の生き証人の発掘をするようになり…。 色々見つけて来た中でも、特にシグマリオン(NEC製、ドコモが販売)は秀逸で、ビデオテープ(死語)くらいの大きさ、小さくてもブラインドタッチ可能なキーボードと、バランスのとれたマシンだ。 SigmarionI、IIとも運良く2000円程度で手に入れた。sigmarionは寿命が来てしまったが、IIはまだ使えている。CFにデータを入れれば、テキスト編集やCDROM辞書(データ)の閲覧、PDF閲覧も可能だ。ジャンク品なのでバッテリの状態は運任せだが、手に入れた物は2時間は連続使用できる。 テキスト処理には最適な、空冷ファンも無い完全無音マシン。 このSigmarionIIをシリアル端末化してロボットの運用に使っている。まだシリアルポートが存在感あった時代なので、ポートはmovaとのデータ通信用に一つ、赤外線ポートに一つ付いている。  Foma接続用のUSBホスト機能があるため、FT232などをつなぐことも出来るらしいがまだ試していない。 携帯のモデム用回線を汎用シリアル回線化するために、コネクタを除去してピンヘッダを取り付けた。ついでに特殊なUSBコネクタを汎用mini-Bに交換した。 引き出したのはTX,RX,5V,GND。 シリアルのピンヘッダは6本分使い、両端をコネクタ跡地にはんだ付けして基板に固定している。本体の改造はこれだけ。 なお手に入れた機体は典型的なヒンジ破損個体だったのでホットボンドで修復した。 RS232変換IC部 モデムの通信は...