Rover Mini と MEMS モニタの現況と今後

 気が向いたときにちょっとづつ進めてきた Haskell で作る Rover Mini MEMS モニタ。以前はラズパイかMacBookAirのどちらかで稼働させていましたが,最近はGPD Pocket 2で稼働させています(OS は Ubuntu )。前回報告したときからちょこっとだけ表示項目を追加したりして,現時点ではこんな感じ(グラフ表示部分が左側の項目名とずれているのはご愛嬌)。ラズパイだと Mini の始動時に電源が落ちるので初動の様子が観察できませんが,GPD Pocketはバッテリ付きなので,Miniの状態に関係なくECUの状態を監視してくれます。

 作成し始めた当初は関数型言語って何だ?マルチスレッドプログラミングなんかやったことないぞ(何しろ東芝ワンボードマイコンとか 8-16 bit PCの時代。高校の物理部通信班でコンピュータをいじくりだした世代)ってな感じでしたので,このプログラムの中身も思いっきり手続き的に記述してありますが,試しにモナドを使ってみようとか,宣言的UIで記述してみようとか,いろいろ実験をしてきました。

 さすがに基本構造が古すぎるので,次のバージョンは中身を刷新する予定。関数型言語でIoTをやるっていう趣旨はそのまま,eDSLによる記述で純粋部分と非純粋部分を分離しようとか,高水準スレッド関数を使ってみようとか,STMでFRPもどきのロジックを記述しようとか,単独稼働じゃなくサーバにデータを送るようにして将来工場のIoTサーバ的に使える準備を仕様とか,いろいろ構想は練っています。

 肝心の Rover Mini はどんな状態かというと,あと1,000 km. で走行距離が 200,000 km のところまで来ました。ECU のせいなのか接続部品のせいなのか,あるいは車自体の配線のどこかに不具合があるのかわかりませんが,不定期にデータが途切れることや,エラーのリセットが聞かないとかは,稼働機器がラズパイだろうとMBAだろうとGPD Pocketだろうと相変わらずです。一応可搬型のオシロスコープは手に入れ,各センサからの信号線も取り出しやすいようにしてもらったのですが,まだそこらあたりの怪現象をおっかけるまでには至っておりません。

 クーラーの効きが悪いのと,内装があちこちほころびてきた(ダッシュボードが割れていたり,シートの布地と革地の合わせ目がほつれてきたり,LED化したのにあいかわらずつきがわるい室内灯とかいろいろある)んですが,一応,原動機・変速機・制動機系統は普通に動くし,前照灯はLED化しました。キーレスと ( iPhone ) カーナビ,iPhoneにつながるオーディオもつき,ETC は 2.0 にしてあります。月に少なくとも数回は高速道路を100km/hで元気に走っています。オイル漏れや冷却液漏れ,ヒューズ切れなどはここのところほとんどなく,修理工場さんが地道に対策してきていただいたことに感謝です。クーラーだけは次の夏までにはなんとかしたい。入れ替え用のエアコンもあるようですが,92年購入の初期型に合うのかな?

 環境対策面で言えば,燃費が 14 km/L を超えることが多い省資源運転を心がけてはおりますが,音がうるさかったり,手動アイドリングストップが面倒だったり,そもそも石油燃料を燃やしてわずか 60 kg そこそこの人間を移動させるのに 800 kg の鉄の塊を動かすという非効率なことをやっているので,どこかで降りるという決断はしないといけません。廃棄にも負の環境側面がありますから,このまま乗り続けて自動運転の電気自動車が簡単に呼べるようになったら廃車かな。某先輩診断士にはまだ乗っているのかとしょっちゅう言われますが,購入してから 30 年も経過してまだ普通に使えるので,道具としては使っていってやりたいです。罪滅ぼしのベランダ植栽をもっとたくさんやらないといけないかな。