電子標的 音響式

電子標的 音響式の回路図およびプログラム

音響式のエアガン用の電子標的です
光学式は現在開発中です
このページはキットについてだけではなく自力で部品集めをするための人のための情報も含まれています

・回路およびソフトはcopyleftです
 ハード、ソフトをそのまま使う事、修正して使う事は自由です
 但し修正してこれを販売する時はそのソースや回路図を公開してください
・標的はエアピストル用しかありません
 プログラムを自力で修正できる人向けです
 arduinoのプログラムを自力で修正できない人にはお勧めしません
・ハードの修正なしに機能拡張できるようにリレー等回路上使われていない部品がかなりあります
・標的に使用するゴム板(ハネナイト)や電線、電源など全部で1万円程度になります
・マイクの位置が正確でないと正しく計測できません
 精度の良い工作が出来ない人は作れません
・的に使用できるものは今のところ
  1.紙
  2.ハネナイトスポンジ5mm厚
 だけです
 的に使用できないもの
  1.木材
  2.金属板
  3.プラスチック板
 音が空気中を伝わることを利用しているので空気以外の物体中を伝わってマイクに入力されると着弾点が計算できない
・温度計に直射日光が当たると正しく音速を計算できません
 温度計は遮光してください
・開発に使用した言語は無料版です
・最大標的サイズ 約600x600mm 精度が落ちるのでマイク間距離450x450mm程度が最大と思ってください
・標的-表示装置間はエアガンの弾が絶対に届かない距離まで延長しても動作します


2021-01-07


Youtube動画 音響式電子標的 airsoft gun electric target
LCD shield adapter TOP view
・LANコネクターの形状はいろいろあるので注意。これは中国製。aliexpressで買った
・LANコネクターを流用しているだけで通信はシリアル。電気的規格はRS485
・RS485はツイストペア線を使うのでLANケーブルを流用するのが安上がり
・LANケーブルは8本線。RS485(2本)、電源(2本)使っているので4本余っている(JP3,JP2)

R0048301.jpg

LCD shield adapter BOTTOM view

R0048303.jpg

time lag counter TOP view

R0048310.jpg

time lag counter BOTTOM view

R0048308.jpg

temperature sensor

R0048314.jpg

mic and amp
・マイクの底面は平面では無いので間にプラスチックワッシャーを挟んであります

R0048313.jpg

BOM 部品表
・間違いがあるかもしれない 回路図を正として下さい
・arduinoは64bit浮動小数点計算をしているのでDueが必要。Due以外は精度不足で正しく計算できない
・リンクが切れるかもしれないが購入先の販売店リンクを張っておく
LCD shield
arduino Due R3
MIC

