^ page top

2018-10-30
 送信側、試行錯誤していて、5世代目かな。最終的には、ピンヘッダとか不要になるので、QFP版のATmega を使ったりすれば、元のリモコンの中に詰め込めるかも。ま、バッテリー次第か。

 3ポジションのスイッチ切り替えで、3種類分のリモコンになる。赤外線版の、ソフト的な切り替えと違って分かりやすい。blue, green, red と3種類登録。一つを Kodi に割り当てて、他はキーボードの設定にしてビューアー等の操作も出来る。

 バッテリーは、エネループをやめて、リポ電池に。USB経由で充電できる。頻繁に充電しないといけないようなら、充電スタンドをつくるといいかもしれない。

※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。
2018-08-24

 ゲームキューブのコントローラを、PCで使えるようにするアダプタ。
2018-08-20
 ATmega の動作クロックを決めるのは、フューズの設定値。外部水晶を接続しなくても、内部に持っているもので動かすことが出来る。Arduino とかに乗っているマイコンは、裸で入手したものと違って、外部クロックを使うようフューズ設定されている。
ATmega8 フューズ設定
Low FuseHigh Fuseクロック
E1D9内部発振 1MHz(工場出荷時)
E4D9内部発振 8MHz
FFD9外部発振

 PDF を読むと小難しいことを書いてあるが、上表の通り、Low Fuse を書き換えればいい。部品追加して外部クロック動作なら、0xFF、内部クロック 8MHz で動かすなら、0xE4 を設定する。新品の時から書き換えていなければ、1MHz で動いているはず。


 Arduino IDE + USBTinyISP でプログラムを書き込んでも、動作クロックは変わらなかった。内部 8MHz で動かしたかったので、直接、avrdude のコマンド入力してフューズを書き換えた。
ATmega8 内部発振 8MHz(Low Fuse = 0xE4)
 avrdude -p m8 -c usbtiny -D -u -U lfuse:w:0xE4:m
2018-08-07

 レバーで簡単に付け外し出来るゼロプレッシャーソケットの書き込み治具。普通の ICソケットと違って、足を折ったりする心配がなくなる。
2018-07-14
 ATmega8 の、スリープ&復帰の試み。省電力動作には欠かせない。
参考リンク
 Atmel ATmega8 データシート
 Arduino Playground - ArduinoSleepCode スリープ&復帰のソース

 スリープは問題ないが、そこから再始動、つまり動作の復帰をさせるためには、割り込みを使う。ATmega8 にも、INT0 と INT1 があるので、スリープ中に、このピンに信号を送れば目覚めさせる事ができる。
プルアップ回路

 スリープ中に、タクトスイッチを押すと復帰する。pinMode(interruptPin, INPUT_PULLUP); の指定で、内部の抵抗を使ってくれるらしい。

プルダウン回路

 青い部品が、振動センサ。プルアップ回路のタクトスイッチを、振動センサに交換しただけでは動かない。テスタで振動センサ単体の導電を調べてみると、通常時はON、振動があるとOFFになる仕様のようだ。つまり、普通のスイッチとは、オン・オフが逆になるのが、置き換えてもダメな理由。

 で、写真のように VCC-INT0間に、振動センサ。INT0-GND間には、抵抗をつけたプルダウン回路とする。スリープ中に振動を感知すると復帰する。
2018-07-07

 ついに、裸のマイコンにまで手を出した。電池で動かす省電力っぽいのを作りたい。

 基板付きは、色々と使ってきたが、DIP型のマイコンは初めて。USBtinyISP と avrdude で、ちまちまコマンドを入力していたが、何気に、Arduino IDE から普通に書き込めることが判明。プログラム的には、ATmega386P のしょぼい版。ピン以外も、微妙にちがうのか、同じプログラムが動かなかったりする。

 ボードマネージャに、このURLを指定して追加すれば、ATmega8 も選択可能に。

 よく考えたら、Pro Mini の方がコンパクトだな、薄いし、小さいし。それほど、安いわけでもないし、見た目のカッコよさ?だけだな。Arduino というか、電子部品全体の値段があがっている。なんでだろ。