Cov txheej txheem:

Programming Micro: Bit Robot & Joystick: Bit Controller With MicroPython: 11 Kauj Ruam
Programming Micro: Bit Robot & Joystick: Bit Controller With MicroPython: 11 Kauj Ruam

Video: Programming Micro: Bit Robot & Joystick: Bit Controller With MicroPython: 11 Kauj Ruam

Video: Programming Micro: Bit Robot & Joystick: Bit Controller With MicroPython: 11 Kauj Ruam
Video: New App To Control Any BBC Micro:Bit Robot 2024, Hlis ntuj nqeg
Anonim
Programming Micro: Bit Robot & Joystick: Tus Tswj Me Me Nrog MicroPython
Programming Micro: Bit Robot & Joystick: Tus Tswj Me Me Nrog MicroPython

Txog Robocamp 2019, peb lub chaw ua haujlwm neeg hlau rau lub caij ntuj sov, cov tub ntxhais hluas hnub nyoog 10-13 xyoos tau siv cov laug, phiaj xwm thiab tsim kom muaj BBC micro: me ntsis raws li 'neeg hlau tiv thaiv', nrog rau kev tsim lub micro: me ntsis los siv ua chaw taws teeb tswj.

Yog tias koj tam sim no ntawm Robocamp, hla mus rau Kauj Ruam 3, raws li peb tau ua thawj ob kauj ruam ua pab pawg

Nov yog cov lus qhia ib qib zuj zus kom tau txais micro: ntsis neeg hlau sib txuas lus nrog lub joystick: tus tswj me ntsis.

Nws tsis siv txoj hauv kev nrawm tshaj plaws kom tau txais txhua yam ua haujlwm, tab sis sim ua tej yam me me kom koj tuaj yeem sim cov cai thaum koj tab tom mus, muab koj tus kheej lub thwj rau nws, thiab nkag siab tias vim li cas peb thiaj ua tej yam peb tab tom ua. !

Txog qhov haujlwm no, peb tab tom siv peb tus kheej lub neeg hlau, tab sis nws yuav ua haujlwm nrog txhua tus neeg hlau siv tus tsav tsheb zoo sib xws, xws li L9110s.

Tsim cov ntaub ntawv rau peb cov neeg hlau tuaj yeem pom ntawm no:

Phau ntawv qhia no tau sau rau cov pib, tab sis yog tias koj tsis tau siv lub micro: me ntsis nrog MicroPython ua ntej, peb pom zoo kom koj sim ua txoj haujlwm yooj yim ua ntej, xws li peb lub npe cim Qhia: https://www.instructables.com/id/Felt -Microbit-Nam …

Khoom siv

2x BBC micro: me ntsis

Neeg hlau uas ua haujlwm nrog BBC micro: me ntsis (saib cov lus piav qhia saum toj no)

joystick: maub los me ntsis (peb tau txais peb los ntawm Cool Cheebtsam)

Kauj ruam 1: Neeg Hlau Teeb

Koj muaj qee qhov kev xaiv rau kev sau MicroPython code rau koj micro: ntsis:

  • Mu, uas koj tuaj yeem rub tawm thiab teeb tsa los ntawm no:
  • Tus kho online, uas koj tuaj yeem pom ntawm no:

Cov lus qhia no xav tias koj siv Mu

Qhib Mu, thiab ntsaws koj lub micro: ntsis rau hauv koj lub computer. Mu yuav tsum lees paub tias koj tab tom siv micro: ntsis thiab xaiv micro: ntsis 'Hom', tab sis yog nws tsis ua, hloov nws tus kheej.

xaiv hom
xaiv hom

Tau txais daim ntawv theej ntawm tus neeg hlau lub cev ntsuas qhov ntsuas los ntawm no:

Yog tias koj tsis tau siv rau Github, nws tuaj yeem ua tsis tau! Ob txoj hauv kev yooj yim kom tau txais cov cai no yog:

  1. Txuag cov ntaub ntawv Raw rau koj lub khoos phis tawj, tom qab ntawd thauj nws mus rau Mu:
  2. Luam thiab muab tag nrho cov cai muab rau hauv daim ntawv tshiab hauv Mu.
txuag cov ntaub ntawv raw
txuag cov ntaub ntawv raw

Tam sim no nyem qhov 'Flash' khawm los ntawm Mu's toolbar, kom xa koj cov cai tshiab rau micro: me ntsis.