buhinhyo.png
arduino ino file 環境に応じて変更が必要
0001  //-------------------------------------------------- Ver1.0.0 ------ 2021-01-07 --------------
0002 // Acoustic Target Systems
0003 //----------------------------------------- written by Hiroyuki Iizuka ---- Japan ------------
0004
0005 #define DEBUG
0006
0007 #include <TFT_HX8357_Due.h> // Hardware-specific library
0008 TFT_HX8357_Due tft = TFT_HX8357_Due(); // Invoke custom library
0009 #define TFT_GREY 0x5AEB
0010
0011 #define TIMER_FREQENCY 16000000 // PIC24FJ64G002 32MHz fosc/2
0012
0013 #define COMMAND_QUERY_TEMPERATURE '1'
0014 #define COMMAND_LED1_ON '2'
0015 #define COMMAND_LED1_OFF '3'
0016 #define COMMAND_RELAY1_ON '4'
0017 #define COMMAND_RELAY1_OFF '5'
0018 #define COMMAND_RELAY2_ON '6'
0019 #define COMMAND_RELAY2_OFF '7'
0020
0021 #define pow2(a) ((a)*(a))
0022
0023 #define RS485_CONTROL_PIN 2
0024 #define PUSH_SW1 3
0025 #define PUSH_SW2 4
0026 #define PUSH_SW3 5
0027 #define LED1 6
0028 #define LED2 7
0029 #define DIP_SW1 8
0030 #define DIP_SW2 9
0031 #define DIP_SW3 10
0032 #define DIP_SW4 11
0033
0034 #define SW_ON LOW
0035 #define SW_OFF HIGH
0036 #define LED_ON HIGH
0037 #define LED_OFF LOW
0038
0039 struct mic_coord {
0040 double x;
0041 double y;
0042 double r;
0043 };
0044
0045 struct point_of_impact {
0046 double x;
0047 double y;
0048 };
0049
0050 //--------- USER EDIT BEGIN --------------------------------------------------
0051 #define NUMBER_OF_MIC 4 // 3 or 4
0052
0053 #define CALIBER 6.0 // mm
0054 #define TARGET_DIAMETER_10POINT 11.5 // mm
0055 #define TARGET_DIAMETER_STEP 16.0 // mm
0056 #define TARGET_AREA_BLACK 7 // point
0057 #define TARGET_DOT_SIZE 0.25 // 1dot = 0.25mm
0058
0059 mic_coord mic[] = {
0060 { -0.71, -0.71 }, // mic No1 X coordinate, mic No1 Y coordinate
0061 { 336.71, -0.71 }, // mic No2 X coordinate, mic No2 Y coordinate
0062 { -0.71, 332.71 }, // mic No3 X coordinate, mic No3 Y coordinate
0063 { 336.71, 332.71 } // mic No4 X coordinate, mic No4 Y coordinate
0064 };
0065
0066 #define TARGET_Z 11.0 // mm
0067 #define TARGET_CENTER_X 168.0 // mm
0068 #define TARGET_CENTER_Y 166.0 // mm
0069 #define TARGET_WIDTH 260.0 // mm
0070 #define TARGET_HIGHT 160.0 // mm
0071 //--------- USER EDIT END ----------------------------------------------------
0072
0073 boolean Mic_error;
0074 unsigned int timer_count[NUMBER_OF_MIC];
0075 String serial_buf;
行番号
解説
51
マイクの数 マイク3個はPIC24FJ64GA002のファームウェアを書き換え必要 マイクは何処に配置してもよい マイク3個を一直線上に並べてもよい
53
弾丸の口径
54
10点圏のサイズ
55
9点圏以降のサイズ増分
56
何点圏まで黒く塗りつぶすか
56
LCDの1dotを何mmに対応させるか つまり標的の拡大率 但し文字の大きさは変わらない
60-63
マイクの座標。原点は何処にとってもよい 出来るだけ精度良く 少なくとも0.5mmの誤差で 出来れば0.2mm程度を目標に入力 実際のマイクの振動板は黒いゴミ除けより1mm内側にあることに注意
66
標的面とマイクの奥行方向の距離 これはあまり計測誤差にならない1mm程度精度があっても問題無い
67
標的の中心X座標
68
標的の中心Y座標
69
標的の横幅
70
標的の高さ
LCD library User_Setup.h 環境に応じて変更が必要
0001  //                            USER DEFINED SETTINGS V5
0002 // This library supports the Mega and HX8357B/C display drivers only
0003 //
0004 // Set fonts to be loaded and speed up options below
0005
0006
0007 // ##################################################################################
0008 //
0009 // Define ONE driver, either HX8357B, HX8357C or ILI9481
0010 //
0011 // ##################################################################################
0012
0013 //#define HX8357B
0014 #define HX8357C
0015 //#define ILI9481
0016 //#define ILI9481_8BIT
0017
0018 // ##################################################################################
0019 //
0020 // Define the display width and height in pixels in portrait orientation
行番号
解説
13-16
LCDドライバーの種類によって変更する。コメント//を使用しているLCDドライバーの物だけ外す。液晶ディスプレイの裏面にどのドライバーを使用しているかシルク印刷がある シルク印刷は常に正しいとは限らない表示がおかしかったら変更してみる

shield schematic

shield.png

time lag counter schematic

counter.png

mic and amp schematic
・マイクの感度は固定です。増幅率を下げたいときはR5を大きくするか、R3を小さくしてください。増幅率はR3/R5になります

anp.png
program and schematics
ファイル ファイルタイプ 添付ファイルの解説
electric_target_acoustic_ino.zip arduino arduino DUE sketch .ino file
480x320 LCD library
electric_target.X.zip OTHER MPLAB X IDE v3.55 xc16 PIC24FJ64GA002 firmware
electronictarget_shield_eagle.zip EAGLE LCD shield adapter eagle v4.15 brd + sch file
electronictarget_acoustic_rev1_eagle.zip EAGLE time lag counter eagle v4.15 brd + sch file
electronictarget_acoustic_amp_rev1_panel_eagle.zip EAGLE mic & amp eagle v4.15 brd + sch file
electronictarget_acoustic_amp_rev1_panel.zip Gerber mic & amp FusionPCB gerber file
PCB size 96x65mm
seeed studio FusionPCB
ここにzipファイルごとgerberデータを貼り付けて注文する
ビューアーでどんな基板が出来るか確認できる
electronictarget_acoustic_rev1.zip Gerber time lag counter FusionPCB gerber file
PCB size 76x74mm
electronictarget_shield.zip Gerber LCD shield adapter FusionPCB gerber file
PCB size 100x82mm