Ruka hadi maudhui makuu
Mafunzo ya AI

Unda Wakala wa iPhone Anayeendeshwa na AI kwa ESP32-S3

Jifunze jinsi ya kuweka programu kwenye ESP32-S3, kuakisi iPhone kwa UxPlay, kuunganisha modeli ya maono inayooana na OpenAI, kusawazisha udhibiti wa kielekezi, na kuendesha kazi otomatiki bila Xcode, akaunti ya msanidi, jailbreak, au programu iliyosakinishwa kwenye simu.

Unda Wakala wa iPhone Anayeendeshwa na AI kwa ESP32-S3

ESP32 iPhone Agent Hufanya Nini

ESP32 iPhone Agent huwezesha modeli ya AI kuona na kutumia iPhone halisi. Hutumia uakisi wa skrini kupitia AirPlay kwa ajili ya uingizaji wa kuona, pamoja na ubao wa bei nafuu wa ESP32-S3 kama kipanya na kibodi ya USB. Kwa kuwa huingiliana kupitia skrini na kiashiria, hauhitaji Xcode, akaunti ya msanidi wa Apple, jailbreak, Developer Mode, au programu saidizi iliyosakinishwa kwenye simu.

Kiolesura cha ESP32 iPhone Agent na iPhone iliyounganishwa

Kompyuta inaweza kutumia macOS au Linux. Huendesha UxPlay, seva ya Python, kiolesura cha wavuti, na muunganisho wa modeli ya kuona inayooana na OpenAI. ESP32-S3 huunganishwa na kompyuta kupitia Wi-Fi huku ikionekana kwa iPhone kama Kifaa cha kawaida cha Kiolesura cha Kibinadamu cha USB.

Jinsi Mfumo Unavyofanya Kazi

AirPlay hutoa macho

iPhone huakisi skrini yake kwenye UxPlay kwenye kompyuta. Msururu wa GStreamer hubadilisha mtiririko huo kuwa fremu za JPEG zinazotumiwa na wakala wa AI na mwonekano wa moja kwa moja unaotegemea kivinjari.

ESP32-S3 hutoa mikono

Inapounganishwa na iPhone, ubao hufanya kazi kama kipanya na kibodi ya USB. AssistiveTouch ya iOS ikiwa imewezeshwa, mibofyo ya kipanya huwa miguso, kukokota kiashiria huwa kutelezesha, gurudumu la kusogeza husogeza kiolesura, na amri za kibodi zinaweza kuingiza maandishi au kubonyeza njia za mkato.

Firmware imekusudiwa kuwa na mantiki kidogo. Seva hutuma amri za mstari kama move, click, scroll, type, na key kupitia TCP. Ubao hujibu kwa ok au ujumbe wa hitilafu.

Mratibu na mtendaji hutoa akili

Modeli ya mratibu huunda mpango mfupi kutokana na lengo lililoombwa na skrini ya sasa. Modeli ya mtendaji hukagua kila picha mpya ya skrini na kuchagua kitendo kinachofuata, kama vile kugusa, kutelezesha, kuchora njia, kuandika, kubonyeza kitufe, kurudi nyumbani, au kumaliza. Modeli hiyo hiyo ya kuona inaweza kutumika kwa majukumu yote mawili.

Ukaguzi wa mzunguko uliofungwa huboresha utegemezi

Usogezaji wa kiashiria ni wa kulingana na nafasi ya awali, hivyo seva hufuatilia nafasi yake inayokadiriwa. Kabla ya kugusa, inaweza kukisogeza kiashiria kidogo, kukitafuta kwenye picha iliyoakisiwa, kurekebisha kosa, na kuboresha urekebishaji. Baada ya kitendo, wakala hukagua ikiwa skrini imebadilika. Kwa hivyo, vitendo vilivyokosa vinaweza kutambuliwa na kujaribiwa tena badala ya kuwa msingi wa hatua zinazofuata.

Mfumo pia unaweza kupanga upya baada ya vitendo vinavyojirudia na kurejea kutoka kwa viungo vilivyokatika au majibu batili ya modeli. Muunganisho wa Wi-Fi ukikatika, ubao huachilia vitufe vya kipanya na hujiunganisha tena kiotomatiki.