Qhov no yuav tsis ua haujlwm tshwj tsis yog lub micro: ntsis tau ntsaws

Lub teeb daj nyob tom qab ntawm lub micro: me ntsis yuav pib nyem. Thaum nws ua tiav, koj cov cai tau raug xa mus.

TSEEB-UP LUB TSAV TSHUAB DIRECTIONS

Qhov haujlwm no yuav tig lub cav rau hauv cov lus qhia sib txawv thaum koj nias lub pob 'A' ntawm lub micro: ntsis.

Yam koj xav tshwm sim yog:

  • Thaum 'A' raug tso tawm, sab laug lub cev muaj zog mus tom ntej
  • Thaum 'B' raug tso tawm, sab laug lub cev rov qab
  • Thaum 'C' raug tso tawm, txoj cai tsav tsheb mus rau tom ntej
  • Thaum 'D' tshwm, txoj cai lub cev rov qab

Qhov no yuav tsis yog qhov xwm txheej, vim nws nyob ntawm seb koj tau xaim koj tus neeg hlau li cas!

Nyob rau sab saum toj ntawm txoj cai, koj yuav pom cov npe hloov pauv, uas txiav txim siab tus pin ntawm micro: me ntsis tswj qhov twg lub cev muaj zog coj.

Yog tias koj tab tom siv ib qho ntawm peb cov neeg hlau (cov ntaub ntawv), pauv cov npe sib txawv nyob ib puag ncig kom cov neeg hlau txav mus raws qhov lus qhia raug:

pauv tus lej hloov pauv
pauv tus lej hloov pauv

Yog tias koj siv tus neeg hlau ntawm koj tus kheej, txheeb xyuas tus pin twg tus tsav tsheb tau txuas nrog ua ntej kho qhov chaws.

TESTING DRIVE

Tam sim no tshuaj xyuas koj tus neeg hlau li cas los ntawm kev hloov pauv tus lej ntsuas hauv lub voj loj nrog qee qhov chaws ntawm koj tus kheej.

Koj qhia rau tus neeg hlau tsav los ntawm kev hu rau tus tsav () ua haujlwm. Qhov no siv ob qhov kev sib cav - tus nqi rau sab laug lub cev muaj zog thiab tus nqi rau txoj cai lub cev muaj zog, nruab nrab ntawm 0 (tawm) thiab 1023 (nrawm tshaj).

Los ntawm kev hu xov tooj (500, 500), piv txwv li, koj tab tom qhia ob lub cav kom tig mus, nyob rau pem hauv ntej, ntawm kwv yees li ib nrab nrawm.

Sim tawm qee qhov kev xaiv kom tau txais kev xav tias nws ncaj nraim li cas thiab nws tig li cas.

Hint: kev ntsuas lub cev tau sab hauv ob lub sijhawm Muaj tseeb lub voj, thiab cov lus hais yog - lub cav yuav tsis tig mus txog thaum koj nias lub pob A ntawm micro: me ntsis, thiab nws ib txwm kuaj xyuas seb koj puas tau nias lub pob.

Hint: cov motors yuav tsis tua kom txog thaum koj qhia rau lawv! Lawv ib txwm yuav txuas ntxiv ua lawv cov lus qhia zaum kawg.

YOOJ YIM: Hloov kho kev tsav tsheb hauv kab ncaj

Yog tias koj tus neeg hlau yuav tsis tsav hauv txoj kab ncaj, ib qho ntawm koj lub cav yuav tig nrawm dua li lwm qhov.

Tom qab kuaj xyuas tias tsis muaj dab tsi lub cev nres lub log los ntawm kev tig dawb, koj tuaj yeem hloov kho cov cai hauv kev ua haujlwm kom txo qis ntawm lub cev muaj zog nrawm dua.

Scroll up kom pom lub ntsiab lus ntawm kev ua haujlwm tsav, thiab saib ntawm ob qho lus qhia saum toj kawg nkaus:

def tsav (L, R):

# Hauv qab no yog kev hloov kho kom raug rau qhov sib txawv ntawm lub cev muaj zog L = int (L*1) R = int (R*1)

Ob txoj kab no tam sim no siv tus nqi ntawm L thiab R, muab lawv suav nrog 1, tom qab ntawd xyuas kom lawv tseem yog tus lej (int).

