あいてる隙間があったら、ついカッとなりやってしましました(車のスピードメーターを自作した話)

8876ff26a73892bdc9355b07dc97b843?s=47 aramsan
October 25, 2019

 あいてる隙間があったら、ついカッとなりやってしましました(車のスピードメーターを自作した話)

車のスピードメーターを、PIC + アセンブラを使って自作した話です

2019年10月25日に開催された
【エンジニア交流会】趣味でそこまでやっちゃうのか!趣味テックLT大会
https://gaiax.connpass.com/event/147227/
当イベントで発表した資料です。

8876ff26a73892bdc9355b07dc97b843?s=128

aramsan

October 25, 2019
Tweet

Transcript

  1. あいてる隙間があったら、 ついカッとなり やってしましました @aramsan 2019/10/25 Gaiax Tech Meetup 趣味でそこまでやっちゃうのか!趣味テックLT大会

  2. 峯 荒夢(@aramsan)
 株式会社ガイアックス 開発部
 ブロックチェーン担当マネージャー
 
 先行技術開発チーム 「さきがけ」 リーダー
 ソーシャルメディアマーケティング事業部

    開発リーダー
 TC307 国内検討委員(ブロックチェーンISO標準化検討委員)
 
 2000年 ソニー子会社に入社
   ソフトウェアエンジニアとしてPCの設計を行う 
 
 2013年 株式会社ガイアックス入社
 

  3. © Gaiax Corporation 3 11/1,8 プロトタイプ体験会
 
 ブロックチェーンを使った応援を力に変えるサービス
 
 @cheerfor_


  4. Copyright © Gaiax Co.Ltd. All rights reserved.
 4
 基本用語から最新規格までわかりやすく
 ブロックチェーン用語集


    2019.9.20出版
 インプレスR&D社
 峯 荒夢 著
 60分でわかる!
 ブロックチェーン最前線
 2018.5.25出版
 技術評論社
 峯 荒夢 監修
 書籍執筆

  5. 世界の 新しい常識を 作る

  6. 引用元:https://matome.naver.jp/odai/2142667669338056901/2142668610350461603 https://matome.naver.jp/odai/2141545176970079901 中学生時代は・・・

  7. BASIC って遅いよねー

  8. スピード求めるなら アセンブラだよねー

  9. 中2でハンドアセンブルを はじめました・・・ ハンドアセンブル  ニーモニックっで書かれたアセンブラのプログラムを、  16進数の羅列に手動で翻訳する作業のこと

  10. そんな自分が
 大人になって
 車を持ちました


  11. None
  12. サイト作って、 オーナーズクラブ立ち上げて いろんな情報が入ってくる 楽しい

  13. None
  14. ところでみなさん 隙間ってあいてたら とっても気になりますよね?

  15. すきま

  16. ある日うちの車にも隙間が空きました

  17. すきま

  18. すきま 隙間は埋めたいと ついカッとなって しまった

  19. 何か表示しよう

  20. うちの車のスピードメーターは 199km/hまでしか表示できない

  21. 200km/h以上表示できる メーターはないものか?

  22. 車のスピードを測るには? 車の進んだ距離は車速パルスというものを数えることで計測できます。 1マイル進む間に1000回センサーが回転する仕組みになっています。 うちの車は1回転する間に4回パルスを発生させます。 1マイル進む間に4000回のパルスを発生させます。 このパルスの回数を計測進んだ距離を時間で割れば速度が測れます。

  23. はじき はやさ x じかん = きょり はやさ = きょり / じかん 1パルスで進む距離は 1.60934 km / 1000 / 4

    = 0.000402335 km はやさ = 0.000402335 x パルス数 / 時間
  24. 回路図

  25. 出来上がったもの

  26. ソフトウェア マイコンはPIC 言語はアセンブラ Cでも書けるが あえてアセンブラ

  27. しかし・・・ アセンブラは割り算が苦手 割り算するとコードが長くなる・・・・ はやさ = 0.000402335 x パルス数 / 時間

    が、めんどくさい・・・・
  28. 工夫した点 割り算を排除 はやさ = 0.000402335 x パルス数 / 時間 時間が、ガン 時間を1にすれば割り算必要なくなる でも、1時間長過ぎる・・・

  29. パルス数 = はやさ とならないか? 時間内のパルス数がそのまま時速となるような条件を求める 0.000402335 km 進んだら時速1km/hとなる時間

  30. じかん = きょり / はやさ 0.000402335 km 進んだら時速1km/hとなる時間は 1.60934 km / 1000 / 4

    = 0.000402335 km 時間 = 0.000402335km / 1km/h = 0.000402335 h = 1448.306msec →調べたところ、1マイル4000パルスではなく、わざと速めの速度 が表示されるるよう4000以上のパルスを出力する 1448.306msec→1413msecとするときれいな数字が出る
  31. 速度計測の最終仕様 1413msec間のパルスをカウントし、 その数値をそのまま表示すればスピードメーターとできる 2回なら、2km/h 100回なら、100km/h 割り算することなく実装できた!

  32. 1413msec微妙じゃない? ここでアセンブラが活躍  アセンブラは1命令の実行時間が決まっている  実行時間を調整して 78.5msecのループを作り  18回このループが実行されると 1413msecが取れる  この間のカウントを表示すればスピードメーターとなる 実行時間が測れちゃうアセンブラ最高!

  33. 出来上がったもの

  34. 理論上時速765km/hまで 表示できるスピードメーター

  35. 隙間が埋まった!

  36. 世界の 新しい常識を 作る

  37. 趣味でエンジニアリングすれば アセンブラを学べて スピードメーターが作れる! 世界の新しい常識!

  38. Enjoy Driving! Enjoy Engineering!