Vipengele Muhimu

  • Hakuna usanidi wa uundaji wa Apple: hakuna Xcode, akaunti ya msanidi, kusaini msimbo, Developer Mode, au programu ya kuendesha majaribio inayohitajika.
  • Ulinganifu mpana wa programu: wakala hufanya kazi kwenye pikseli badala ya kutegemea mti wa ufikivu, hivyo unaweza kufanya kazi kwenye programu na michezo ya kawaida.
  • Kompyuta mwenyeji ya Mac au Linux: seva haizuiliwi na macOS.
  • Usaidizi wa modeli unaonyumbulika: API yoyote ya mazungumzo inayoendana na OpenAI na inayokubali picha inaweza kutumika.
  • Udhibiti wa mikono na wa kiotomatiki: kiolesura cha wavuti kinaunga mkono miguso ya moja kwa moja, kutelezesha, kusogeza, kuandika, Home, Back, na kazi zinazoendeshwa na AI.
  • Ufuatiliaji wa utekelezaji: kiolesura huonyesha skrini ya simu moja kwa moja, mipango, kumbukumbu, picha za skrini, vitendo, hoja, na taarifa za muda.
  • Vidhibiti vya usalama: kusimamisha kwa dharura humzuia wakala na kuachilia kiashiria.

Unachohitaji

  • Ubao wa ESP32-S3: mradi ulijaribiwa kwa Seeed Studio XIAO ESP32S3 isiyo na vifaa vya ziada. Ubao mwingine wa ESP32-S3 unaweza kufanya kazi ikiwa mlango wake wa USB-C umeunganishwa na kiolesura asilia cha USB cha chipu.
  • iPhone: miundo ya USB-C inaweza kuunganishwa moja kwa moja. Miundo ya Lightning inahitaji Lightning to USB Camera Adapter.
  • Kompyuta: mashine ya macOS au Linux iliyo kwenye mtandao mmoja na iPhone.
  • Wi-Fi: usanidi wa ubao unahitaji jina na nenosiri la mtandao wa 2.4 GHz.
  • Modeli ya kuona: anwani ya wingu au ya ndani inayoendana na OpenAI na inayokubali uingizaji wa picha.

iPhone huupa ubao nguvu. Ikiwa simu inahitaji kuchaji kwa wakati huohuo, tumia kitovu cha USB-C chenye upitishaji wa nguvu.

Sakinisha na Usanidi Wakala

1. Nakili hazina

git clone https://github.com/onehumanbeing/esp32-iphone-agent.git
cd esp32-iphone-agent

2. Andaa na uweke firmware kwenye ESP32-S3

Sakinisha arduino-cli na msingi wa ESP32 wa 3.x. Unganisha ESP32-S3 na kompyuta kupitia USB, nakili faili ya mfano ya siri, kisha uhariri faili jipya.

cp hardware/hid_bridge/secrets.example.h hardware/hid_bridge/secrets.h

Kwenye hardware/hid_bridge/secrets.h, weka jina la mtandao wa Wi-Fi wa 2.4 GHz, nenosiri la Wi-Fi, na anwani ya IP ya kompyuta itakayoendesha seva. Kisha weka firmware kwenye ubao:

hardware/flash.sh

Script ya kuweka firmware inaweza kupokea kwa hiari mlango wa mfululizo na bendera ya --debug. Firmware ya utatuzi hurudia amri na muda wake kupitia mfululizo wa USB.

3. Sakinisha UxPlay

Kwenye macOS, sakinisha UxPlay kwa Homebrew:

brew install uxplay

Kwenye Debian au Ubuntu, sakinisha UxPlay na vifurushi vinavyohitajika vya GStreamer:

sudo apt install uxplay gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav

4. Unda mazingira ya Python

Ingia kwenye saraka ya seva, unda mazingira pepe, na usakinishe mradi:

cd server
python3 -m venv .venv
.venv/bin/pip install -e .

Python 3.10 au mpya zaidi inahitajika.

5. Sanidi modeli

Nakili kiolezo cha mazingira:

cp .env.example .env

Hariri server/.env na uweke angalau endpoint inayooana na OpenAI, jina la modeli na ufunguo wa API:

LLM_BASE_URL=https://your-endpoint.example/v1
LLM_MODEL=your-vision-model
LLM_API_KEY=your-api-key

Modeli iliyochaguliwa lazima iauni picha. API ya wingu inatosha; kuendesha modeli ya ndani ni hiari.

6. Anzisha seva

set -a && . ./.env && set +a && .venv/bin/python -m hidagent

Fungua http://<computer-ip>:8890 katika kivinjari. IP ya kompyuta lazima ipatikane kutoka kwenye mtandao unaotumiwa na ubao.

