エアガン測定

エアガンに関する色々を測定したりしなかったりしています http://www.eonet.ne.jp/~daisaku-tech/index.html

エアガン電子ターゲットもどき作成

東京マルイのプロキャッチターゲットにBB弾が当たったところを検出する、電子ターゲットもどきを作成しました。 今はBB弾が当たった時の位置と順番の検出だけ。 LinuxのPCにWebカメラを接続し、PythonとOpenCVで映像(画像)処理してBB弾を検出しています。 …

VS codeのターミナルでbyobuを使う

VS codeの設定 VS codeのターミナル(統合/内蔵ターミナル)でbyoubuを使おうとすると、F3などのキーがVS code側に取られてしまい、byobuの操作ができません。次の設定を行うことで解決できます。 VS codeの、設定 > ターミナル > Integrated: Allow Chords…

USBカメラの映像の背景差し替え

USBカメラの映像の背景を、指定した画像ファイルに置き換えてみました。 youtu.be googleによるセマンティックセグメンテーションDeepLabV3+を使用しました。次のところの、Keras版を使用しました。 GitHub - bonlime/keras-deeplab-v3-plus: Keras implemen…

VS Code でテキスト整形(改行付きラップ)

VS Codeの拡張機能、Rewrapを使うとテキスト文字列を改行付きで整形できます。 marketplace.visualstudio.com このように一行の長いコメントを複数行のコメントに整形してくれます。EmacsのM-q(fill-paragraph)と同じ機能で、VS CodeでもキーバインドはAlt-q…

Linux Kernel 4.19のリアルタイム性能

cyclictestによるリアルタイム性能測定 rt-testsパッケージに含まれるcyclictestとhackbenchを使ってDebian 10(Linux Kernel 4.19)のリアルタイム性能を見てみました。 結論から言うと、latencyが1ms程度の精度で良いのであれば、PREEMPT RT Kernelではない…

PythonとOpenCVで車線検出

PythonとOpenCVで、車線を検出するプログラムを作成しました。チョー単純なロジックなので、条件が想定外になると検出できないんですが、ある程度検出できています。 PythonとOpenCVによる車線検出 映像から1フレームの画像を取り出し、グレースケールに変換…

弾速計試作その3:透明ディスプレイ

透過型OLEDを使用した弾速計を作成しました。 透明ディスプレイ弾速計 銃口に取り付けたセンサーにより、弾速の計測と、発射数のカウントを行います。描画が遅いんで、連射すると表示が追いつきません...

Tensorflowによる行列演算速度を、CPU/GPUで、Windows/Ubuntuで比較

Tensorflowによる行列演算速度を比較しました。CPUとGPU、WindowsとUbuntuでそれぞれ比較。で、同じPCでOSが異なるだけなのに、やたらWindowsの場合が遅い結果となりました。 まずはWindows10の場合。 Windows10:Tensorflow CPU vs GPU 次はUbuntu 18.04の場…

Zybo/Petalinux 2018.3でUSBカメラを使う

無印ZyboにPetalinux 2018.3をインストールしてUSBカメラ(Webカメラ)を使用する。 無印Zybo(Zybo Z7-10/20ではなく古いほうのZybo) 開発用PC:Windows 10(Vivado/XSDKをインストール) 開発用Linux:Ubuntu 16.04(Petalinux開発環境をインストール) …

弾速計試作その2:エアガン機能拡張

銃に取り付けるタイプの弾速計試作その2を作成しました。初速だけでなく、次の4つのデータを表示します。 発射弾数 初速(m/s) ターゲットまでの距離(m) 銃口の方位(deg) エアガン機能拡張器試作 初速を測定するための赤外線センサーは、ホントはサイレンサー…

Blue Pill/STM32duinoで電子コンパスHMC5883Lを動かす

Blue Pill+Arduino_STM32(Roger Clark氏作成版stm32duino環境) Arduino_STM32(Roger Clark氏作成版)環境のBlue Pillでは、電子コンパスHMC5883Lが動作しません。 2019/03/17時点のmaster https://github.com/rogerclarkmelbourne/Arduino_STM32 注:Ard…

BluePillでLIDAR-Lite v3

BluePillで、レーザー距離センサのLIDAR-Lite v3動作しました。 www.switch-science.com BluePillはArduino互換環境で、LIDAR-Lite Arduino Libraryがそのままビルドでき、サンプルのGetDistanceI2cが動作しました。ライブラリにもサンプルスケッチにも、何…

電子コンパス比較

電子コンパスのHMC5883LとQMC5883Lの精度を比較してみました。 起動後、8の字を描くようにグネグネさせた後、南方向に向けて水平にし、そのままにしておいた時の方位を取得しました。 HMC5883Lが安定して183.5度前後で推移しているのに対し、QMC5883Lは185~…

Arduino UNOとBlue PillのLCD描画速度

コントローラとしてILI9341が使用されているLCDの描画速度を比較しました。一つはArduino UNOで、もう一つはBlue Pill(STM32F103)です。 youtu.be Adafruitライブラリに含まれるスケッチ例、graphictestを実行しています。Blue Pillの場合も同様です。 Blue …

BluePillはUSB不具合対策しなくてもスケッチ書き込みできるものがある

BluePill(STM32F103ボード)にはUSB関連で不具合があります。R10抵抗値が間違っており、1.5KΩであるべきところが、10KΩまたは4.7KΩが実装されています。そのため、USB接続でArduino IDEからスケッチを書き込もうとすると、エラーになって書き込めません。対…

Blue Pill(STM32duino)のanalogRead実行時間は約7μs

STM32duino環境のBlue Pillボード(STM32F103)によるanalogRead実行速度は約7μsです。次のsketchで実行時間を見てみました。 int val[10];unsigned long startTime;unsigned long endTime; void setup() { pinMode(PA0, INPUT_ANALOG); Serial.begin(115200);…

STM32duinoはWindows Store版Arduino IDE 1.8.5ではダメ

Windows Store版Arduino IDE 1.8.5(2018/08/27時点)を使用して、STM32duinoによりBlue Pill(STM32F103 minimum development board)にsketchを書き込もうとすると、IDE下部のログ表示部分に「アクセスが拒否されました」とエラーが出て書き込めません。 …

弾速計試作1

銃口に取り付けるタイプの弾速計を試作しています。 youtu.be BB弾の検出には、2つのフォトリフレクタを使用しています。 A/Dコンバータ内蔵のマイコンとしてArduino M0 proを使用しています。 2箇所のフォトリフレクタの電圧変化を検出し、その時刻から速度…

弾速計XCORTECH X3200 mk3はフォトトランジスタの電圧をA/D変換か?

弾速系XCORTECH X3200 mk3を分解しました。 mkIIのような差動コンパレータや、シュミットトリガインバータのような部品は見当たりません。 プロセッサはM058ZDN(Cortex-M0ベース)となっています。 ADCが800kSPSということなので、フォトトランジスタの出力を…

弾速計XCORTECH X3200 mkIIは差動コンパレータの値をプロセッサで読み取って速度計算

弾速計XCORTECH X3200 mkIIを分解しました。 数年前に購入。たぶん本物、と思います。メイン基板はこれ。 基板下の部分にLM393(差動コンパレータ)が2つ。たぶん、BB弾が通る筒の中2箇所にあるフォトトランジスタの電圧が閾値を上回ったら(下回ったら)0(…