2011年10月10日月曜日

Windows 7 で Arduino アセンブラプログラミング

Macintosh OS X とシリアルポートの指定形式が違うのでなやんだ.
次のような内容のバッチファイルをつくって,
\Program Files\arduino-0022
としてインストールしてある Arduino IDE の avrdude を使って,コマンド
バッチファイル名 atmega328p COM10 assembler.hex
で Arduino Duemillanove にアップロードできた.

"C:\Program Files\Arduino-0022\hardware\tools\avr\bin\avrdude.exe" -C "C:\Program Files\Arduino-0022\hardware\tools\avr\etc\avrdude.conf" -cstk500v1 -b57600 -D -p %1 -P\\.\%2 -U flash:w:%3:i

これと,AVRStudio 4 の avrasm2.exe (AVRAseembler2) を使えるように PATH をはれば AVRプログラマ不要の Arduino/Windows 機械語プログラミング環境の完成である.avra をインストールするまでもないのだった.

@echo off
rem Path for avrasm2.exe
SET PATH=C:\Program Files\Atmel\AVR Tools\AvrAssembler2;%PATH%

2011年8月27日土曜日

アセンブリ assembly language プログラミングトレーナとしての Arduino

標準的な Arduino がオンボードでもっている USB/シリアルインターフェースと stk500 互換のプロトコルを使う Bootloader を,AVR プログラマがわりにして,PCと Arduino をUSBケーブルでつなぎ,アセンブリプログラミング演習をすることをかんがえる.
接続した Arduino 自身にアセンブリで書いたプログラムをアップロードするのであって,他の Arduino やチップのプログラマに使うという記事はよくあるがそれではない.また初心者に Bootloader を書き換えさせるのも避けたい.

AVR Studio についている「純正アセンブラ」 AVR assembler 2 (?) か,その互換フリーアセンブラ avra 1.2.3 を使いたい.
アセンブリプログラムをCのソースに組み込むとか,関数だけを書いて呼び出すのも避けたい.GCC のアセンブラもできれば避けたい.プログラムエリアがまっさらの状態で GCC のランタイムルーチンなどないほうが機械語プログラミングらしいし,記法の特殊さ,関数呼び出し法の学習に時間をとられたくないため.
Bootloader がI/O関係の初期設定をかえるのには注意.UART が ON なのは逆に文字出力として利用した方がいいかもしれない.

Adafruit の Arduino Hack ページに情報があった.
しかし,これではうまく行かなかったので,Arduino IDE にふくまれている avrdude を使うことにした.

/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avrdude -C /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf -p atmega328p -cstk500v1 -P /dev/cu.usbserial-A6008d1U -b 57600 -D -U flash:w:main.hex:i

呼出はこんな具合になるので,スクリプトにするか Makefile が必要だ.これはさすがにうまくいく.
自動リセットも組み込まれているようで楽ちんだ.

2011年6月28日火曜日

pH 電極用アンプ回路のメモ

オペアンプは,入力インピーダンスの高いもの.10^12 Ohm 程度以上.
バイアス電流はミニマムが数十pAぐらいまで,特に電源電圧が低い(±2.5V)と入力電圧がさがってダイナミックレンジがせまくなる.
± 5V で TL072, TLE2072 が, 5V 単電源では TLE2072 も可, LTC6741 が良好.LMC662 でよいようだ.
電極からの入力は,直接 Vin+ と基準電位で受ける,フィルタはいれない.
フィルタを入れるなら一段目の出力以降.
一段目をユニティゲイン,二段目で増幅10倍なら,一段目から二段目の間に 60Hz カットのCRフィルタ,また二段目のNFBにコンデンサ 0.1uF を入れる程度で交流電源ノイズは数パーセントになる.
反転増幅なら基準電圧は電源の分圧で可.非反転増幅ならNFBのベースになるので変動しないよう汎用オペアンプで定電圧出力を作って使う.
電圧基準IC LM336-2.5 を使うと基準電圧のノイズが小さくできる.
+5V 単電源の場合,基準電圧 2.5V,二段目ゲイン10倍で 200/1024 前後から 800/1024 前後の振れ.
デカップリングコンデンサは,上記フィルタとオペアンプ Vdd-Vss 間,電源ラインの4〜5個で可.
ソフトウェアで 667usec 間隔,331 サンプル程度から平均で最確値を得る.

ふれは ± 20/1024 程度.ボードのシールドや発振回路との隔離,電極の線のとりまわしに注意する.ブレッドボードはウラに銅箔をはった.手を近づけたり体を動かすだけで値が変動する.

2011年6月27日月曜日

LED照明の寿命4万時間とかあきらかにウソじゃないの