Piv txwv li, yog tias koj sab laug lub cev muaj zog nrawm dua, hloov *1 ntawm nws kab rau *0.9, thiab saib seb qhov ntawd txhim kho tej yam.

Koj yuav tsis muaj peev xwm ua kom nws zoo tag nrho, tab sis koj tuaj yeem hloov kho kom txog thaum nws tsav ncaj dua.

TSEV KAWM NTAWV RADIO

Tam sim no teeb tsa lub xov tooj cua, los ntawm kev ntxiv kab hauv qab no rau saum koj cov cai:

ntshuam xov tooj cua

radio.config (channel = 7, pab pawg = 0, queue = 1) radio.on ()

Qhov no yuav tso cai rau koj tus neeg hlau kom tau txais cov lus qhia los ntawm lwm qhov micro: me ntsis, tab sis tam sim no nws yuav tau txais cov lus qhia los ntawm lwm yam micro: me ntsis.

Qhov no yog vim hais tias channel 7 thiab pab pawg 0 yog lub neej ntawd raws.

Hloov cov lej no, xaiv cov channel ntawm 0-82 thiab pab pawg ntawm 0-255. Tam sim no koj micro: ntsis yuav tsuas tau txais cov lus qhia los ntawm lwm tus nrog tib cov ntaub ntawv teeb tsa.

queue = 1 txhais tau tias micro: me ntsis tsuas yog khaws ib qho lus xa tuaj ntawm ib lub sijhawm - qhov no muab sijhawm teb me ntsis sai dua li lub neej ntawd, uas yog 3.

Tam sim no koj yuav tsum hloov kho koj lub ntsiab lus tseem ceeb rau, tsis txhob siv cov lus qhia thaum koj nias lub pob, tos rau cov xov tooj cua tuaj thiab teb kom tsim nyog.

Sim cov cai hauv qab no los ntsuas (nws yuav tsis ua dab tsi txog thaum koj tau teeb tsa tus joystick hauv Kauj Ruam 2):

thaum Muaj Tseeb:

xov = xov tooj cua.receive () yog xov == 'rau pem hauv ntej': tsav tsheb (500, 500)

Kauj Ruam 2: Teeb tsa Joystick

Tshem koj tus neeg hlau lub micro: me ntsis, thiab ntsaws rau hauv koj lub joystick lub micro: ntsis hloov

Tau txais ib daim qauv ntawm tus joystick teeb tsa tus lej los ntawm no:

Teeb lub xov tooj cua siv tib lub teeb tsa (channel thiab pawg lej) ib yam li koj tau ua rau neeg hlau - qhov no yuav tso cai rau ob leeg sib tham sib tham.

Thaum qhov kawg ntawm txoj haujlwm, pib koj lub ntsiab lus:

thaum Muaj Tseeb:

yog tias button_a.was_pressed (): radio.send ('rau pem hauv ntej')

Txoj cai no tseem tsis tau siv lub joystick: ntsis. Nws siv khawm A ntawm micro: ntsis xa xov.

Nco ntsoov ob leeg koj tus neeg hlau thiab koj tus tswj micro: cov khoom muaj lub zog, tom qab ntawd nyem lub pob kom xa koj cov lus.

Yog tias cov lus tau txais tiav, thiab koj cov neeg hlau txav mus … ua tau zoo! Koj ua tiav nrog cov lus qhia teeb tsa.

TSHUAJ TIV THAIV

Yog tias koj tau txais cov lus yuam kev ntawm koj tus tswj micro: me ntsis… debug koj tus lej tswj

Yog tias koj tau txais cov lus yuam kev ntawm koj tus neeg hlau micro: me ntsis … koj cov xov tooj cua tau xa mus tiav! Tab sis tus neeg hlau tsis tuaj yeem nkag siab nws, yog li xyuas seb cov lus koj tau xa, thiab cov lus koj tau hais rau tus neeg hlau mloog kom sib phim.

Yog tias tsis muaj dab tsi tshwm sim hlo li

  • Nco ntsoov tias koj tau ua tus lej raug rau txhua lub micro: me ntsis - nws yooj yim kom yuam kev nyem qhov tsis raug!
  • Xyuas kom tseeb tias koj cov channel thiab cov lej sib npaug ntawm txhua micro: me ntsis

Kauj Ruam 3: Txheeb Xyuas Tus Nqi Joystick

