![[DIY]1000元自製桌球自動發球機](https://attach.mobile01.com/attach/201908/mobile01-c4314842cb29287db5d2d39f2102e488.jpg)
小孩開始學桌球後,跟他練習時,總嫌我們餵球不像教練那麼準確。好吧,那就作一台自動發球機吧。
製作過程中參考了滿多網路資料,想說也把我製作的細節記錄下來,供有興趣的人參考。
材料清單:
![[DIY]1000元自製桌球自動發球機](https://attach.mobile01.com/attach/201908/mobile01-648702c64fc3497936b695ff3c3013fb.jpg)
一開始的版本是使用Arduino UNO,但因為硬體的限制(Timer只有三個),無法再增加紅外線遙控及聲音回饋的功能,所以後來第二個版本就改用Arduino mega2560,它的Timer有六個。
如果不需要遙控和聲音的話,用Arduino UNO也是可以的,但就是要調整的話,要再跑過去發球機調整,較不方便。
接線圖:
![[DIY]1000元自製桌球自動發球機](https://attach.mobile01.com/attach/201908/mobile01-701cd1c7b89264b9347baedd1e138310.jpg)
![[DIY]1000元自製桌球自動發球機](https://attach.mobile01.com/attach/201908/mobile01-150dbf04c77ef777777047bf131995a1.jpg)
機構部分:
擺動的機構是採用小型門鈕加上伺服馬達
![[DIY]1000元自製桌球自動發球機](https://attach.mobile01.com/attach/201908/mobile01-c35e24909601123027325a4fb5e3b366.jpg)
![[DIY]1000元自製桌球自動發球機](https://attach.mobile01.com/attach/201908/mobile01-03839fb6364bbe22130d56b635a30156.jpg)
![[DIY]1000元自製桌球自動發球機](https://attach.mobile01.com/attach/201908/mobile01-c67731c8c72d90d16f8cf6d7f9173ebf.jpg)
微動開關是用來偵測球是否進到發球道了,控制板才知道是不是該往左或往右擺動了。
![[DIY]1000元自製桌球自動發球機](https://attach.mobile01.com/attach/201908/mobile01-d3b400f4fbbbe619f9e30b4a2a0af0a4.jpg)
![[DIY]1000元自製桌球自動發球機](https://attach.mobile01.com/attach/201908/mobile01-e966c98e86f8c6be158c048862ac7c52.jpg)
發球機構採用雙輪式,原因是小朋友才剛學,希望發球機發的球不要旋,小朋友比較打得到。不過也保留彈性,可以改成單輪,發球機構也可手動旋轉調整,以後可以練習上下/左右旋球。
![[DIY]1000元自製桌球自動發球機](https://attach.mobile01.com/attach/201908/mobile01-3e9e12c7f37b9f182f9a56a58b5fd4cc.jpg)
![[DIY]1000元自製桌球自動發球機](https://attach.mobile01.com/attach/201908/mobile01-06459750008582c7d960d99f8975b121.jpg)
餵球機構參考網路上的作法,很多人都是用這種轉盤式的進球機構。
![[DIY]1000元自製桌球自動發球機](https://attach.mobile01.com/attach/201908/mobile01-bd930d727bef6912be38fdc3d5c5735f.jpg)
(參考:https://youtu.be/qqoDK7DrOIM)
程式部分:
我使用到的程式庫:
AFMotor.h ( August 12, 2009 Adafruit Motor shield)
Servo.h
IRremote.h (## Version - 2.2.3)
Tone.h
https://github.com/adafruit/Adafruit-Motor-Shield-library
https://github.com/arduino-libraries/Serv
https://github.com/z3t0/Arduino-IRremote
https://github.com/bhagman/Tone
程式注意事項:
為了分配硬體timer資源,需作程式庫的小修改
1. irremote\boarddef.h
// Arduino Mega
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
//#define IR_USE_TIMER1 // tx = pin 11
//#define IR_USE_TIMER2 // tx = pin 9
//#define IR_USE_TIMER3 // tx = pin 5
#define IR_USE_TIMER4 // tx = pin 6
//#define IR_USE_TIMER5 // tx = pin 46
2. servo:
Servo\src\avr\ServoTimers.h
// Say which 16 bit timers can be used and in what order
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
#define _useTimer5
//#define _useTimer1
//#define _useTimer3
//#define _useTimer4
功能:
![[DIY]1000元自製桌球自動發球機](https://attach.mobile01.com/attach/201908/mobile01-5d56bfb58875ce34efedf624813a385d.jpg)
發球頻率,球速,左右擺動範圍調整
左1/右N (N=1, 2, 3, 4),左右對調,三落點發球
亂數發球mode1(亂數左右擺動),亂數發球mode2(亂數左右擺動+亂數球速)
實際運作影片:
後記:
作這樣一台雖然便宜,但需要有寫程式及手作的能力,好處就是可以依自已需求作修改、再進化。
不過後來看到有人在淘寶上買,台幣4000左右就有了

![[DIY]1000元自製桌球自動發球機](https://attach.mobile01.com/attach/201908/mobile01-9a6bd552ad45051c920642e3210310bd.jpg)
只能說會想DIY的人,應該是喜歡動手作,享受這個過程吧。

參考資料:
「自動」自「發」、求新「球」變─自製桌球發球機之成效探討
阿玉Arduino研究區
葉難-arduino文章列表
乒乓球發球機器人1.pdf
有趣的桌球發球機之製作
快打旋風-快打好手培育旋風計畫