Sanidi iPhone

Usanidi ufuatao wa simu kwa kawaida unahitajika mara moja tu:

  1. Fungua Settings, kisha nenda kwenye Accessibility, Touch, na AssistiveTouch.
  2. Washa AssistiveTouch.
  3. Tenganisha ubao uliowekewa programu kutoka kwenye kompyuta na uunganishe kwenye iPhone.
  4. Thibitisha kuwa kielekezi cha duara kinaonekana na kwamba ukurasa wa wavuti unaonyesha kidhibiti kimeunganishwa.
  5. Fungua Control Center kwenye iPhone na uchague Screen Mirroring.
  6. Chagua iPhone Agent. Skrini ya moja kwa moja ya simu inapaswa kuonekana katika kiolesura cha wavuti.
  7. Katika kiolesura cha wavuti, fungua Manual controls na uchague Calibrate.
  8. Bofya hasa kwenye kielekezi kinachoonekana kwenye skrini ya moja kwa moja.

Fanya urekebishaji tena ukibadilisha kasi ya ufuatiliaji ya AssistiveTouch baadaye.

Endesha Kazi Yako ya Kwanza

Weka lengo katika kiolesura cha wavuti na ubonyeze Start. Kwa mfano:

Open Settings and go to Wi-Fi

Mpangaji huunda mpango mfupi, na kitekelezaji huchunguza tena picha ya sasa ya skrini na kuchagua kitendo. Tazama mwonekano wa moja kwa moja wa simu na kumbukumbu wakati kazi ikiendelea.

Ratiba ya hatua huhifadhi picha ya skrini iliyotumiwa kwa kila uamuzi. Pia huchora mguso au kutelezesha uliochaguliwa juu ya picha na kuonyesha mantiki na muda wa modeli. Kuchagua kadi ya hatua hufungua mwonekano mkubwa zaidi.

Tumia vidhibiti vya mwongozo

  • Bofya picha ya moja kwa moja ya simu ili kugusa mahali hapo.
  • Buruta kwenye picha ili kutelezesha.
  • Tumia ingizo la kusogeza ili kusogeza simu.
  • Tumia vidhibiti vilivyotolewa kwa Home, Back, uingizaji wa maandishi, na vitufe.

Wakala akifanya jambo lisilotarajiwa, washa Emergency stop au bonyeza Esc. Hii husimamisha uendeshaji na kuachilia kielekezi. Kiolesura pia kinatoa kidhibiti cha kufuta historia ya utekelezaji.

Chaguo Muhimu za Usanidi

  • LLM_BASE_URL: endpoint inayooana na OpenAI. Chaguo-msingi ni http://localhost:8000/v1.
  • LLM_MODEL na LLM_API_KEY: jina la modeli na kitambulisho cha API.
  • LLM_EXTRA_BODY: JSON inayounganishwa katika kila ombi la modeli, kama vile mipangilio inayozima hali ya kufikiri ya modeli.
  • ACTOR_* na PLANNER_*: mibatilisho mahususi ya jukumu kwa mipangilio inayolingana ya LLM_*.
  • AIRPLAY_NAME: jina la kipokezi linaloonyeshwa katika orodha ya Screen Mirroring ya iPhone. Chaguo-msingi ni iPhone Agent.
  • PORT: porti ya kiolesura cha wavuti, chaguo-msingi ikiwa 8890.
  • DEVICE_PORT: porti inayotumiwa na ESP32-S3, chaguo-msingi ikiwa 7300.
  • HIDAGENT_DATA: saraka ya urekebishaji na ufuatiliaji, chaguo-msingi ikiwa ~/.hidagent.
  • HIDAGENT_DEBUG: huwezesha kumbukumbu za utatuzi upande wa seva inapowekwa kuwa 1.

Matumizi ya Juu na Utatuzi wa Matatizo

Weka modeli tofauti za mpangaji na kitekelezaji

Mpangaji na kitekelezaji wanaweza kutumia modeli moja, lakini vigezo vya mazingira mahususi ya jukumu hukuruhusu kubatilisha mipangilio ya modeli kwa kujitegemea. Tumia miundo ya PLANNER_* na ACTOR_* ya vigezo husika vya LLM_* inapohitajika kutumia endpoint au modeli tofauti.

Unganisha seva ya modeli ya ndani