Ob peb kauj ruam tom ntej yog txhua yam siv tus lej tswj

Ua ntej koj tuaj yeem siv tus joystick ntawm koj tus maub los, koj yuav tsum paub seb yam txiaj ntsig twg koj tau txais thaum koj thawb tus pas.

Hloov koj lub voj tseem ceeb nrog cov cai hauv qab no:

thaum Muaj Tseeb:

joystick = joystick_push () print (joystick) pw (500)

Nyem qhov chaws no rau koj micro: me ntsis, tom qab ntawd nyem lub pob REPL ntawm Mu's toolbar. Qhov no yuav qhib lub davhlau ya nyob twg hauv qab ntawm tus kws sau ntawv, uas muab sijhawm rau koj txuas rau lub micro: ntsis.

qhib REPL
qhib REPL

Qhov no yuav tsis ua haujlwm tshwj tsis yog lub micro: ntsis tau ntsaws

Nrog REPL qhib, nias lub pob pib dua nyob tom qab ntawm koj lub micro: me ntsis.

Duab
Duab

Koj yuav tsum pom qee qhov txiaj ntsig nqa 'luam tawm' rau koj lub vijtsam:

tus nqi hauv davhlau ya nyob twg
tus nqi hauv davhlau ya nyob twg

Thawb tus pas ntawm tus joystick thiab pom dab tsi tshwm sim rau tus lej.

Nco tseg ntawm qhov txiaj ntsig tau muab thaum tus joystick nyob hauv txoj haujlwm nruab nrab - hauv kuv kis (518, 523).

Nyem rau REPL khawm ntawm Mu's toolbar dua kom kaw nws - koj yuav tsis tuaj yeem nyem qhov chaws tshiab rau micro: me ntsis thaum nws qhib.

Kauj Ruam 4: Kho X thiab Y Cov Qauv

Koj xav hloov qhov txiaj ntsig muab los ntawm txoj haujlwm joystick, yog li:

  • hauv nruab nrab nws yog xoom
  • nce yog qhov zoo
  • down yog tsis zoo.

Qhov no phim cov lus qhia rau tus neeg hlau xav tau - tus lej zoo rau tsav mus tom ntej, thiab tus lej tsis zoo los tsav rov qab.

Saib cov lej koj tau txais hauv qib kawg. Thawj tus lej yog x, thiab tus lej thib ob yog y.

Kho qhov joystick_push () lub ntsiab lus uas twb muaj lawm hauv qhov haujlwm, kom rho tawm koj qhov txiaj ntsig los ntawm qhov qub:

def joystick_push (): cov

x = pin0.read_analog () - 518 y = pin1.read_analog () - 523 rov qab x, y

Siv koj tus lej, lawv yuav txawv ntawm kuv li

Nyem koj cov cai tshiab, qhib REPL, nias lub micro: ntsis pib dua khawm thiab tshawb xyuas koj qhov txiaj ntsig.

Koj puas tau txais (0, 0)?

Kauj Ruam 5: Hloov X thiab Y Ua Rau Qhov Muaj Peev Xwm rau Sab laug thiab Txoj Cai Tsav Tsheb

Tam sim no, tus joystick no yuav tsis muaj txiaj ntsig zoo rau tsav tus neeg hlau nrog. Thawb rau pem hauv ntej txhua txoj kev, koj yuav tau txais tus nqi xws li (0, 500).

Yog tias koj muab cov lej no rau tus neeg hlau, nws yuav tig rau sab xis tab sis tsis yog sab laug, uas tsis yog qhov koj xav kom tshwm sim!

Daim duab qhia no qhia tias muaj dab tsi tshwm sim rau x thiab y qhov tseem ceeb thaum koj txav tus joystick, thiab peb xav kom neeg hlau ua dab tsi thaum koj txav lub joystick.

daim duab
daim duab

Koj yuav tsum tau siv qee qhov lej los sib tov qhov x thiab y qhov tseem ceeb, los muab qee yam rau koj kom muaj txiaj ntsig ntau dua.

n

THE MATHS

Cia peb pib los ntawm kev thawb tus joystick txhua txoj hauv kev.

Piv txwv ntawm qhov muaj txiaj ntsig koj tuaj yeem tau txais yog:

x = 0 os

y = 500 ib

Txhawm rau kom muaj txiaj ntsig rau tus neeg hlau, koj xav kom tau txais txiaj ntsig zoo li no:

sab laug = 500

yog = 500

Cia peb sim ntxiv x thiab y hauv ntau txoj hauv kev kom pom tus lej peb tau txais:

x + y = 0 + 500 = 500

x - y = 0 - 500 = -500 y + x = 500 + 0 = 500 y - x = 500 - 0 = 500

Tam sim no cia saib yuav muaj dab tsi tshwm sim yog tias peb thawb lub joystick txhua txoj kev mus rau sab xis.

Piv txwv ntawm qhov muaj txiaj ntsig koj tuaj yeem tau txais yog:

x = 500.000 TZS

y = 0 os

Txhawm rau ua tus neeg hlau tig sab xis, koj xav kom lub tshuab laug txav mus rau tom ntej, thiab lub tshuab kom raug tsav rov qab:

sab laug = 500

yog = -500

Cia peb sim peb cov mis ntxiv:

x + y = 500 + 0 = 500

x - y = 500 - 0 = 500 y + x = 0 + 500 = 500 y - x = 0 - 500 = -500

Sib piv ob pawg txheej txheem los daws qhov kev xaiv twg yuav muab tus nqi raug rau koj, thiab qhov kev xaiv twg yuav muab tus nqi raug rau koj.

Sim nws nrog qee qhov txiaj ntsig koj tau txais los ntawm koj tus kheej lub joystick, kom ntseeg tau tias cov mis uas koj xaiv ua haujlwm txhua lub sijhawm.

n

RAWS QHIA JOYSTICK FUNCTION

Nthuav tawm thiab hloov kho txoj haujlwm joystick los ua ob qhov hloov pauv tshiab rau sab laug thiab sab xis, thiab rov qab cov txiaj ntsig no hloov x thiab y:

def joystick_push (): cov

x = pin0.read_analog () - 518 y = pin1.read_analog () - 523 sab laug = sab xis = rov qab sab laug, sab xis

Nyem koj cov cai tshiab, qhib REPL, nias lub micro: ntsis pib dua khawm thiab tshawb xyuas koj qhov txiaj ntsig.

Koj puas tau txais qhov txiaj ntsig uas koj xav tau?

Yog tias koj xav tau kev pab ntxiv, txheeb xyuas peb tus lej piv txwv ntawm no:

Kauj Ruam 6: Xa Tus Nqi Raws Li Xov Tooj Cua

Tam sim no koj muaj qee qhov txiaj ntsig npaj tau xa mus rau koj tus neeg hlau.

Hloov kho koj lub voj tseem ceeb, yog li nws kuaj xyuas qhov tseem ceeb ntawm tus joystick, tab sis tom qab ntawd es tsis txhob luam tawm qhov tseem ceeb, nws tau txais lawv npaj xa ua xov tooj cua.

thaum Muaj Tseeb:

joystick = joystick_push () lus = str (joystick [0]) + "" + str (joystick [1])

Qhov no yuav tsis tau xa cov lus tsis tau!

Dab tsi tshwm sim hauv kab tshiab ntawm txoj cai no?

  • joystick [0] txhais tau tias yog thawj cov ntaub ntawv uas tawm los ntawm txoj haujlwm joystick (sab laug)
  • joystick [1] yog cov lus qhia me ntsis tom ntej (txoj cai)
  • str () hloov pauv ob qho ntawm cov lej no mus rau hauv cov kab ntawv (ntawv tsis txhob siv tus lej) - qhov no yog qhov tsim nyog kom tuaj yeem xa cov ntaub ntawv hla lub xov tooj cua.

Koj yuav raug siv los pom + txhais tau tias ntxiv - nws tuaj yeem ob leeg ntxiv tus lej ua ke thiab txuas cov hlua, uas txhais tau tias nws yuav lo ob qho ntawm cov ntaub ntawv ua ke.

Piv txwv:

150 + 100 = 250

str (150) + str (100) = 150100

Yog li kev sib koom ua ke yuav lo koj sab laug thiab txoj cai qhov tseem ceeb ua ke.

Txhawm rau yuam kev sib cais ntawm ob qho ntawm cov ntaub ntawv (yog li tus neeg hlau paub tias lawv yog ob qho khoom ntawm cov ntaub ntawv), sib txuas ib txoj hlua ntxiv ntawm lawv siv "". Kev hais lus cim ib ncig ntawm qhov chaw txhais tau tias nws twb yog txoj hlua lawm.

