2019年8月1日

HUD #4: pygame周り

仕方なく、pygame+python-OBDでやってみようと思う
  • sudo apt-get install python3-pygame
  • sudo pip install obd
参考にしたのはこの辺



Python知らんし、pythonと python3で書き方違うとか知らんし、DirectFBも初めてだし、エラー出まくりでなかなか画面が出ない。

https://learn.adafruit.com/pi-video-output-using-pygame/pointing-pygame-to-the-framebuffer を参考にしてたが、それでも pygameがDirectFBを認識してない。
いろいろ漁った(どこ漁ったか忘れた)結果、
        os.environ['DISPLAY'] =  ''
        os.environ['SDL_FBACCEL'] =  '0'
        os.environ['SDL_FBDEV'] =  '/dev/fb1'
        os.environ['SDL_VIDEODRIVER'] =  'directfb'

        pygame.display.init()
と書けば何とかなったので これが正解かどうかは分からないままだけどこれでいく。

if文、for文すら書き方知らんのでいちいちググりながらの作業でずいぶんと時間かかってしまったが、
何とかここまで来た。
静止画しか上げてないけど、一応 速度とタコが(ダミーで)ピコピコ動くようには作ってある。
  • root権限でないと動作しないの、何で???
  • SPIの通信速度は96MHzで 2倍速相当のはずだが、フレームレートは思ったほど高いわけではなさそう。見たとこ 15fpsぐらい?
    同期の取り方とか分かればもう少し状況変わるのかも。
  • 「アレ」っぽいのが欲しかったので、これに入ってたフォント使ってみた。TrueTypeフォントがとても簡単に扱えるのは便利でよいね。アンチエイリアスが掛かるので320x240しかない割に見栄えもよい。
  • 上のタコメータはそれぞれを矩形で描いてる都合でアンチエイリアスかけてないので少々ガタガタしてる。これどうやったらよいんだろう。
  • 右の余白は ELM327でギアポジション引けるならそれを、そうでないなら燃費計を入れる予定。
  • 下の余白はどうしよう。
    情報てんこ盛りにすると ELM327から引っ張るのに時間かかりそうだしシンプルにまとめたいが、余白が目立つのも何かイヤ。

デザインについては、ELM327から何を引き出せるか、がまとまってからもう一度考えましょうかね。

0 件のコメント:

コメントを投稿