Mündəricat:
- Təchizat
- Addım 1: Robotun qurulması
- Addım 2: Joystick-in qurulması
- Addım 3: Joystick dəyərlərini yoxlayın
- Addım 4: X və Y Dəyişənlərinin Düzəldilməsi
- Addım 5: X və Y -ni Sol və Sağ Motorlar üçün Dəyərlərə çevirmək
- Addım 6: Dəyərləri Radio Mesajı Olaraq Göndərin
- Addım 7: Robotunuzdakı Mesajların Alınması
- Addım 8: Robotun Motorlarını İdarə etmək üçün Gələn Mesajlardan İstifadə Edin
- Addım 9: Düymələrdən istifadə - Əlavə Mesajların Alınması
- Addım 10: Nəzarətçinin Düymələrindən istifadə edərək Əlavə Mesajların Göndərilməsi
- Addım 11: Növbəti addımlar
Video: Mikro Proqramlaşdırma: Bit Robot və Joystick: MicroPython ilə Bit Nəzarətçisi: 11 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Yaz robototexnika düşərgəmiz olan Robocamp 2019 üçün 10-13 yaş arası gənclər BBC mikro: bit əsaslı 'ağırlıqlı robot' lehimləyir, proqramlaşdırır və qurur, həm də uzaqdan idarəetmə kimi istifadə etmək üçün mikro: bit proqramlaşdırırlar.
Hal -hazırda Robocamp -da olsanız, qrup olaraq ilk iki addımı etdiyimiz kimi, 3 -cü addıma keçin
Bu, joystick: bit nəzarətçi ilə ünsiyyət quran mikro: bit robot əldə etmək üçün addım-addım bələdçidir.
Hər şeyi işə salmaq üçün ən sürətli yolu götürmür, amma hər şeyi kiçik hissələrdə sınayır ki, kodu getdiyiniz kimi sınayasınız, üzərinə öz möhürünüzü qoyasınız və etdiyimiz işləri niyə etdiyimizi başa düşək. !
Bu fəaliyyət üçün öz xüsusi robotumuzdan istifadə edirik, ancaq L9110s kimi oxşar motor sürücüsündən istifadə edən hər hansı bir robotla işləyəcək.
Robotumuz üçün dizayn sənədlərini burada tapa bilərsiniz:
Bu təlimat yeni başlayanlar üçün yazılmışdır, ancaq əvvəllər MicroPython ilə heç vaxt bir mikro: bit istifadə etməmisinizsə, əvvəlcə sadə bir proqramı sınamağı məsləhət görürük, məsələn, Instructable ad nişanı kimi: https://www.instructables.com/id/Felt -Mikrobit-Nam …
Təchizat
2x BBC mikro: bit
BBC mikro ilə işləyən robot: bit (yuxarıdakı şərhə baxın)
joystick: bit nəzarətçisi (Cool Components -dən əldə etdik)
Addım 1: Robotun qurulması
Micro: bit üçün MicroPython kodu yazmaq üçün bir neçə variantınız var:
- Buradan yükləyə və quraşdıra biləcəyiniz Mu:
- Burada tapa biləcəyiniz onlayn redaktor:
Bu təlimatlar Mu istifadə etdiyinizi güman edir
Mu proqramını açın və mikro: biti kompüterinizə qoşun. Mu bir mikro: bit istifadə etdiyinizi tanımalı və micro: bit 'Mode' seçməlidir, amma istifadə etmirsə əl ilə dəyişdirin.
Robot motor test kodunun bir nüsxəsini buradan əldə edin:
Github -a öyrəşməmisinizsə, düşünülməz ola bilər! Bu kodu əldə etməyin iki asan yolu var:
- Raw faylını kompüterinizə qeyd edin, sonra Mu -a yükləyin:
- Verilən bütün kodu kopyalayın və Mu -da Yeni bir fayla yapışdırın.
İndi yeni kodunuzu micro: bitə göndərmək üçün Mu alətlər çubuğundakı 'Flash' düyməsini basın.
Micro: bit takılmadıqca bu işləməyəcək
Mikroun arxasındakı sarı işıq: bit yanıb sönməyə başlayacaq. Bitirdikdən sonra kodunuz köçürüldü.
MOTOR YÖNLƏRİNİN AYARLANMASI
Bu proqram, mikro: bitdəki 'A' düyməsini basdığınızda mühərrikləri fərqli istiqamətlərdə açacaq.
Nə etmək istədiyin budur:
- 'A' göstərildikdə, sol motor irəli
- 'B' göstərildikdə, motoru geriyə buraxın
- 'C' göründüyü zaman sağ motor irəli
- 'D' göstərildikdə sağ motor geriyə
Yəqin ki, belə olmayacaq, çünki robotunuzu necə bağladığınızdan asılıdır!
Kodun yuxarısında, mikro: bitin hansı motor istiqamətini idarə etdiyini təyin edən dəyişənlərin siyahısını tapa bilərsiniz.
Robotlarımızdan (fayllardan) istifadə edirsinizsə, robotun düzgün istiqamətdə hərəkət etməsi üçün dəyişən adları dəyişdirin:
Öz robotunuzdan istifadə edirsinizsə, kodu redaktə etməzdən əvvəl motor sürücüsünün hansı pinlərə bağlı olduğunu yoxlayın.
Sürücünün sınanması
İndi əsas döngədəki test kodunu öz kodunuzla əvəz edərək robotunuzun necə idarə etdiyini yoxlayın.
Sürücü () funksiyasını çağıraraq robotun maşın sürməsini söyləyirsiniz. Bunun üçün iki arqument tələb olunur - sol mühərrik üçün bir dəyər və sağ mühərriklər üçün 0 (söndürmə) ilə 1023 (maksimum sürət) arasındakı dəyər.
Sürücüyə (500, 500) zəng edərək, məsələn, hər iki mühərrikə təxminən yarım sürətlə irəli istiqamətdə açılmasını söyləyirsiniz.
Nə qədər düz sürdüyünü və necə yaxşı döndüyünü hiss etmək üçün bir neçə variant sınayın.
İpucu: motor testləri həm True döngəsi, həm də if ifadəsi içərisində idi - mikro: bitdəki A düyməsini basana qədər mühərriklər dönməzdi və A düyməsini basdığınızı əbədi olaraq yoxlayır.
İpucu: mühərriklər onlara deyənə qədər sönməyəcək! Həmişə son təlimatlarını verməyə davam edəcəklər.
İSTEĞE BAĞLI: SÜRÜKLÜ SÜRÜCÜNÜ TƏKMİLLƏŞTİRMƏK
Robotunuz düz bir şəkildə sürməyəcəksə, mühərriklərinizdən biri digərindən daha sürətli dönə bilər.
Təkərin sərbəst dönməsini fiziki olaraq dayandıran heç bir şey olmadığını yoxladıqdan sonra, daha sürətli motorun sürətini azaltmaq üçün sürücü funksiyasındakı kodu düzəldə bilərsiniz.
Sürücü funksiyasının tərifini tapmaq üçün yuxarı diyirləyin və yuxarıdakı iki təlimata baxın:
def sürücüsü (L, R):
# Aşağıda motor sürəti uyğunsuzluğunu düzəltmək üçün bir tənzimləmə var L = int (L*1) R = int (R*1)
Bu iki xətt hal -hazırda L və R -nin dəyərini alır, 1 -ə vururuq, sonra yenə də tam ədədlər olduqlarından əmin olun (int).
Məsələn, sol motorunuz daha sürətlidirsə, xəttindəki *1 -i *0.9 -a dəyişdirin və bunun işlərin yaxşılaşdığını yoxlayın.
Mükəmməl edə bilməyəcəksiniz, ancaq düzləşənə qədər tənzimləməyə davam edə bilərsiniz.
RADYO AYARLANIR
İndi kodunuzun üstünə aşağıdakı sətirləri əlavə edərək radio qurun:
radio idxal edin
radio.config (kanal = 7, qrup = 0, növbə = 1) radio.on ()
Bu, robotunuzun başqa bir mikro: bitdən təlimat almasına imkan verəcək, lakin hazırda hər hansı digər micro: bitdən təlimat alacaq.
Bunun səbəbi kanal 7 və qrup 0 standart kanallardır.
0-82 arasında bir kanal və 0-255 arasında bir qrup seçərək bu nömrələri dəyişdirin. İndi micro: bit yalnız eyni konfiqurasiya məlumatı olan digərlərindən təlimat alacaq.
queue = 1 mikro deməkdir: bit bir anda yalnız bir gələn mesajı saxlayacaq - bu, 3 olan standartdan biraz daha sürətli cavab müddəti verir.
İndi əsas döngə kodunuzu bir düyməni basdığınız zaman yerinə yetirmək üçün gələn bir radio mesajını gözləməli və ona uyğun cavab verməlisiniz.
Test olaraq aşağıdakı kodu sınayın (2 -ci addımda joystick qurulana qədər heç bir şey etməyəcək):
Doğru halda:
mesaj = radio.receive () əgər mesaj == 'irəli': sürücü (500, 500)
Addım 2: Joystick-in qurulması
Robotunuzun mikro: bitini ayırın və yerinə joystickinizin mikro: bitini qoşun
Joystick qurma kodunun bir nüsxəsini buradan əldə edin:
Radionu robot üçün etdiyiniz eyni konfiqurasiyadan (kanal və qrup nömrəsi) istifadə edərək qurun - bu ikisinin bir -biri ilə ünsiyyət qurmasına imkan verəcəkdir.
Proqramın sonunda əsas döngənizi başlayın:
Doğru halda:
əgər button_a.was_pressed (): radio.send ('irəli')
Bu kod hələ də joystickdən istifadə etmir: bit. Mesaj göndərmək üçün mikro: bitdəki A düyməsini istifadə edir.
Həm robotunuzun, həm də nəzarətçinizin mikro: bitlərinin gücə malik olduğundan əmin olun, sonra mesajınızı göndərmək üçün düyməni basın.
Mesaj uğurla alınarsa və robotunuz hərəkət edərsə … çox yaxşı! Quraşdırma təlimatlarını bitirdiniz.
SORUNLARIN GİDİRİLMƏSİ ÜÇÜN
Mikro: bit nəzarətçinizdə bir səhv mesajı alsanız, nəzarətçi kodunuzu düzəldin
Robotunuzun mikro: bitində bir səhv mesajı alsanız … radio mesajınız uğurla göndərildi! Ancaq robot bunu anlaya bilmir, ona görə də göndərdiyiniz mesajı və robota eşitdiyiniz mesajı yoxlayın.
Heç bir şey olmasa
- Doğru kodu hər bir mikro: bitə yazdığınızdan əmin olun - səhvən yanlış bir şeyi yandırmaq asandır!
- Kanalınızın və qrup nömrələrinizin hər bir mikro: bitdə uyğun olduğundan əmin olun
Addım 3: Joystick dəyərlərini yoxlayın
Növbəti bir neçə addım hamısı nəzarətçi kodundan istifadə etməkdir
Nəzarətçinizdəki joystickdən istifadə etməzdən əvvəl, çubuğu itələyərkən hansı dəyərlərə sahib olduğunuzu bilməlisiniz.
Əsas döngənizi aşağıdakı kodla əvəz edin:
Doğru halda:
joystick = joystick_push () çap (joystick) yuxu (500)
Bu kodu mikro: bit -ə yandırın, sonra Mu alətlər çubuğundakı REPL düyməsini basın. Bu, redaktorun altındakı mikro: bitə real vaxt bağlantısı verən bir terminal açacaq.
Micro: bit takılmadıqca bu işləməyəcək
REPL açıq olduqda, mikro: bitinizin arxasındakı sıfırlama düyməsini basın.
Ekranınıza "çap" gətirən bəzi dəyərləri görməlisiniz:
Joystick çubuğunu itələyin və nömrələrə nə olduğunu görün.
Joystick mərkəzi mövqedə olduqda verilən dəyərləri qeyd edin - mənim vəziyyətimdə (518, 523).
Yenidən bağlamaq üçün Mu alətlər çubuğundakı REPL düyməsini basın - açıq olduqda micro: bit -ə yeni kodu yandıra bilməyəcəksiniz.
Addım 4: X və Y Dəyişənlərinin Düzəldilməsi
Joystick funksiyasının verdiyi dəyərləri dəyişdirmək istəyirsən ki:
- mərkəzdə sıfırdır
- yuxarı müsbətdir
- aşağı mənfidir.
Bu, robotun ehtiyac duyduğu təlimatlara uyğundur - irəli sürmək üçün pozitiv rəqəm, geri çəkmək üçün isə mənfi nömrə.
Son addımda aldığınız rəqəmlərə baxın. Birinci ədəd x, ikinci nömrə ydir.
Dəyərlərinizi orijinaldan çıxarmaq üçün artıq proqramda olan joystick_push () tərifini düzəldin:
def joystick_push ():
x = pin0.read_analog () - 518 y = pin1.read_analog () - 523 dönüş x, y
Öz nömrələrinizi istifadə edin, onlar mənimkindən fərqli ola bilər
Yeni kodunuzu yandırın, REPL -i açın, mikro: bitin sıfırlama düyməsini basın və dəyərlərinizi yoxlayın.
(0, 0) alırsınız?
Addım 5: X və Y -ni Sol və Sağ Motorlar üçün Dəyərlərə çevirmək
Hal -hazırda, bu joystick bir robotu idarə etmək üçün çox faydalı olmayacaq. Yol boyu irəlilədikdə (0, 500) kimi bir dəyər əldə edəcəksiniz.
Bu nömrələri robota versəydiniz, sağ motoru açar, sol motoru açmazdı, bu sizin istədiyiniz kimi deyil!
Bu diaqram, joysticki hərəkət etdirdiyiniz zaman x və y dəyərlərinin nə olduğunu və joysticki hərəkət etdirərkən robotun nə etməsini istədiyimizi göstərir.
Sizə daha faydalı bir şey vermək üçün x və y dəyərlərini qarışdırmaq üçün bəzi riyaziyyatdan istifadə etməlisiniz.
n
Riyaziyyat
Joystick -in sonuna qədər itələyərək başlayaq.
Əldə edə biləcəyiniz dəyərlərə bir nümunə:
x = 0
y = 500
Robota faydalı olmaq üçün bu kimi dəyərləri əldə etmək istəyirsən:
sol = 500
sağ = 500
Hansı ədədləri aldığımızı görmək üçün x və y -ni fərqli yollarla əlavə etməyə çalışaq:
x + y = 0 + 500 = 500
x - y = 0 - 500 = -500 y + x = 500 + 0 = 500 y - x = 500 - 0 = 500
İndi görək, joysticki sağa doğru itələsək nə olar.
Əldə edə biləcəyiniz dəyərlərə bir nümunə:
x = 500
y = 0
Robotun sağa dönməsini təmin etmək üçün sol motorun irəli, sağ motorun isə geriyə doğru hərəkət etməsini istəyirsiniz:
sol = 500
sağ = -500
Formulumuzu yenidən sınayaq:
x + y = 500 + 0 = 500
x - y = 500 - 0 = 500 y + x = 0 + 500 = 500 y - x = 0 - 500 = -500
Hansı seçimin sizə doğru sol dəyər verəcəyini və hansı seçimin doğru doğru dəyəri verəcəyini öyrənmək üçün iki formula dəstini müqayisə edin.
Seçdiyiniz düsturun hər zaman işlədiyinə əmin olmaq üçün öz joystickinizdən aldığınız bəzi dəyərlərlə sınayın.
n
JOYSTICK FUNKSİYASININ GENİŞLƏNDİRİLMƏSİ
Sol və sağ üçün iki yeni dəyişən etmək və bu dəyərləri x və y yerinə qaytarmaq üçün joystick funksiyasını genişləndirin və redaktə edin:
def joystick_push ():
x = pin0.read_analog () - 518 y = pin1.read_analog () - 523 sol = sağ = sola, sağa qayıt
Yeni kodunuzu yandırın, REPL -i açın, mikro: bitin sıfırlama düyməsini basın və dəyərlərinizi yoxlayın.
Gözlədiyiniz dəyərləri alırsınızmı?
Daha çox yardıma ehtiyacınız varsa, nümunə kodumuza buradan baxın:
Addım 6: Dəyərləri Radio Mesajı Olaraq Göndərin
İndi robotunuza göndərməyə hazır olan bəzi dəyərləriniz var.
Əsas döngənizi tənzimləyin ki, joystickin dəyərlərini yoxlasın, amma sonra dəyərləri çap etmək əvəzinə onları radio mesajı olaraq göndərməyə hazır olsun.
Doğru halda:
joystick = joystick_push () mesaj = str (joystick [0]) + "" + str (joystick [1])
Bu əslində hələ mesaj göndərməyəcək!
Bu yeni kod xəttində nə baş verir?
- joystick [0], joystick funksiyasından çıxan ilk məlumat deməkdir (solda)
- joystick [1] növbəti məlumatdır (sağda)
- str () bu rəqəmlərin hər ikisini simli formata çevirir (rəqəmlər yerinə mətn) - bu məlumatı radio vasitəsilə göndərə bilmək üçün lazımdır.
Əlavə etmək üçün + görməyə alışmış olacaqsınız - həm rəqəmləri bir araya gətirə bilər, həm də sətirləri birləşdirə bilər, yəni iki bit məlumatı bir -birinə yapışdıracaq.
Misal:
150 + 100 = 250
str (150) + str (100) = 150100
Beləliklə birləşmə, sol və sağ dəyərlərinizi bir -birinə yapışdıracaq.
İki bit məlumat arasında (robot iki bit məlumat olduğunu bilməsi üçün) məcbur etmək üçün aralarında "" istifadə edərək əlavə bir sim bağlayın. Boşluğun ətrafında olan işarələr, artıq bir simli olduğunu göstərir.
Nəhayət, bu yeni yaradılmış mesajı radio vasitəsilə göndərmək üçün kodunuzu uzatın:
radio.send (mesaj)
yuxu (10)
Yuxu, mesajların göndərilməsini ləngidir ki, qəbul edən mikro: bit çox məlumatla yüklənməsin!
Növbəti addıma keçməzdən əvvəl bu kodu nəzarətçinizin mikro: bitinə yazın və səhvləri düzəldin
Addım 7: Robotunuzdakı Mesajların Alınması
Əvvəldən robot kodunuza qayıdın - nəzarətçi mikro: bitini çıxartmağı unutmayın ki, təsadüfən robot kodunu ona yapışdırmasın
Əsas döngənizə enin - test kodunu silin və əvəzinə bunu əlavə edin:
Doğru halda:
mesaj = radio.receive () çap (mesaj) yuxu (100)
Bu, gələn mesaja bərabər olan bir dəyişən təyin edir və mesajı gözlədiyiniz kimi keçdiyini yoxlamaq üçün REPL -ə yazdırır.
REPL -ə qoşulmuş yeni kodunuzu yandırın, sonra joystickə basın.
Belə bir şey almalısınız:
SORUNLARIN GİDİRİLMƏSİ ÜÇÜN
Mikro: bit nəzarətçinizdə bir səhv mesajı alsanız, nəzarətçi kodunuzu düzəldin
Robotunuzun mikro: bitində bir səhv mesajı alsanız … radio mesajınız uğurla göndərildi! Ancaq robot bunu anlaya bilmir, ona görə də göndərdiyiniz mesajı və robota eşitdiyiniz mesajı yoxlayın.
Heç bir şey olmasa
- Doğru kodu hər bir mikro: bit -ə vurduğunuzdan əmin olun - səhvən səhv olanı yandırmaq asandır!
- Kanalınızın və qrup nömrələrinizin hər mikro: bitdə uyğun olduğundan əmin olun
Addım 8: Robotun Motorlarını İdarə etmək üçün Gələn Mesajlardan İstifadə Edin
İndi simli olaraq radio üzərindən iki ədəd göndərilir.
Bu mesajı iki sətrə bölmək, sonra sətirləri yenidən nömrələrə çevirmək və sürücü funksiyasına ötürmək lazımdır. Çox şey bir anda gedir!
Bunu etməzdən əvvəl aldığınız mesajın düzgün formatda olduğunu yoxlamalısınız.
Heç bir mesaj göndərilmirsə, bunun əvəzinə 'Heç biri' alacaqsınız. Bunu sınamağa və bölməyə çalışsanız, bir səhv mesajı alacaqsınız.
Doğru halda:
mesaj = radio.receive () mesaj yoxdursa: mesaj = message.split () sürücü (int (mesaj [0]), int (mesaj [1]))
Burada nə baş verir?
- Mesaj 'None' dan başqa bir şey olarsa yeni kod işləyəcək.
- message.split () mesajdakı boşluğu yoxlayır (son addımda əlavə etdiyimiz) və mesajı ikiyə bölmək üçün bundan istifadə edir.
- int (mesaj [0]), int (mesaj [1]) əvvəlki addımda etdiyimizin əksini edir - hər bir məlumatı ayrı -ayrılıqda alır və onu tam ədədə (tam ədəd) çevirir.
- int (mesaj [0]) sürücü funksiyasında sol motorun dəyəri, int (mesaj [1]) isə sağ motorun dəyəri kimi istifadə olunur.
İşlədiyini yoxlayın - joystickə basanda mühərriklər dönərmi?
Əks təqdirdə, bəzi ayıklama vaxtıdır!
Bəli, fantastik! İşləyən uzaqdan idarə robotunuz var!
Növbəti addıma keçməzdən əvvəl robotunuzla bir az vaxt keçirin. Gözlədiyiniz kimi aparır?
Növbəti addımlar robotunuza əlavə funksionallıq əlavə etmək üçün joystickdəki düymələrdən necə istifadə edəcəyinizi göstərəcək
Bu günə qədər bu kodun versiyasını görmək istəyirsinizsə:
- Robot:
- Nəzarətçi:
Addım 9: Düymələrdən istifadə - Əlavə Mesajların Alınması
Bu anda, kodunuz heç bir mesajı bölməyə çalışacaq. Bu o deməkdir ki, məsələn, 'salam' alsanız, bir səhv mesajı alacaqsınız.
Mikro: bit -in digər mesajları şərh etməsinə icazə vermək üçün əvvəlcə hər bir gözlənilən mesajı yoxlamalı, sonra başqa heç bir şey etməməsi lazım olduğu halda mesajı bölməlidir.
Kodunuzu belə genişləndirin:
mesaj yoxdursa:
əgər mesaj == 'salam': display.show (Image. HAPPY) elif mesajı == 'ördək': display.show (Image. DUCK) başqa: mesaj = message.split () sürücü (int (mesaj [0]), int (mesaj [1]))
Əvvəlcə 'salam' mesajını alıb -almadığını yoxlayacaq. Əgər varsa, xoşbəxt bir görüntü göstərəcək, sonra döngənin yuxarısına qayıdın və növbəti mesajı yoxlayın.
Mesaj salam deyilsə, mesajın "ördək" olub olmadığını yoxlayacaq.
Mesaj ya "salam" və ya "ördək" deyilsə, mesajı bölmək və mühərrikləri işə salmaq üçün siyahıdakı son şeyi edəcək. Mesajı 'salam' və ya 'ördək' almışsa bölməyə çalışmayacaq, yəni bu iki mesajın heç birindən bir səhv mesajı almayacaqsınız.
İkiqat bərabərlik işarəsi vacibdir - bir şey təyin edən tək bərabər işarəsi ilə müqayisədə 'bərabərdir' deməkdir (belə ki mesaj = 'salam' dəyişəni 'salam', mesaj == 'salam' olaraq təyin etdiyimiz deməkdir mesajın "salam" a bərabər olub olmadığını soruşduğumuz deməkdir).
Bunu sınamaq üçün yalnız iki seçimlə sınayın - daha sonra istədiyiniz qədər çox mesaj əlavə edə bilərsiniz.
İş koduna keçid:
Addım 10: Nəzarətçinin Düymələrindən istifadə edərək Əlavə Mesajların Göndərilməsi
Robotunuzun mikro: bitini ayırın və yerinə joystickinizin mikro: bitini qoşun
Redaktə etmək üçün nəzarətçi kodunuza qayıdın.
Robot koduna bənzər şəkildə, nəzarətçidən joystick dəyərlərini göndərməzdən əvvəl başqa bir mesaj göndərməyə çalışdığınızı yoxlamasını istəyirik.
Döngünün yuxarı hissəsində, hələ də joystickin cari dəyərlərini yoxlamasını istəyirik, eyni zamanda bir düyməyə basıldığını yoxlamasını da istəyirik:
Doğru halda:
joystick = joystick_push () düyməsi = button_press ()
button_press (), hazırda hansı düymənin basıldığından asılı olaraq A, B, C, D, E və ya F dəyərini qaytarır (heç bir şey basılmırsa, Yoxdur).
İndi robot kodu üçün etdiyimiz kimi if-elif-else ifadəsi edə bilərik-iki düymədən istifadə edərək və heç bir düyməyə basılmırsa joystick dəyərini göndərə bilərik.
əgər düymə == 'A':
radio.send ('salam') yuxu (500) elif düyməsi == 'B': radio.send ('ördək') yuxu (500) başqa: mesaj = str (joystick [0]) + "" + str (joystick [1]) radio.send (mesaj) yuxu (10)
Bir düyməyə basıldığında, robotun əvvəlki addımda diqqət yetirməsini istədiyiniz mesajlardan birini göndərin.
Düymə basıldığı zaman mesaj göndəriləcək və kompüterlər insanlardan daha sürətlidir! Barmağınızı düymədən çıxarmağı bacarmadan mesajı dəfələrlə göndərə bilər.
Mesajı göndərdikdən sonra yuxu onu yavaşlatır ki, düyməni bir daha yoxlamasın - sizin üçün mükəmməl vaxt əldə etmək üçün buradakı bir neçə nömrəni sınayın - çox yavaş və cavab vermir tez və robotunuz o qədər düymə mesajı alacaq ki, joystickə cavab verməyi dayandıra bilər!
İşləyir?
Səhv mesajları alırsınızsa, nə dəyişdiyinizi və nə baş verdiyini diqqətlə düşünün.
Nəzarətçinizdəki bir düyməni basdığınız zaman robotda bir səhv görürsünüzsə - mesajın yayıldığını bilirsiniz, ancaq robotu çaşdırır. Göndərdiyiniz mesajla robotun axtarmasını söylədiyiniz mesajın eyni olduğunu yoxlayın.
İş koduna keçid:
Addım 11: Növbəti addımlar
Artıq robotunuzun motorları və joystickinizlə işləmək üçün lazım olan məlumatlara sahibsiniz: bit nəzarətçisi
Bu biliklərdən istifadə edərək iki proqramı təkmilləşdirin və onları özünüz edin. Aşağıdakı bəzi fikirlər!
Nəzarətçinizdə altı düymə var! Onlardan nə etmələrini istəyirsən?
- Robotunuzun əmrlə etməsi üçün bir rəqs rutini proqramlaşdırmağa necə? Drive () əmrlərinin yuxu () əmrləri ilə ayrılmış bir alqoritmi yazın!
- Robotun hərəkət etdiyi istiqaməti dəyişdirmək istəyirsən ki, o, asanlıqla tərsinə sürsün? Joystickinizin x və y dəyərlərini düşünün. Nəyi təmsil edirlər və onları necə manipulyasiya edə bilərsiniz?
- Robotunuzda LED, dinamik və ya sensorlar kimi əlavə xüsusiyyətlər varmı (və ya əlavə edə bilərsiniz!)?
Kodu təkmilləşdirmək üçün fikirlər
- Try/except kodundan istifadə edərək robotunuza naməlum mesajların öhdəsindən gəlməsinə kömək edə bilərsinizmi?
- Joystickdən sol və sağ dəyərləri hesablamaq üçün istifadə olunan riyaziyyat bizə tam dəyər aralığını vermir (robotun sürücüsü 1023 -ə qədər bir rəqəmi qəbul edə bilər). Daha yaxşı bir sıra əldə etmək üçün bu kodu düzəldə bilərsinizmi?
- Joystick dəyərlərini qarışdırmağın başqa üsulları var - bunu etmək üçün daha yaxşı bir yol tapa bilərsinizmi?
Tövsiyə:
ATtiny85 Geyinilə bilən Titrəmə Aktivliyi İzləmə İzləmə və Proqramlaşdırma Arduino Uno ilə ATtiny85: 4 addım (şəkillərlə)
ATtiny85 Geyinilə bilən Titrəmə Aktivliyi İzləmə Saatı və Proqramlaşdırılması Arduino Uno ilə ATtiny85: Geyinilə bilən fəaliyyət izləmə saatı necə edilir? Bu, durğunluq algıladıqda titrəmək üçün hazırlanmış geyilə bilən bir gadgetdır. Vaxtınızın çoxunu mənim kimi kompüterdə keçirirsinizmi? Özünüz də bilmədən saatlarla oturursunuz? Sonra bu cihaz f
Arduino əsaslı DIY Oyun Nəzarətçisi - Arduino PS2 Oyun Nəzarətçisi - DIY Arduino Gamepad ilə Tekken oynamaq: 7 addım
Arduino əsaslı DIY Oyun Nəzarətçisi | Arduino PS2 Oyun Nəzarətçisi | DIY Arduino Gamepad ilə Tekken Oynamaq: Salam uşaqlar, oyun oynamaq həmişə əyləncəlidir, ancaq öz DIY xüsusi oyun nəzarətçinizlə oynamaq daha əyləncəlidir, buna görə də bu təlimatlarda arduino pro micro istifadə edərək bir oyun nəzarətçisi edəcəyik
AVR mikro nəzarətçisi. Pulse Genişliyi Modulyasiyası. DC Motor və LED İşıq Gücünün Nəzarətçisi .: 6 Addım
AVR mikro nəzarətçisi. Pulse Genişliyi Modulyasiyası. DC Motor və LED İşıq Gücünün Nəzarətçisi .: Hamıya salam! Pulse Width Modulation (PWM) telekommunikasiya və güc nəzarətində çox yayılmış bir texnikadır. bir mühərrik, bir LED, dinamiklər və s., bir elektrik cihazına verilən enerjini idarə etmək üçün ümumiyyətlə istifadə olunur. Əsasən bir modudur
Joystick Arduino istifadə edərək idarə olunan Servo (Proqramlaşdırma ilə): 4 addım
Arduino istifadə edərək Joystick tərəfindən idarə olunan servo (Proqramlaşdırma ilə): Bu dərslikdə Arduino Uno istifadə edərək bir joystick nəzarət servosu hazırlayacağıq. Servo joystik hərəkətinə görə hərəkət edəcək
YABC - Başqa bir Blynk Nəzarətçisi - IoT Bulud İstilik və Rütubət Nəzarətçisi, ESP8266: 4 Addım
YABC - Başqa bir Blynk Nəzarətçisi - IoT Bulud Temperaturu və Rütubət Nəzarətçisi, ESP8266: Salam Yaradıcılar, bu yaxınlarda evdə göbələk, İstiridye göbələyi yetişdirməyə başladım, ancaq ev dəmləməyim, arvadım üçün Fermentator Temperaturuna nəzarət etmək üçün evdə bu nəzarətçilərin üçdə birini var. indi də bu Kombucha işini edir və İstilik üçün Termostat olaraq