Thaum kawg, txuas ntxiv koj cov cai kom xa cov lus tsim tshiab no hla lub xov tooj cua:

xov tooj cua.send (xov)

tsaug zog (10)

Kev pw tsaug zog ua rau qeeb ntawm kev xa xov kom cov txais micro: me ntsis tsis tau txais cov ntaub ntawv ntau dhau!

Nyem qhov cai no rau koj tus tswj micro: me ntsis thiab debug ib qho yuam kev ua ntej txav mus rau qib tom ntej

Kauj Ruam 7: Tau Txais Cov Lus ntawm Koj Tus Neeg Hlau

Rov qab mus rau koj tus lej neeg hlau txij thaum pib - nco ntsoov tshem koj lub micro tswj: me ntsis kom koj tsis txhob yuam kev nyem tus lej neeg hlau rau nws

Nqes mus rau koj lub voj tseem ceeb - tshem cov cai ntsuas thiab ntxiv qhov no hloov:

thaum Muaj Tseeb:

message = radio.receive () print (message) pw (100)

Qhov no teeb tsa qhov sib txawv sib npaug rau cov lus xa tuaj, thiab luam tawm cov lus mus rau REPL - txhawm rau txheeb xyuas tias cov lus tau dhau los raws li xav tau.

Nyem koj cov cai tshiab, txuas nrog REPL, tom qab ntawd thawb lub joystick.

Koj yuav tsum tau txais qee yam zoo li no:

REPL qhov tseem ceeb
REPL qhov tseem ceeb

TSHUAJ TIV THAIV

Yog tias koj tau txais cov lus yuam kev ntawm koj tus tswj micro: me ntsis… debug koj tus lej tswj

Yog tias koj tau txais cov lus yuam kev ntawm koj tus neeg hlau micro: me ntsis … koj cov xov tooj cua tau xa mus tiav! Tab sis tus neeg hlau tsis tuaj yeem nkag siab nws, yog li xyuas seb cov lus koj tau xa, thiab cov lus koj tau hais rau tus neeg hlau mloog kom sib phim.

Yog tias tsis muaj dab tsi tshwm sim hlo li

  • Nco ntsoov tias koj tau ua tus lej raug rau txhua lub micro: me ntsis - nws yooj yim kom yuam kev nyem qhov tsis raug!
  • Xyuas kom tseeb tias koj cov channel thiab cov lej sib npaug ntawm txhua micro: me ntsis

Kauj Ruam 8: Siv Cov Lus Tuaj Los Tswj Tus Neeg Hlau Lub Cev

Tam sim no koj tau txais ob tus lej raug xa hauv xov tooj cua ua ib txoj hlua.

Koj yuav tsum faib cov lus no ua ob txoj hlua, tom qab ntawd hloov cov hlua rov qab ua tus lej dua, thiab dhau qhov no mus rau hauv kev ua haujlwm tsav. Ntau ntau mus ib txhij!

Ua ntej ua qhov no, koj yuav tsum txheeb xyuas tias cov lus koj tau txais yog nyob hauv qhov raug.

Yog tias tsis muaj lus xa, koj yuav tau txais 'Tsis Muaj' hloov chaw. Yog tias koj sim thiab faib qhov no, koj yuav tau txais cov lus yuam kev.

thaum Muaj Tseeb:

message = radio.receive () yog hais tias tsis yog Tsis muaj: message = message.split () tsav (int (message [0]), int (message [1]))

Dab tsi tshwm sim ntawm no?

  • Txoj cai tshiab yuav ua haujlwm yog tias cov lus yog lwm yam uas tsis yog 'Tsis muaj'.
  • message.split () tshawb xyuas qhov chaw hauv cov lus (uas peb tau ntxiv hauv qib kawg), thiab siv qhov no los faib cov lus hauv ob.
  • int (message [0]), int (message [1]) ua qhov tsis zoo ntawm qhov peb tau ua hauv cov kauj ruam dhau los - tau txais txhua daim ntaub ntawv ntawm tus kheej thiab hloov nws mus rau hauv cov lej (tag nrho tus lej).
  • int (lus [0]) tau siv los ua tus nqi rau sab laug lub cev muaj zog hauv txoj haujlwm tsav, thiab int (lus [1]) tau siv los ua tus nqi rau lub tshuab muaj cai.

Txheeb xyuas tias nws ua haujlwm - ua lub cav tig thaum koj thawb lub joystick?

Yog tias tsis yog - lub sijhawm rau qee qhov debugging!

Yog tias yog, zoo heev! Koj muaj lub tshuab ua haujlwm tswj chaw taws teeb ua haujlwm!

Siv qee lub sijhawm xyaum nrog koj tus neeg hlau ua ntej txav mus rau qib tom ntej. Nws puas tsav txoj hauv kev uas koj xav tau?

Cov kauj ruam tom ntej yuav qhia koj yuav siv cov nyees khawm ntawm tus joystick li cas kom ua haujlwm tau zoo ntxiv rau koj tus neeg hlau

Yog tias koj xav pom peb cov qauv ntawm cov cai no kom deb li deb:

  • Neeg hlau:
  • Xws li:

Kauj Ruam 9: Siv Cov Khawm - Tau Txais Cov Lus Ntxiv

Tam sim no, koj cov cai yuav sim cais cov lus uas tsis yog Tsis muaj. Qhov no txhais tau tias yog nws tau txais, piv txwv li, 'nyob zoo', tom qab ntawd koj yuav tau txais cov lus yuam kev.

Txhawm rau tso cai rau koj micro: me ntsis los txhais lwm cov lus, nws yuav tsum tau txheeb xyuas txhua qhov lus xav ua ntej, tom qab ntawd faib cov lus tsuas yog nws tsis tau hais kom ua lwm yam nrog nws.

Nthuav koj cov cai zoo li no:

yog tias cov lus tsis yog:

yog lus == 'nyob zoo': display.show (Image. HAPPY) elif message == 'os': display.show (Image. DUCK) else: message = message.split () drive (int (message [0]), int (lus [1]))

Ua ntej, nws yuav tshuaj xyuas yog tias nws tau txais cov lus 'nyob zoo'. Yog tias nws muaj, nws yuav tso saib cov duab zoo siab, tom qab ntawd rov qab mus rau qhov kawg ntawm lub voj thiab tshawb xyuas cov lus tom ntej.

Yog tias cov lus tsis nyob zoo, nws yuav tshawb xyuas tom ntej yog tias cov lus yog 'os'.

Yog tias cov lus tsis yog 'nyob zoo' LOSSIS 'os, nws yuav ua qhov kawg ntawm daim ntawv, uas tau faib cov lus thiab qhib lub cav. Nws yuav tsis sim cais cov lus yog tias nws tau txais 'nyob zoo' lossis 'os', txhais tau tias koj yuav tsis tau txais cov lus yuam kev los ntawm ob qho ntawm cov lus no.

Ob npaug sib npaug kos npe yog qhov tseem ceeb - nws txhais tau tias 'sib npaug rau', piv rau ib tus lej sib npaug, uas tau teeb tsa ib yam dab tsi (yog li ntawv = 'nyob zoo' txhais tau tias peb tau teeb tsa qhov sib txawv rau 'nyob zoo', xov == 'nyob zoo' txhais tau tias peb tau nug yog tias cov lus sib npaug rau 'nyob zoo').

Sim nws nrog tsuas yog ob txoj kev xaiv rau tam sim no, sim nws - koj tuaj yeem ntxiv ntau lwm cov lus raws li koj nyiam tom qab.

Txuas mus rau txoj haujlwm ua haujlwm:

Kauj Ruam 10: Xa Cov Lus Qhia Ntxiv Siv Tus Tswj Tus Kheej

Tshem koj tus neeg hlau lub micro: me ntsis, thiab ntsaws rau hauv koj lub joystick lub micro: ntsis hloov

Rov qab mus rau koj tus lej tswj kom kho.

Zoo ib yam li tus lej neeg hlau, peb xav kom tus tswj hwm los tshuaj xyuas yog tias koj tab tom sim xa lwm cov lus, ua ntej xa tus lej joystick.

Nyob rau sab saum toj ntawm lub voj, peb tseem xav kom nws los tshuaj xyuas qhov txiaj ntsig tam sim no ntawm joystick, tab sis peb kuj xav kom nws txheeb xyuas yog tias lub pob tam sim no raug nias:

thaum Muaj Tseeb:

joystick = joystick_push () khawm = button_press ()

