2013年8月17日土曜日

野犬に襲われたの巻

どうも、Qです。


諸々やっつけて、明け方位にランニングしてたら、野犬に襲われた。何とか逃げ切ることができたので、噛み付かれたり怪我とかはしてないが…

てか、マジヤバかった。冗談抜きで動物愛護とか言ってる場合じゃない。いきなり4匹の得体のしれない野犬に囲まれ吠えられたら結構焦る。後から調べたら、かなり前からずっと問題になってて、噛み付かれたり病院沙汰になってる人もいるじゃない・・・
多分アドレナリンが出てたんだと思うんだが、結構状況は覚えてる。



まず、いつものランニングコースを半分程走ったところで、草むらから一匹謎の野犬が吠えながら走ってきた。決して大型犬の部類ではないので、一匹だけだったらこっちから威嚇するなり無視するなりどうとでもなりそうなんだが、すぐに2匹、3匹と増えた。

最終的に4匹。大体こういう感じになる。

   野犬⇒  野犬⇒
野犬⇒        野犬⇒
      僕⇒

----------------------
      川

ちょwwww普通に追い詰められてるw明らかに群れで襲い掛かる為の統制されたやり方だった。なんかやたらに攻撃的だし、そもそも持久力や敏捷性で勝てる相手じゃないので、「攻撃が始まる前に野犬が追いかけるのを躊躇する場所へ逃げる」という判断した。大体の状況は、
--------------
道路
--------------
土手
--------------
        |
     100m位?
        |
-------------フェンス
      現場
---------------
    川

って感じだったので、車が走る道路に逃げれば確実に追ってこないと思った。問題は100m逃げ切れるか、だ。


野犬が群れで襲い掛かるのは、一対一では決して勝率が高くないから、だと思う。実際、一匹に照準を絞って攻撃をするふりをしたり怒鳴ると、ビビッて距離を取ろうとすることに気が付いた。

というわけで逃げきるための手順は、100m走りながら攻撃圏内入った野犬を威嚇する、距離を稼いで再び走る、というものだった。


まず走ってる方向を一気に転換して、フェンスを飛び越えた(対して高くなかったのが救い)。野犬にとっては障壁だったみたいで、ここで少し距離を稼げた。あと、気が付いたら一匹は少し離れた場所に位置するようになった。


で、逃げ続けてたとき、焦りながらも、おお、と感心してたのは、「必ず囲む」ということ。
だいたいこんな感じ。

進行方向↑
         ←回り込む
          野犬
↑並走
野犬   僕

       ↑追走   
       野犬



      野犬

おいおい、これはじゃれたりとかじゃないよ、完全にハンティングだよ!!
ともかく逃げるw


で、一つわかった。人間が「その時出せる限界の速度で走れる距離は100-200m程度」。多分筋肉内に蓄えられてるエネルギー源の容量のせいなのだが、よくパニック映画とかで逃げてる最中に転ぶのがあるが、あれホントw

映画で見てるとなんでwと思うが、明らかに筋肉が付いていけないタイミングが来る(なんとなく脱力した感じになる)。で、案の定転んだw
草むらだったのと、上記の威嚇の方法で距離を稼げるのは分かっていた、あと土手まで数m位だったので威嚇しながら何とか逃げ切った。

道路まで降りたら、一匹が雄たけびを上げて諦めたようだ。まあそりゃそうだ、乗用車に轢かれるリスク負ってまで人間一人を追っかけるような真似はしないだろう。


というわけでなんとか無事逃げ切れたわけだが、えらく疲れた。完全にランニング分の体力使い果たしたので歩いて帰った。




まあ犬には特に興味がないので単に迷惑な話ではあるのだが、その一方で狂犬病対策等の関係で、野犬が一度根絶に近い状況になった日本で、こんなのがいるってのはおかしな話なんだよね。どう考えたって、何らかの都合で野犬化した、ってのが正しいと思う。
実際噛まれればなんかの病気にかかる可能性は普通の家畜以上にあるわけだし、ほっといたらまずいでしょと感じる一方で、人間の勝手な都合も多々あるんだよなぁと。駆除すりゃいいとも思えん、というか、多分本質的な解決になってない。

まあ、僕は政治家でもなければ動物愛護団体でもないので、自分も野犬もやばくならない方法で、護身の方法を考えるしかないのだけど。

2013年8月16日金曜日

R8C/M11A(M12A)でシリアル

どうもQです。

趣味ラボSCLで、友人と一緒にとあるプロジェクトをやっているのですが、自分の担当?でR8C/M11A、もしくは R8C/M12Aでシリアル通信するプログラムを書いておりました。

みんな大好き秋月のR8Cマイコン
http://akizukidenshi.com/catalog/g/gI-04524
http://akizukidenshi.com/catalog/g/gI-04525


安いし機能も少ないマイコンだから簡単だろヒャッハーwwwとか思ってたらハマったハマった…。で、ネットで色々検索かけてもあんまり情報が出てこないので、折角なんでメモ代わりに書いときます。


①書込み回路
ハードウェアマニュアルの付録に書いてある書込み回路ですが、回路図上のTXD0、RXD0は「マイコン側の」ピンを表しています。つまりPCにとっては逆。


②書込みソフト
R8CメーカのルネサスからFDTという書込みツールが出てますが、M11A,M12Aともになんかうまく認識してくれません。接続はできるんだけど、なぜかその後止まります…。一回なんかうまくいったと思ったら、ベリファイに失敗ししかも変なID書いたみたいで書込みすらできなくなりました…
同じくルネサスから出ているFlashStarterというソフトだと大丈夫です。


③機能モジュールの電力設定
最大のハマり点。これ、ハードウェアマニュアルかなんかでもっと大きく注意書きすべきだと思うのですが、まっさらなICを買うと、出荷時点で内部のフラッシュメモリにあるレジスタ、OFS2が0xFFになっています。フラッシュなので、一度意図的にプログラムでこいつを0x00に書き換えてあげないと、いつまでも0xFFのままになります。

これ自体は対処する必要はないのですが、上記の通りになっているとマイコン起動後にモジュールスタンバイ制御用のレジスタMSTCRが0xFFになります。この場合、シリアルやタイマ用の内部モジュールが全てスタンバイ状態になってしまい、各モジュール関連レジスタへの書込みが一切受け付けられません。結果、LEDチカチカみたいなのは動くけど、その他機能が何故か動かないということに。

対処法は、このMSTCRは普通に書き込めるレジスタなので、各機能の初期化の前に関連するビットを0にしてきましょう。いつまでもシリアル送信、受信ができず、ちょーーーハマりました…

多分巷に出回ってるM11A,M12A関係のマイコン情報は、上記OFS2が最初から0xFFじゃないんじゃないかなと思います(それらしいことはハードウェアマニュアルに書いてありました)。他サイトで公開されてるプログラムが何故か動いてるのはそういうことなんでないかと。


④割り込みレベル
各機能の割り込みには優先レベルがあります。初期状態では全ての機能の割り込み優先レベルが0になってて、割り込み禁止状態なので1とか2にしてあげましょう。忘れると、割り込み条件が満たしても、いつまでも割り込みが発生しません。



まあともかくこれで必要なことはできるようになりますた・・・マジでちかれた。
間違いとか、これでもいけるよーとかあったらおしえてくだちい。