サンゴ水槽用の 27W LED照明の一つが点灯しなくなった.使い出してまだ一年少々ではないか.同じ 27W 型3つのうち,一つは購入して1月前後で点灯しなくなりメーカーに送って交換.別の種類 9W ブルーは3つとも一年ほどで点灯しなくなった.いずれも設計寿命は4万〜5万時間.一日12時間点灯なら買ったうちの半分ぐらいは10年もちそうなものである.
パソコンの電源や周辺機器が動作しなくなる故障で多いのは,スイッチング電源の電解コンデンサの寿命によるものである.電源モジュールの中のふくらんだ電解コンデンサを見つけて,それを新品と交換すると元気に復活する.つい先日もキューブPCのATXーFlex電源を復活させたばかり.

しかしLED照明のスイッチング電源は,電解コンデンサの交換程度で復活したことがない.結構高価なものなので,点灯しなくなったものは電源モジュールを取り外して穴をあけ,AC/DCアダプタで外からDCを供給,LED用定電流モジュールをかませて点灯させ使っている.タップはアダプタだらけになった.

まるでダメ電源(右上)と改造後のLED照明.

近頃は白熱電球型の白色LED照明が増えている,それらも寿命4万時間をうたっているが,どう考えてもおかしい.水槽用ほどあかるくないので大丈夫かもしれないが,やはりスイッチング電源を使っているはず.電解コンデンサの寿命は、長寿命タイプでも1万時間,普通は4〜5千時間である.しかも電源回路内蔵コンパクトなのでかなり熱くなる.一年でだめになるということは,寿命は4〜5千時間ということだ.4〜5万時間もつのは,LED素子モジュールだけのはず.
と思っていたら,「LED照明器具の光源の寿命はLEDモジュールの寿命のことです。(社)日本照明器具工業会にて2010年7月に改正された「JIL5006:白色LED照明器具性能要求事項」の中で,...」という記述をみつけた.LEDモジュールって,光る部分だけなのか?この基準自体はどこのメーカーも同じだとおもうが,省メンテナンスをうたうのはおかしくないか.
世に出回って1〜2年もしないうちから4年と表示して,設計寿命であるから保証するわけではありません,というならなんのために表示するのだろう.確率統計的な推定をするのだろうが,推定した方々のモデルがおかしくない保証はどこにあるのだろう.
故障検定という分野で身近にいる方は,「授業の評価は年々よくなっている」というタイトルがグラフにつけられ調査した期間のうち最後の数年だけで縦軸を引き延ばしたグラフを分析結果として発表していた.アンケート回答の選択肢の番号,程度をあらわす数値ではないもの,を平均したグラフ.インフル騒ぎのときは,流行シミュレーションによって厚労省が発表している感染率に収束するグラフを出していたが横の時間軸に目盛がなくいつ収束するのかわからないのが残念だった.機器の故障が相次いだときは,調査をさせて「これからも故障機器はふえる」という結果出していたそうだ.

照明の寿命がきたと判断するのは点灯しなくなるか明るさが70%を切ったときだそうだが,それは照明器具として評価するものではないのか.メーカー創始者の業績を振り返っても,照明は電気機器メーカーの魂の源じゃないのか.

2011年6月20日月曜日

放射線計数管(ガイガーカウンター)

法律で放射線というのは空気を電離する能力を持った粒子線あるいは電磁波のことをいうらしい.霧箱で軌跡を描くもの,ということになる.
ガイガーカウンターは,放射線がガイガー・ミュラー計数管に入って電離させたイオンが電流を流すそのパルスを数える装置で,なにかきたのはわかるがなにが入ったかはよくわからない.
管は金属チューブ,ガラスでおおわれていたりするので
(1)ガンマ線とか高エネルギーX線は,入るだろう,
(2)ベータ線もエネルギーが高くて運がよければ?入るだろう,
(3)アルファ線はマイカ(雲母)膜のような薄い素材の窓からなら入るだろう,プラスチックやガラスはあんまり通れないだろう,
という程度で種類をおおざっぱに判別するようだ.

今話題のナントカシーベルトのような,荷重被曝線量のようなものを測るわけではない.
何ベクレル,のような時間あたり崩壊数を直接測れるわけではない.
測れるのは毎分/毎秒何カウントか,なので,異常がないときのカウント数と,環境放射線被爆量を対応させるようだ.
崩壊核種がきまっていれば,崩壊あたりに出る放射線がきまってベクレルっぽいカウントになるのかもしれない.

ガイガーカウンターは世界的に入手困難,アメリカは輸出管理をしているようだ.
日本ガイシのNGK実験サイトでは写真フィルムケース(←すでに入手困難)にライターガスをつめる自作実験を紹介しているが,インターネット上の成功体験からは,電圧をかなりかける必要があり静電気は結構ためないといけないらしい.

GM管だけはどこかにないかと思ったら,旧ソヴィエト製のガンマ線と強ベータ線のみのやつなら eBay で入手できるのだった.
日本でも紹介しているサイトがあったが,有料ネタにされている.ただ世界中に同じことを考えた方々の成功事例,たとえばたとえばこちらとかなどがあるので参考にしてためしてみた.


CMOS 版 555 タイマで 400V を発生している.
回路はパルスをひろうのが 2SC1815 になっているだけでこれと同じである.
勤務先の居室でのカウントは,建物コンクリのラドンより宇宙線が主だろうか,17 ~ 20 cpm である.
核戦争や原発事故のような状況のための管なのか,アルファ線や弱いベータ線は測る気がないのが,潔い.

