「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



DigiSparkの環境周りが少し解って来たので、LEDの
光をゆるく瞬かせて、LEDっぽくする作戦を進めて
みた。


以前、Mega328用に作ったスケッチをほとんどそのまま
流用しつつ、ピン周りとか、タイマ割り込み関係とか
を見直しかけてみる。

http://brown.ap.teacup.com/nekosan0/2186.html

基本はこの処理方法のまま。

せっかく、DigiUSBライブラリでシリアルデバッグ的な
ことができるので、いざということを考慮して、
DigiUSBライブラリを読み込んでおきたいところ。

USB周りの処理があるので、タイマ割り込みとの相性は
悪いだろうということと、そもそもMsTimer2ライブラリ
の割り込みは使えないはずなので、割り込みをやめて、
delayで時間調整する処理に変える。
ロウソクの炎の瞬きに、そんな正確な時間管理は不要
なので。


で、タイマー割り込みまわりと、PWM出力用のピンを
変更するだけで、とりあえずコンパイル。通った。
ちなみにPWM対応ピンは、

https://digistump.com/wiki/digispark/tutorials/basics

0、1、4の3本らしい。0と1に割り当てしてみた。


さて、書き込んでみる。ウチのDigiSparkは1番ピン
がオンボードLEDなので、これでホワンホワンするはず。

…しない。ほぼ点灯したまま。


うーーーん、正弦波テーブルがメモリ食いすぎてて、
メモリ破壊してるのかな?と思って、あらためて
メモリ量を見直す。
Tiny85って、SRAMは512Bなんだな。コンパイル後の
メモリ使用量をみると、600Bをちょっと超えてた。

とりあえず、正弦波テーブルを1個おきに間引いて、
半分サイズにする。

…400B台に入ったものの、動的メモリを食うことを
考えると、もうちょっと減らさないとだめか…


DigiUSBライブラリをやめて、時間稼ぎ処理は標準の
delay関数を使うように変えてみる。

…200B以下に収まった。なんか、DigiUSBライブラリ
って、すげぇSRAM食いなのなぁ…。
USB周りの処理もしてるし、Serial.printみたいな処理
も受け持ってるから、色々食うんだな。


ひとまずこれで動かしてみる。うん。動いた。オシロで
波形を見る限り、ちゃんと意図通りの波形が出てるみたい。

シャッタースピードを1~2秒くらいで撮影したのがこれ。









こんな風に、複数の正弦波を組み合わせて、時には
ホワンホワンとやわらかく、時にはパタパタと短く、
ロウソクっぽく瞬いているようにしてる。一見ランダム
のように瞬いて見えるけど、やわらかい瞬きなので、
不自然さは感じられないはず。

秋月で売ってる、LEDが瞬いてロウソクみたいに光るって
いうLEDドライバは、動かしてみたところ、ランダム値の
サンプルアンドホールドって感じで、不自然感があるん
だよな。

http://akizukidenshi.com/catalog/g/gI-08752/


んで、0番、1番の2つのピンから、それぞれ違う波形で
合成した結果を出力してて、それぞれ、炎の先っぽと
炎の根っこのイメージにしていて、根っこのほうは
一番暗くなるときの値が大きめ(あまり瞬かない)、
先っぽは小さめ(瞬きの振幅が大きい)という具合に
してある。
しかも、先っぽと根っこでは、合成している波形の
波長も全然ことなるので、全体としてゆらゆらと
炎がゆれているようにみえるかな、と。


とりあえず、電球色じゃなく、いつもの赤色LEDを
繋いで眺めてみる。



うん、うん。こういう感じ。


ちょっと、DigiSpark基板上のLEDが明るすぎて、
なんかちょっと邪魔なんだよな。


Tiny85に直接Hexを書き込んで、そっちで光らせて
みるほうがいいかなぁ。



そもそも、Tiny85の内部クロックとかのFuseって、どんな
設定になってるんだろう?回路図見る限り、外部の
クリスタルとか付けて無いから、内部クロックのはず
なんだけど、多分16.5MHzだよな。

http://www.instructables.com/id/Digispark-DIY-The-smallest-USB-Arduino/

Fuseビットはここに書いてあったけど、クロック周りの
ことはHex値で書かれてもよくわからん。

もしくは、DigiSparkじゃなく、シリアル接続のTiny85版
Arduinoとして、8MHzで動かしてもいいのかもしれん。

http://roshiago.blog.so-net.ne.jp/2012-01-28



DigiSpark自体をロウソクにしちまおうかと思っていた
んだけど、オンボードLEDを取っ払うほうが楽か、
Tiny85単体を使ったほうが楽なのか…


あと、できれば、加速度センサーとか、風センサー
(圧電素子?)とかで、瞬きパターンを少し変化できる
ようにしたら面白いんだろうけどな。DigiSparkだと、
ちょっと容量的に厳しいかな…



コメント ( 0 )




http://www.nicovideo.jp/watch/sm31976915

9日目来てた。待ってたよ!!







https://twitter.com/Kyukimasa/status/910649400728338433

インセプション・ドライブ。
ハーモニックドライブに似てるけど、やわらかい
変形するような機構じゃないんだなぁ。

CVTのベルトというか、戦車の覆帯というか、そんな
感じの構造なのかな。

減速できるのはわかるとして、なんで変速できる
んだろう?この辺は、CVTの原理と一緒なのかな。
アニメ図の解説みると、だいたいそんな原理に
みえるんだけ。

摩擦を使うってことになるんだろうな。CVTみたいに。
歯車の接触で(滑らずに)伝達できるって仕組みは、
やっぱり無段階変速は無理だろうなぁ。

あと、内燃機関とかで、ピストンリングみたいな
摩擦部分を排除する(ベアリングみたいな転がり
だけで機能する)っていう仕組みも、難しいん
だろうなぁ。

昔考えてみたことがあるんだけど、あーすればこれが
だめ、こーすればそっちがだめ、みたいな感じなんだ
よな。

ギヤって点で考えれば、なんだかんだでDCTが一番
賢くて効率的な気がするんだよな。





https://twitter.com/senooyudai/status/910315768700477440

テレワーク。





https://twitter.com/suzukinaomichi/status/911414387314909184

夕張市長。これいいな。






https://twitter.com/akiphic/status/911081429789851649

これは、パッと見て、パントマイム的なアレだろう。






https://twitter.com/Wmikefish/status/911079971526868992

嘘。




コメント ( 0 )