古詩詞大全網 - 個性簽名 - Python玩“跳”iOS+Win的硬件實現介紹?

Python玩“跳”iOS+Win的硬件實現介紹?

原項目地址:Wang hub/微信_ jump _ game。

教妳用Python玩微信。

本項目源代碼:yangyiLTS/微信_jump_game_iOS。

目前現有的iOS逐跳輔助需要macOS環境下的WebDriverAgentRunner。現在介紹的方法是在Windows環境下物理實現的,既不需要macOS,也不需要越獄。

第壹效應

操作環境&;工具

Windows中的Python 3.6

Python枕頭庫

局域網環境

iToools Airplayer

樹莓派或arduino(本文使用樹莓派)

SG90轉向器

杜邦線、紙板

壹塊小海綿

橙子或其他多汁水果(可選)

基本思路是利用iOS自帶的Airplay服務,將遊戲畫面投射到電腦上。使用枕頭庫抓取電腦屏幕,獲得遊戲畫面。分析圖片,計算跳躍距離,乘以時間系數,得到按壓時間。按壓時間發送給樹莓派,樹莓派控制舵機點擊手機屏幕。原則&;步驟

舵機和控制器部分

Raspbian Jessie(OS:rasp bian Jessie)連接局域網,servo_control.py下載到rasp bian Jessie。在舵機擺臂上貼壹根杜邦絲,將舵機固定在紙板上,如圖所示:

拿壹塊小海綿,大概10mm*10mm*5mm,不用太精確。在海綿中間挖壹個小洞。大概是這樣的:

海綿用水浸濕,放在手機屏幕“再來壹次”的位置。在杜邦線的另壹端,插著橘子。要觸發電容屏,需要在屏幕上形成電場。我試著接了幹電池的負極,效果並不理想。最後,我不得不從我的室友那裏拿了壹個橘子。當然也可以壹直握著或者握著電線。)

舵機接樹莓派,電源5v(04號腳,06號腳),舵機控制線接gpio 18(12號腳)。

需要根據實際安裝位置調整轉向器的高低位置(範圍:2.5~12.5)。

伺服向下= 3.8伺服向上= 5

最終效果

窗口部分

下載Airplayer(不安裝,不綁定)

配置Airplayer,並將畫質調整到最高水平。在iPhone上啟動Airplay,然後就可以在電腦上看到iPhone屏幕了。遊戲運行時,需要Airplayer全屏顯示。

安裝枕頭庫,本文使用枕頭庫的ImageGrab截圖,截圖代碼為:

im = ImageGrab.grab((654,0,1264,1080)) im.save('a.png ',' png ')

下載微信_ jump _ auto _ IOs _ win.py我的顯示器分辨率是1920*1080,手機是iPhone7。如果使用不同的設備,需要改變時間系數等參數。

因為Airplay在傳輸的時候會對畫面進行壓縮,所以得到的遊戲畫面會有色差。我修改了原算法的壹些參數來增加顏色容差,並在測試中取得了較好的準確率。

微信_jump_auto_iOS_Win.py計算完跳轉距離後,會調用socket庫向樹莓派發送跳轉時間,其中ip地址需要修改為實際樹莓派的ip地址。

ip_addr = 'rasp_ip '

運行打開遊戲畫面,在Airplayer窗口全屏樹莓派上運行servo_control.py?,監聽9999端口,等待Win的計算結果。Windows運行微信_jump_auto_iOS_Win.py海綿,可以在“重試”位置自動重啟,之後會壹直自動刷題&;其他的

因為是物理點擊屏幕,所以會有壹些操作上的錯誤。操作誤差由時間常數誤差、轉向器動作時間、杜邦線觸點插入海綿的深度等引起。但是目前的算法在壹種情況下會有誤差疊加的問題。

z形路徑誤差累積過程

轉向器的擺角和時間系數沒有絕對值,需要慢慢嘗試。目前使用的時間系數是2.43。

可以用Arduino+pyfirmata組合來控制舵機,成本相對較低,不需要網絡傳輸計算結果。因為我的arduino前幾天給了個女票,所以我還沒有用過arduino的方案。

跳200+次後,這個遊戲的盒子會變得很小(比如題圖),這是普通人類無法企及的。直到研究了外掛,我才知道手工考高分有多難。我們不要刷標記了,不會有朋友的。