利用樹莓派,光敏電阻和小型舵機實現自動獲取 《最終幻想 X HD重制版》 連續避雷200次獎杯


我相信大家只要是玩過最終幻想 X的同學肯定頭疼於跑鳥和連續避雷200次,為此可以說不眠不休,甚至連砸機器的心都有,這兩個小游戲可謂極度變態。對於連續避雷200次這個小游戲,不僅要求玩家在屏幕出現閃電后0.5秒按 O 鍵,而且還要連續不斷200次成功,只要一次失敗就得重新玩起。 我想很多同學連成功一次都困難,何況200次不間斷。

 

不過,作為滋生技術宅,借鑒了各種同學的經驗和技巧,發現可以利用硬件來輕松達到連續避雷200次不間斷,而且還可以達到想避多少次就可以有多少次。看到過有同學利用 Arduino + 光敏電阻實現過一個機器人來不斷探測PSV屏幕,並且可以在0.1秒內作出動作相應,驅動小型舵機來按 O 按鍵。 我這里利用樹莓派和同樣的硬件也實現了一個機器人,並且成功實現避雷200次以上,先貼個成就獲得圖

 

好了,那么開始介紹我的設計。

利用樹莓派GPIO連接光敏電阻(帶AD,如果沒有AD,需要自己搭配AD電路進行轉換)和舵機,我把光敏電阻連接到了GPIO 4,舵機的 PWM信號連接到了 GPIO 18。因為這兩個針腳距離VCC還是比較近的。

不同型號的樹莓派請參考上面的GPIO針腳圖。我的是B+ 40pin的,所以連接圖如下:

當然,如果大家的電源狀況不穩定,可以適當增加電阻。好了,這樣只要光敏電阻探測到一定光強,就會改變他的電阻值,這個時候我們在樹莓派中只要探測GPIO4的電平,出現低電平則可以驅動舵機進行旋轉然后電擊PSV上按鈕。

 

獻上我的代碼: https://github.com/Jarrey/final_fantasy_x_200_lightning

 

 1 #!/usr/local/bin/python
 2 
 3 import RPi.GPIO as GPIO
 4 import time
 5 
 6 lightPin = 4  # GPIO Pin 18
 7 servoPin = 18 # GPIO Pin 18
 8 
 9 GPIO.setmode(GPIO.BCM)
10 
11 # Setup servo pin status
12 GPIO.setup(servoPin, GPIO.OUT)
13 pwm = GPIO.PWM(servoPin, 100)
14 pwm.start(5)
15 
16 # Setup light sensor pin status
17 GPIO.setup(lightPin, GPIO.OUT)
18 GPIO.output(lightPin, GPIO.LOW)
19 time.sleep(0.5)
20 GPIO.setup(lightPin, GPIO.IN)
21 
22 def servo_set(angle):
23     duty = float(angle) / 10.0 + 2.5
24     pwm.ChangeDutyCycle(duty)
25     
26 try:
27     i = 0
28     while True:
29         v = GPIO.input(lightPin)
30         if (v == GPIO.LOW):
31             servo_set(30)
32             time.sleep(0.1)
33             servo_set(60)
34             time.sleep(0.1)
35             servo_set(30)
36             time.sleep(0.1)
37             i = i + 1
38             print i
39                             
40 except KeyboardInterrupt:
41     pass    

其中旋轉角度可以各自進行微調。

 

最后附上一段運行的視頻: 

 

如果想幫助獲得200次避雷,可以聯系我QQ 28966930

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM