今日は組み込みのレイアウトを考えてみた。
それは写真を見てもらえばわかると思うので言葉による説明を多くはしない。
ただ、この組み込みの中で今後絶対に問題になるはずの事が1つある。
それはバッテリー問題。
改造前のチーチ3号は単4乾電池3本で動いている。
つまり電圧にして4.5V。中途半端だ。
これに対してArduino unoは5Vの電源を必要とする。
そうなると、解決策は…
1. 仕方ないからチーチ3号は永久に外部電源にワイヤーで繋がれたまま。
→猫らしくないから却下。
2. バッテリーを背中に積んで改造されたアンドロイドらしくする。
→チリ紙博士があきらめたくないから却下。戦闘能力が落ちる。
3. 無理やりバッテリー内蔵化。
→iPhoneのように交換できない充電式にせざるを得ないが、充電回路が危険なので却下。
4. Arduino nanoを止めて3V駆動できるArduinoシリーズに交換。
→予算的に許されないかも。また、確かノックセンサーは5Vを要求するような気がする。
5. 既存の単4乾電池をDC-DCコンバーターで5Vに昇圧してバッテリー共用。
→ネットを調べていたら日本には乾電池2本でUSB経由スマホ充電器と言うのがあるらしい。
しかも100円ショップで売っていて、コンバーター部分を取り出して使えるとか。
急遽、日本にいるキャサリンさんに連絡して2個ばかり買ってきてもらう事にした。
(もちろんブーブー言われた。)
さらに、もしかすると、同じユニットを使ってオーディオモジュールの3.3Vも(降圧だけれど)作れるのか?
こっちはちょっと後で研究してみよう。
(普通に3端子レギュレータ買え?、そうなんだけど…)
![](https://blogimg.goo.ne.jp/user_image/1b/26/ac578486bee75534b3ff691b4d1dbfdb.jpg)
頭の中にオーディオモジュールを入れる。
ピンのハンダを外そうかと思ったけれど、スポンジのまま固定していても支障なさそう。
![](https://blogimg.goo.ne.jp/user_image/48/4d/9575a41dd2b759c1935ea88779306a61.jpg)
頭を支える首パーツにnanoを固定。
![](https://blogimg.goo.ne.jp/user_image/5f/65/51f5e7098a2b9f80b09d7592310f3d23.jpg)
ノックセンサーは腰のあたりに固定。
歩くとノックセンサーが反応してしまいそうなのだけれど、それはスケッチ上でどうするか考える。
もしかすると、歩きモードと悪態モードに切り替える事になるかと思う。
電池のスイッチが実は単なるON-OFFではなくて切替スイッチになっているから可能だろうし。
今日は断食が終わってハリラヤに入った初日。
近所のAEONは何と今日だけ午後1時開店。ダイソーも。
朝10時に最近運動不足だから歩いてダイソーに行ったのに無駄だった。
それで街に出たら、やっぱり主要な店は閉まっていた。
日本で正月に店が閉まるのと同じ原理だから文句は言えないのだけど。
街はマレーシア人がほとんどいなくて、歩いている90%以上が外国人労働者。
バングラ、ネパール、パキスタン…
マレーシアじゃないみたいだった。
だからいつものナン屋さん、大繁盛。
今日はちょっと辛めの味付けだったのは彼らに合わせたから?
追記
ところで、昨日の割込み処理で大きな誤解をしていたと、突然気付く。
だって、事がArduino位だろ、実例がそんなに多くない。
だから調べてもチュートリアルと似た例しか出て来ない。
それと日本語で検索しているとハードウェアも日本の多くの店で買えるものを起点にしていて
なかなか有用な情報が少なかったりもする。
あまりバラエティーに富んで無いかもしれない。
マレーシアでやっているとちょっと違うのがあるので困る。
さて、割込みだけれど、当初思っていたアイデアは、
1. setup()に割込みの処理を書く。
2.割込みから指定された関数とかファンクションに飛んで処理。
3.割込みが無いときはloop()の中の事を実行している。
と思っていた。
でも、これは間違いだと思う。
なぜなら、上のようにやる限り、割込み時の関数に引数が指定できない。
それができないといつでもグローバル変数そのままを使うしかなくなる。
場合によって変える事ができないからけっこうつまらない。
また、delayなどの時間を扱う関数が動かないので時間稼ぎに変な処理をしないといけなくなる。
これも変。
それで、考え直してみた。
多分、こうするのが良いと思う。
1. setup()に割込みの処理を書く。(同じ)
2. 割込みから指定された関数とかファンクションは、割込み有りのフラグを立てる程度の物にする。
3. 上記のフラグをreturnしておいて、loop()の中の処理の条件にする。
こうやると最初に思っていた問題点はみごと解決するんじゃないかと考えている。
が、考えているだけで、まだ何もスケッチ書いていない。
明日、早朝に空港まで運転しないといけないので、今日はここまで。