Seva yoyote inayooana na OpenAI yenye modeli ya kuona inaweza kusanidiwa kwa njia hiyo hiyo, ikiwemo vLLM, SGLang, llama.cpp, na Ollama. Mradi ulitengenezwa na kupimwa kwa NVIDIA Qwen3.8-Flash-Next-NVFP4 iliyotolewa kutoka kwenye NVIDIA DGX Sparks mbili kwa kutumia uchakataji sambamba wa tenzori.

Mfano wa usanidi wa mpangilio huo ni:

LLM_BASE_URL=http://<dgx-spark-ip>:8888/v1
LLM_MODEL=Qwen3.8-Flash-Next
LLM_EXTRA_BODY='{"chat_template_kwargs": {"enable_thinking": false}}'

Mpangilio wa maendeleo ulioripotiwa ulifikia takriban sekunde 1.3 kwa kila kitendo na sekunde 2 kwa kila mpango, hali ya kufikiri ikiwa imezimwa. Takwimu hizi zinaelezea usanidi huo mahususi wa maunzi na modeli, si kasi iliyohakikishwa kwa uwekaji mwingine.

Washa ukusanyaji wa ufuatiliaji

Weka thamani ifuatayo katika server/.env:

HIDAGENT_DEBUG=1

Hali ya utatuzi huweka kumbukumbu za kila amri ya ubao na muda wake wa kusubiri. Pia huunda saraka moja kwa kila uendeshaji wa wakala chini ya ~/.hidagent/traces/. Saraka hiyo ina steps.jsonl, inayojumuisha maelekezo ya modeli, majibu ghafi, vipimo vya muda wa kusubiri, na vitendo, pamoja na picha za skrini zilizoonekana katika miito ya modeli.

Elewa itifaki ya ubao

  • ping hufanya ukaguzi wa afya.
  • home husogeza kiashiria hadi kona ya juu kushoto ili kuweka nafasi inayojulikana.
  • move <dx> <dy> husogeza kiashiria kwa uwiano kwa kasi isiyobadilika.
  • press, release, na click hudhibiti kitufe cha kushoto cha kipanya.
  • scroll <v> <h> hutuma ingizo la gurudumu la kusogeza wima na mlalo.
  • type <text> huingiza maandishi ya ASCII.
  • key <combo> hutuma vitufe au michanganyiko kama vile enter, cmd+h, au cmd+space.

Zuia matatizo ya kutambua AirPlay kwenye Linux

Ikiwa kompyuta ina violesura kadhaa vya mtandao na iPhone haionyeshi kipokezi, punguza matangazo ya Avahi mDNS yawe kwenye kiolesura kilichounganishwa na mtandao wa simu.

Vikomo Vinavyojulikana

  • iOS haiakisi uwekaji wa nambari ya siri, Apple Pay, video iliyolindwa na DRM, na baadhi ya skrini nyingine zilizolindwa, hivyo wakala hawezi kuziona.
  • Uakisi wa skrini hukoma simu inapofungwa. Zima kufunga kiotomatiki wakati wakala anaendesha.
  • Uingizaji wa maandishi kwa kibodi umewekewa kikomo cha ASCII.
  • Urekebishaji wa kiashiria lazima urudiwe baada ya kubadilisha kasi ya ufuatiliaji ya AssistiveTouch.
  • Wakala hutegemea njia ya mtandao inayofanya kazi kati ya ubao na seva, pamoja na mkondo wa AirPlay unaopatikana kati ya simu na kompyuta.

Uendeshaji Wenye Kuwajibika

Automatisha tu vifaa na akaunti unazomiliki au umeidhinishwa kutumia, na fuata masharti ya programu zinazohusika.

Kwa kuwa wakala anaweza kutenda kwa kutumia aina zilezile za ingizo kama mtu, simamia uendeshaji unaoendelea na uweke kitufe cha kusitisha dharura mahali panapofikika.

Hitimisho

ESP32 iPhone Agent huunganisha uakisi wa AirPlay, daraja la USB HID la ESP32-S3 la gharama nafuu, na modeli ya kuona inayooana na OpenAI ili kuendesha iPhone halisi bila zana ya kawaida ya Apple ya kutengeneza programu. Baada ya kusanidi programu dhibiti, seva, kiunganishi cha modeli, AssistiveTouch, uakisi, na urekebishaji wa kiashiria, unaweza kutoa malengo kwa lugha ya kawaida, kukagua kila uamuzi, kuingilia mwenyewe, na kukusanya ufuatiliaji wa kina kwa ajili ya utatuzi wa hitilafu.