2011年5月17日火曜日

とりきり(使い捨て)カメラフラッシュ回路の修理

写真フイルム会社のいわゆる「使い捨てカメラ」(実際にはリサイクルしているらしい)には,今ではもれなくフラッシュがついている.この使い捨てカメラのフラッシュ回路を紹介しているサイト(たとえばこちらは,ガイガーミュラー放射線計数管のドライブ回路を検討するのに大変参考になった.
ガイガーカウンタの駆動は結局 555 タイマで普通のコイルを昇圧に使うこちら)を使うことにしたが,このフラッシュ回路は,特殊なコイルを使うとは言え,簡単で電池1本からキセノンランプを発光させる電圧400Vを作れる,すてきな回路で気に入った.これをコッククロフト・ウォルトンのラダーに入れれば kV クラスの電圧も簡単である.
ただ使われているトランジスタが 2SC6067 など入手できないものなので,壊れてどうしようという状態だった.インターネットの質問サイトでもかわりのトランジスタについての質問をみつけたが,それらしい答えはない.

しかしとうとう代わりになりそうなトランジスタが見つかった.
Zetex (Diodes社) の ZTX869 は,ピン互換でない.少しフラメンコのような格好をさせないといけないが,入れると動作した.電子回路のことはよくわからないが,コレクタ出力容量が倍以上で大きいが,あとは特性上位のようである.
いいということにしよう.耐圧やピーク電流は倍以上になっているので壊れにくいかもしれない.

#以上は危険なのでくれぐれも実際にまねしないでください.

Fairchild の KSD5041 もこの置き換え用ではなかろうか.
Fairchild には 2SC1815 のピン互換の KSC2331 などもあるらしい.Magnatec という会社は PNP のカン入りゲルマトランジスタを出しているから 2SA100 の互換品とかあるのだろうか.
どのメーカも,特に国内メーカーは,表面実装品しか作らなくなってきたようだ.自作では部品の国際化が避けられない.

2011年5月16日月曜日

なつかしの1石AMラジオをブレッドボードで

地元の電子部品店でフェライトバーアンテナやクリスタルイヤホン,ポリバリコンがさがっているのを見た.もっとも今クリスタルイヤホンは入手不可能でほんとうはセラミックイヤホンのはずなのだが.
子供向け科学雑誌の読者だった当時,電子工作記事もたくさんのっていたが,なぜか多くがAMラジオのバリエーションだった.トランジスタの数がわざわざ名前につく時代,いまどき何石といったら腕時計ムーブメントの人造ルビーの数だろう.
そのころは部品の調達方法がわからず雑誌の記事を眺めるばかりだったが,今は逆に部品がないのではないか.それでもほそぼそとキットなど売っているし互換品などでなんとかなるのではないか,少なくともゲルマニウムダイオードは売っているようなのでコイルをどうにかすればいいだろう.ブレッドボードでできないだろうか.
「子供の科学」の折り込み記事はとってあったはずだが親元にあるのか,処分してしまったかもしれないので,インターネットでそれらしい回路図が公開されていないかさがしてみた.すると国内のすぐすごくてすばらしいサイトがみつかった.
子供の科学のラジオ
そのもの,というよりそのもの以上である.出版社に了解まで得て回路図を書き直して公開し,実際に互換部品などで作成して,さらに実態配線図の間違いなどを修正している.実体配線図は記事の「肝」だったはずなのに,あれ間違いがあったんか〜.

神様ありがとう.感謝をしつつ,ポリバリコンとバーアンテナだけは小さな 100mil 基盤にモジュール化して,とりあえず一番簡単な1石トランジスタ検波AMラジオを作った.ブレッドボードはサンハヤトの新型電源片側一対の接点6列モデル.
ゲルマダイオード1N60は,ガラスケースだが最近見慣れている 1N4148 にくらべると,でかくて形がいびつで郷愁におそわれる.もっとも当時自分で組み立てたのは残念ながらほとんどキットだった.なんかきれいに包装されているが,リード線にサビがある.どういうことなのか.
最初二つにわかれている Vcc をつなぐのをわすれて電池がつながっていなかった.なおすと,今度はイヤホンからクリックノイズも出ないのでジャックアダプタの接続をしらべて修正した.すると部屋の窓際であっさり鳴った.はいるのは1局だけである.NHK第一だろう.


いまの大学生は知識,興味,経験,手先の器用さが理系とはおもえないことが多々あるが,小中高の理科教育が疑わしいうえ,模型も工作も天文観測もコンピュータも子供の遊びとしては存在していないのでどうしようもない.プラモデル一つですら,ベスト電器にはいっていた店がなくなり,博多駅までいかねば塗料を買うこともできない.そんな店も基本ガンプラとフィギュアなので,アマゾンやタミヤから通販で買った方がましである.
工学部とかものづくりとか,成り立つはずがない気がする.