button_press () rov qab tus nqi A, B, C, D, E lossis F nyob ntawm seb lub pob twg tam sim no raug nias (yog tias tsis muaj dab tsi raug nias, nws rov tsis muaj).

Tam sim no peb tuaj yeem ua cov lus hais yog-elif-lwm yam, zoo li peb tau ua rau tus lej neeg hlau-siv ob lub nyees khawm, thiab xa tus lej joystick yog tias tsis muaj khawm raug nias.

yog tias khawm == 'A':

radio.send ('nyob zoo') pw (500) elif khawm == 'B': radio.send ('os') pw (500) lwm yam: lus = str (joystick [0]) + "" + str (joystick) [1]) xov tooj cua.send (lus) pw (10)

Thaum lub pob nyem, xa ib qho ntawm cov lus uas koj tau hais rau tus neeg hlau kom saib xyuas hauv cov kauj ruam dhau los.

Cov lus yuav raug xa thaum twg lub pob raug nias, thiab khoos phis tawj nrawm dua li tib neeg! Yog li nws yuav xa cov lus ntau zaus ua ntej koj tau tswj kom tshem koj tus ntiv tes tawm ntawm lub pob.

Kev pw tsaug zog tom qab xa cov lus ua rau nws qeeb, yog li nws yuav tsis tshawb xyuas lub pob kom nrawm dua - sim ob peb tus lej ntawm no kom tau txais lub sijhawm zoo tshaj plaws rau koj - qeeb dhau thiab nws yuav tsis teb, ib yam sai sai thiab koj tus neeg hlau yuav tau txais ntau cov lus khawm uas nws yuav tsis teb rau lub joystick!

Nws puas ua haujlwm?

Yog tias koj tau txais cov lus yuam kev, ua tib zoo xav txog qhov koj nyuam qhuav hloov pauv, thiab muaj dab tsi tshwm sim.

Yog tias koj tau txais qhov yuam kev ntawm tus neeg hlau thaum koj nias lub pob ntawm koj lub maub los - koj paub tias cov lus tau hla mus, tab sis nws ua rau neeg tsis meej pem. Txheeb xyuas tias cov lus koj tau xa, thiab cov lus koj tau hais rau tus neeg hlau los saib yog tib yam.

Txuas mus rau txoj haujlwm ua haujlwm:

Kauj Ruam 11: Cov Kauj Ruam Tom ntej

Tam sim no koj muaj kev paub koj xav tau los ua haujlwm nrog koj cov neeg hlau lub cev muaj zog, thiab nrog koj lub joystick: tus tswj me ntsis

Siv qhov kev paub no los txhim kho ob txoj haujlwm thiab ua rau lawv yog koj li. Qee cov tswv yim hauv qab no!

Koj muaj rau lub khawm ntawm koj tus tswj! Koj xav kom lawv ua dab tsi?

  • Yuav ua li cas txog txoj haujlwm ua las voos niaj hnub rau koj tus neeg hlau ua los ntawm kev hais kom ua? Sau ib qho algorithm ntawm tsav () cov lus txib, cais los ntawm kev pw tsaug zog () cov lus txib!
  • Koj puas xav hloov qhov kev taw qhia uas tus neeg hlau txav mus kom nws tuaj yeem tsav tsheb tau yooj yim dua? Xav txog x thiab y qhov tseem ceeb ntawm koj tus joystick. Lawv sawv cev dab tsi thiab koj yuav siv lawv li cas?
  • Puas yog koj tus neeg hlau muaj (lossis koj puas tuaj yeem ntxiv!) Cov yam ntxwv ntxiv xws li LEDs, tus hais lus lossis cov cim?

Cov tswv yim los txhim kho txoj cai

  • Koj puas tuaj yeem pab koj tus neeg hlau los daws cov lus tsis paub los ntawm kev siv sim/tshwj tsis yog tus lej?
  • Cov lej uas siv los xam tus lej sab laug thiab sab xis los ntawm tus joystick tsis muab rau peb txhua qhov txiaj ntsig (tus neeg tsav tsheb tuaj yeem lees txais tus lej txog 1023). Koj puas tuaj yeem hloov kho txoj cai no kom tau txais ntau yam zoo dua?
  • Muaj lwm txoj hauv kev los sib tov tus lej joystick - koj puas tuaj yeem ua txoj hauv kev zoo dua los ua nws?

Pom zoo: