2015年12月17日 星期四

DIY雷射槍和槍靶使用Arduino Pro Mini

想說在耶誕節的夜晚熱鬧一點, 可以讓小孩留個美好的回憶到夢裡去找聖誕老公公, 想來想去, 又想不到該怎麼做, 突然在夜市看到類似這個槍和槍靶的遊戲, 小孩玩到不亦樂乎, 於是就想自己來DIY這個遊戲裝置, 整個製造過程非常簡單, 有興趣的人也可以DIY一台給小孩玩

雷射槍部份
首先一樣是升壓板+電池保護板+18650鋰電池, 這已經是每次DIY必備的組合了, 左邊是電池保護板, 右邊是升壓板, 兩個板子都用熱熔膠黏在18650的鋰電池上 




發射裝置再次使用激光頭


把升壓板+電池保護板+18650鋰電池用熱熔膠黏在玩具槍上(淘來的, 本來好像是Wii的配件)


把鋰電池裝個開關, 以免放久了電就自然放電放完了...沒電時可用micro usb充電


試射看看...嗯...很不錯


近距離點亮狀態


近距離沒點亮的狀態


槍靶部份
則是使用Arduino Pro Mini做SG90舵機的控制, 激光的接收器則使用激光接收感應器來偵測是否有被射到


槍靶的完成圖如下, 加上個打中時會立起來的招牌

槍靶的完整程式碼
#include <Servo.h>
Servo myservo;

boolean LaserShooted;
unsigned char Button_Times = 0xFF;
unsigned char Last_Button_Times = Button_Times;
char Bnumber=0;

void setup() {
  Serial.begin(9600);
  pinMode(10, INPUT);
  myservo.attach(9, 700, 2200); // 修正脈衝寬度範圍
  myservo.write(60); // 一開始先放在水平線上
  delay(500);
  myservo.detach();
}

void loop() {
  LaserShooted=digitalRead(10);
  Serial.print("LaserShooted = ");
  Serial.println(LaserShooted);
  if(LaserShooted) {
    delay(10);
    Bnumber=1;Button_Times=0x01;
    }
  else {
    delay(10);
    Bnumber=99;Button_Times=0xFF;  
    }
   
  if(Button_Times != Last_Button_Times) {
    Last_Button_Times=Button_Times;
    if(Bnumber==1) {
      myservo.attach(9, 700, 2200);
      myservo.write(180);
      delay(500);
      myservo.detach();
      delay(2000);
      }
    else if(Bnumber==99) {
      myservo.attach(9, 700, 2200);
      myservo.write(60);
      delay(500);
      myservo.detach();
      }  
    }
  }

實際動作影片

20 則留言:

  1. 請教版主:升壓板+電池保護板+18650鋰電池您建議去哪裡買?謝謝

    回覆刪除
  2. 如果你有門路就去對岸淘寶買較便宜,如果沒有,那就到露天拍賣去買,露天拍賣上都有,只是貴了一點

    回覆刪除
  3. 您好 因為我最近也想自己DIY雷射槍 找到了這篇 想請問一下這把槍是用哪裡控制開槍的 因為在上面的照片中沒有看到類似板機的裝置

    回覆刪除
    回覆
    1. 你好, 它是有板機的, 只是我照片沒有拍到, 我是在這買的http://tw.taobao.com/item/524430683114.htm?spm=a1z3o.7406521.101.7.iGu2Jc&abtest=_AB-LR492-LR501-LR517-LR895-PR492-PR501-PV517_2373-PV895_2461
      雷射的開關則是用極限開關黏在槍裡面就這樣而已

      刪除
    2. 感謝您的回覆, 還有一個問題就是 激光接收感應器 這東西是在哪裡取得的呢? 因為我找了好多地方都找不到 是板主自己焊的嗎??

      刪除
    3. 露天就有啊...我幫你找到了
      http://goods.ruten.com.tw/item/show?21403227516733

      刪除
    4. 謝謝你 可能是我關鍵字打錯了 我找了好久耶 :( 可能是我關鍵字打錯了

      刪除
    5. 不用客氣,舉手之勞而已...

      刪除
  4. 版主您好
    我和我幾個朋友想創立一間雷射槍室內生存遊戲店,
    但目前沒有門路購買整套設備,加上資金預算關係,
    想說自製一套試試看,
    早期我是寫影像處理辨識系統,車牌辨識那種,
    對程式稍微了解這麼一丁點,覺得這系統應該是不難,
    雖然學過一陣子,但是在程度上面還是非常差,

    不知是否方便可以與您私下聊聊

    回覆刪除
  5. 版主您好
    我和我幾個朋友想創立一間雷射槍室內生存遊戲店,
    但目前沒有門路購買整套設備,加上資金預算關係,
    想說自製一套試試看,
    早期我是寫影像處理辨識系統,車牌辨識那種,
    對程式稍微了解這麼一丁點,覺得這系統應該是不難,
    雖然學過一陣子,但是在程度上面還是非常差,

    不知是否方便可以與您私下聊聊

    回覆刪除
  6. 版主您好
    我和我幾個朋友想創立一間雷射槍室內生存遊戲店,
    但目前沒有門路購買整套設備,加上資金預算關係,
    想說自製一套試試看,
    早期我是寫影像處理辨識系統,車牌辨識那種,
    對程式稍微了解這麼一丁點,覺得這系統應該是不難,
    雖然學過一陣子,但是在程度上面還是非常差,

    不知是否方便可以與您私下聊聊

    回覆刪除
    回覆
    1. 聊天當然是沒問題, 我的e-mail nhs54798799@gmail.com

      刪除
  7. 請問雷射槍怎麼做成單發點放?

    回覆刪除
    回覆
    1. 單發點放是指一直按著板機, 但是只發射一次, 而不是一直發射嗎? 如果是, 建議用mcu來做, 超簡單, 用硬體做, 則google一下 one-shot circuit, 用555就能做, 可以試看看

      刪除
  8. 請問如果要在雷射槍上做音效是一樣用arduino+蜂鳴器下去做嗎?

    回覆刪除
    回覆
    1. 是的, 只是聲音的頻率要調一下, 會比較好聽

      刪除
  9. 版主,請教發射跟接收最遠可以到10m嗎?想裝在遙控飛機上,鏡頭發射、機尾接收,射到斷油門5秒之類的。

    回覆刪除
    回覆
    1. 可以的, 但是接收器不可直接曝在外,否則會被太陽光干擾, 像紅外線一樣, 接收器外面要裝一層濾光線的暗紅色濾光片

      刪除
  10. 不好意思板主,可以請問一下射程是多少嗎?

    回覆刪除
  11. 不好意思版主可以請教一下射程嗎?

    回覆刪除

歡迎大家來討論交流一下~~~