Darkside(https対応しました)

2021年10月13日(水) 22:26

描画準備は整った

 3軸傾斜センサーから実際の傾斜を導く方法を確認していると、math.h の hypot とか atan2 とか無茶苦茶便利なことに今更ながら気が付いた。C言語は計算向きじゃない、というイメージは時代遅れだったようだ。
 左右傾斜角度と俯仰角度をサクっと計算して確認すると、それらしい値がちゃんと得られている。戦車は宙返りしたりしないので、象限をまたいだら結果がおかしくなったとしても実用上は問題ないだろう。それにたぶん、象限に対応できている。atan2 ならば。

 普段PIC系ばかり使っていると、実数演算やら三角関数が簡単にできてしまう環境には感動してしまう。

 こうして遂に、カメラ試験用の cam.py に傾斜センサー読み取りを追加できるようになった。値も、ちゃんと取れている。

 操縦用広角カメラは右舷に仮設したが、基板の印刷で上下を合わせると横倒しになってしまうようだ。右の前照灯が邪魔に見えている。本来の位置に設置すれば、主砲が邪魔に見えるはずだ。
 車体を傾けてやると、それに応じて数字が変化する。単位はとりあえずラジアンのままだ。

 ここまで出来れば、後はプログラムを頑張るだけで戦闘機のヘッドアップディスプレイみたいな表示だって可能だろう。しかし、画質を考えると凝り過ぎても汚くなるだけのような気がする。どんな表示が良いかあれこれ試してみよう。

 背景を半透明にして、表示を見やすくしてみた。
 こんなのαを指定して長方形を描くだけと思ったのだが、驚いたことに opencv の描画関数はαの指定ができない。2枚の画像を合成する時に、比率を指定することならできる。

 おかげで、カメラ画像のコピーを用意し、コピーに黒い長方形を描画。そして、cv2.addWeighted() でカメラ画像とコピーを合成することで背景が半透過する領域を作るという回りくどい(無駄で遅くなる)方法を取っている。

written by higashino [Sタンク 1/16] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(https対応しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4