Isi kandungan:
- Bekalan
- Langkah 1: Penyediaan Robot
- Langkah 2: Persediaan Joystick
- Langkah 3: Memeriksa Nilai Joystick
- Langkah 4: Melaraskan Pemboleh ubah X dan Y
- Langkah 5: Menukar Nilai X dan Y menjadi Motor Kiri dan Kanan
- Langkah 6: Menghantar Nilai Sebagai Mesej Radio
- Langkah 7: Menerima Mesej di Robot Anda
- Langkah 8: Menggunakan Mesej Masuk untuk Mengendalikan Robot's Motor
- Langkah 9: Menggunakan Butang - Menerima Mesej Tambahan
- Langkah 10: Menghantar Mesej Tambahan Menggunakan Butang Pengawal
- Langkah 11: Langkah Seterusnya
Video: Mengaturcara Mikro: Bit Robot & Joystick: Pengawal Bit Dengan MikroPython: 11 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Untuk Robocamp 2019, kem robotik musim panas kami, anak muda berusia 10-13 tahun sedang menyolder, memprogram dan membina 'antweight robot' berasaskan mikro BBC, serta memprogram mikro: bit untuk digunakan sebagai alat kawalan jauh.
Sekiranya anda sekarang berada di Robocamp, lompat ke Langkah 3, kerana kami telah melakukan dua langkah pertama sebagai satu kumpulan
Ini adalah panduan langkah demi langkah untuk mendapatkan robot mikro: bit yang berkomunikasi dengan kayu bedik: pengawal bit.
Ia tidak mengambil jalan tercepat untuk membuat semuanya berfungsi, tetapi mencuba banyak perkara sehingga anda dapat menguji kodnya seperti yang anda jalani, meletakkan cap anda sendiri, dan memahami mengapa kita melakukan perkara yang kita lakukan !
Untuk aktiviti ini, kami menggunakan robot tersuai kami sendiri, tetapi ia akan berfungsi dengan robot mana pun yang menggunakan pemandu motor yang serupa, seperti L9110s.
Fail reka bentuk untuk robot kami boleh didapati di sini:
Panduan ini ditulis untuk pemula, tetapi jika anda belum pernah menggunakan micro: bit dengan MicroPython sebelumnya, kami mengesyorkan anda mencuba program yang lebih mudah terlebih dahulu, seperti lencana nama kami. Instructable: https://www.instructables.com/id/Felt -Microbit-Nam …
Bekalan
2x mikro BBC: bit
Robot yang berfungsi dengan mikro BBC: bit (lihat penjelasan di atas)
kayu bedik: pengawal bit (kami dapatkan dari Cool Components)
Langkah 1: Penyediaan Robot
Anda mempunyai beberapa pilihan untuk menulis kod MicroPython untuk mikro: bit:
- Mu, yang boleh anda muat turun dan pasang dari sini:
- Editor dalam talian, yang anda dapati di sini:
Arahan ini menganggap anda menggunakan Mu
Buka Mu, dan pasang mikro: bit ke komputer anda. Anda harus menyedari bahawa anda menggunakan mikro: bit dan pilih mikro: bit 'Mode', tetapi jika tidak, ubah secara manual.
Dapatkan salinan kod ujian motor robot dari sini:
Sekiranya anda tidak terbiasa dengan Github, ia tidak boleh dilakukan! Dua cara mudah untuk mendapatkan kod ini adalah:
- Simpan fail Raw ke komputer anda, kemudian Muatkannya ke Mu:
- Salin dan tampal semua kod yang diberikan ke dalam fail Baru di Mu.
Sekarang klik butang 'Flash' dari bar alat Mu, untuk menghantar kod baru anda ke mikro: bit.
Ini tidak akan berfungsi melainkan mikro: bit dipasang
Lampu kuning di bahagian belakang mikro: bit akan mula berkelip. Setelah selesai, kod anda telah dipindahkan.
MENYEDIAKAN ARAH MOTOR
Program ini akan menghidupkan motor dalam arah yang berbeza apabila anda menekan butang 'A' pada mikro: bit.
Apa yang anda mahu berlaku ialah:
- Apabila 'A' dipaparkan, motor kiri ke hadapan
- Apabila 'B' dipaparkan, kiri motor ke belakang
- Apabila 'C' dipaparkan, motor kanan ke hadapan
- Apabila 'D' dipaparkan, motor kanan ke belakang
Ini mungkin tidak akan berlaku, kerana ia bergantung pada bagaimana anda memasang robot anda!
Di bahagian atas kod, anda akan menemui senarai pemboleh ubah, yang menentukan pin mana pada mikro: bit mengawal arah motor mana.
Sekiranya anda menggunakan salah satu robot (fail) kami, tukar nama pemboleh ubah untuk membuat robot bergerak ke arah yang betul:
Sekiranya anda menggunakan robot anda sendiri, periksa pin yang disambungkan pemandu motor sebelum mengedit kodnya.
MENGUJI DRIVE
Sekarang periksa bagaimana robot anda bergerak dengan mengganti kod ujian di gelung utama dengan beberapa kod anda sendiri.
Anda menyuruh robot untuk memandu dengan memanggil fungsi pemacu (). Ini memerlukan dua argumen - nilai untuk motor kiri dan nilai untuk motor kanan, antara 0 (mati) dan 1023 (kelajuan maksimum).
Dengan memanggil pemacu (500, 500), sebagai contoh, anda menyuruh kedua motor menghidupkan, ke arah hadapan, pada kira-kira separuh kelajuan.
Cubalah beberapa pilihan untuk merasakan betapa lurus ia bergerak dan seberapa baik ia berubah.
Petunjuk: ujian motor berada dalam kedua-dua loop True sementara, dan pernyataan if - motor tidak akan berpusing sehingga anda menekan butang A pada mikro: bit, dan selamanya memeriksa sama ada anda telah menekan butang A.
Petunjuk: motor tidak akan mati sehingga anda memberitahu mereka! Mereka akan terus melakukan arahan terakhir mereka.
PILIHAN: MENINGKATKAN MEMANDU DI LINE STRAIGHT
Sekiranya robot anda tidak akan bergerak dalam lurus, salah satu motor anda mungkin berpusing lebih pantas daripada yang lain.
Setelah memastikan bahawa tidak ada roda yang secara fizikal menghentikan roda berpusing bebas, anda boleh mengedit kod dalam fungsi pemacu untuk mengurangkan kelajuan motor yang lebih pantas.
Tatal ke atas untuk mencari definisi fungsi pemacu, dan lihat dua arahan teratas:
pemacu def (L, R):
# Berikut adalah penyesuaian untuk membetulkan perbezaan kelajuan motor L = int (L * 1) R = int (R * 1)
Kedua-dua garis ini pada masa ini mengambil nilai L dan R, kalikan dengan 1, kemudian pastikan mereka masih nombor bulat (int).
Sebagai contoh, jika motor kiri anda lebih laju, ubah * 1 pada garisannya menjadi * 0,9, dan lihat apakah itu meningkatkan keadaan.
Anda tidak akan dapat menjadikannya sempurna, tetapi anda boleh terus menyesuaikan diri sehingga ia menjadi lebih lurus.
MENYEDIAKAN RADIO
Sekarang sediakan radio, dengan menambahkan baris berikut ke bahagian atas kod anda:
mengimport radio
radio.config (saluran = 7, kumpulan = 0, barisan = 1) radio.on ()
Ini akan membolehkan robot anda menerima arahan dari bit mikro lain, tetapi pada masa ini ia akan menerima arahan dari bit mikro lain.
Ini kerana saluran 7 dan kumpulan 0 adalah saluran lalai.
Tukar nombor ini, pilih saluran antara 0-82 dan kumpulan antara 0-255. Kini mikro: bit anda hanya akan menerima arahan dari orang lain dengan maklumat konfigurasi yang sama.
queue = 1 bermaksud mikro: bit hanya akan menyimpan satu mesej masuk pada satu masa - ini memberikan masa tindak balas yang sedikit lebih pantas daripada lalai, iaitu 3.
Sekarang anda perlu mengedit kod gelung utama anda, bukannya menjalankan arahan ketika anda menekan butang, tunggu mesej radio masuk dan balas dengan tepat.
Cubalah kod berikut sebagai ujian (ia tidak akan membuat apa-apa sehingga anda telah menetapkan kayu bedik pada Langkah 2):
Walaupun Betul:
message = radio.receive () jika message == 'maju': drive (500, 500)
Langkah 2: Persediaan Joystick
Cabut plag mikro: bit anda, dan pasangkan mikro: bit joystick anda
Dapatkan salinan kod persediaan joystick dari sini:
Siapkan radio menggunakan konfigurasi yang sama (saluran dan nombor kumpulan) seperti yang anda lakukan untuk robot - ini akan membolehkan kedua-duanya saling berkomunikasi.
Pada akhir program, mulakan gelung utama anda:
Walaupun Betul:
jika button_a.was_pressed (): radio.send ('forward')
Kod ini belum menggunakan kayu bedik: bit. Ia menggunakan butang A pada mikro: bit untuk menghantar mesej.
Pastikan robot dan mikro pengawal anda: bit mempunyai kuasa, kemudian tekan butang untuk menghantar mesej anda.
Sekiranya mesej berjaya diterima, dan robot anda bergerak … dilakukan dengan baik! Anda selesai dengan arahan penyediaan.
PETUA PENYELESAIAN MASALAH
Sekiranya anda mendapat mesej ralat pada mikro pengawal anda: bit… nyahpepijat kod pengawal anda
Sekiranya anda mendapat mesej ralat pada mikro robot anda: bit … mesej radio anda berjaya dihantar! Tetapi robot tidak dapat memahaminya, jadi periksa apakah mesej yang anda kirimkan, dan pesan yang anda katakan kepada robot untuk mendengar pertandingan.
Sekiranya tidak berlaku sama sekali
- Pastikan anda memasukkan kod yang betul ke setiap mikro: bit - mudah untuk mem-flash yang salah secara tidak sengaja!
- Pastikan nombor saluran dan kumpulan anda sepadan pada setiap mikro: bit
Langkah 3: Memeriksa Nilai Joystick
Beberapa langkah seterusnya semuanya menggunakan kod pengawal
Sebelum anda boleh menggunakan kayu bedik pada alat kawalan anda, anda perlu mengetahui jenis nilai yang anda dapat semasa menekan tongkat.
Ganti gelung utama anda dengan kod berikut:
Walaupun Betul:
joystick = joystick_push () print (joystick) tidur (500)
Flash kod ini ke mikro: bit, kemudian klik butang REPL pada bar alat Mu. Ini akan membuka terminal di bahagian bawah editor, yang memberi anda pautan masa nyata ke mikro: bit.
Ini tidak akan berfungsi melainkan mikro: bit dipasang
Dengan REPL terbuka, tekan butang reset di bahagian belakang mikro: bit anda.
Anda akan melihat beberapa nilai membawa 'dicetak' ke skrin anda:
Tolak batang kayu bedik dan lihat apa yang berlaku pada nombor.
Catat nilai yang diberikan ketika kayu bedik berada di kedudukan tengah - dalam kes saya (518, 523).
Klik butang REPL pada bar alat Mu sekali lagi untuk menutupnya - anda tidak akan dapat memasukkan kod baru ke mikro: bit semasa ia terbuka.
Langkah 4: Melaraskan Pemboleh ubah X dan Y
Anda ingin mengubah nilai yang diberikan oleh fungsi joystick, supaya:
- di tengahnya adalah sifar
- naik adalah positif
- turun adalah negatif.
Ini sepadan dengan arahan yang diperlukan robot - nombor positif untuk bergerak ke hadapan, dan nombor negatif untuk memandu ke belakang.
Lihat nombor yang anda dapat pada langkah terakhir. Nombor pertama ialah x, dan nombor kedua ialah y.
Edit definisi joystick_push () yang sudah ada dalam program, untuk mengurangkan nilai anda dari yang asal:
def joystick_push ():
x = pin0.read_analog () - 518 y = pin1.read_analog () - 523 pulangan x, y
Gunakan nombor anda sendiri, mereka mungkin berbeza dengan nombor saya
Flash kod baru anda, buka REPL, tekan butang reset mikro: bit dan periksa nilai anda.
Adakah anda mendapat (0, 0)?
Langkah 5: Menukar Nilai X dan Y menjadi Motor Kiri dan Kanan
Pada masa ini, kayu bedik ini tidak akan berguna untuk menggerakkan robot. Didorong ke depan, anda akan mendapat nilai seperti (0, 500).
Sekiranya anda memberikan nombor ini kepada robot, ia akan menghidupkan motor kanan tetapi bukan yang kiri, yang bukan perkara yang anda mahu berlaku!
Gambar rajah ini menunjukkan apa yang berlaku pada nilai x dan y semasa anda menggerakkan kayu bedik, dan apa yang kami mahu robot lakukan semasa anda menggerakkan kayu bedik.
Anda perlu menggunakan beberapa matematik untuk mencampurkan nilai x dan y, untuk memberi anda sesuatu yang lebih berguna.
n
MATLAMAT
Mari mulakan dengan menolak kayu bedik ke hadapan.
Contoh nilai yang mungkin anda dapat ialah:
x = 0
y = 500
Untuk menjadi berguna kepada robot, anda ingin mendapatkan nilai seperti ini:
kiri = 500
betul = 500
Mari cuba tambah x dan y dengan cara yang berbeza untuk melihat nombor yang kami dapat:
x + y = 0 + 500 = 500
x - y = 0 - 500 = -500 y + x = 500 + 0 = 500 y - x = 500 - 0 = 500
Sekarang mari kita lihat apa yang berlaku jika kita menekan joystick hingga ke kanan.
Contoh nilai yang mungkin anda dapat ialah:
x = 500
y = 0
Untuk membuat robot berpusing ke kanan, anda mahu motor kiri bergerak ke hadapan, dan motor kanan memandu ke belakang:
kiri = 500
betul = -500
Mari cuba formula lagi:
x + y = 500 + 0 = 500
x - y = 500 - 0 = 500 y + x = 0 + 500 = 500 y - x = 0 - 500 = -500
Bandingkan dua set formula untuk mengetahui pilihan mana yang akan memberi anda nilai kiri yang betul, dan pilihan mana yang akan memberi anda nilai kanan yang betul.
Cubalah dengan beberapa nilai yang anda dapat dari kayu bedik anda sendiri, untuk memastikan formula yang anda pilih berfungsi sepanjang masa.
n
MENGEMBANGKAN FUNGSI JOYSTICK
Kembangkan dan edit fungsi kayu bedik untuk membuat dua pemboleh ubah baru untuk kiri dan kanan, dan untuk mengembalikan nilai bukan x dan y:
def joystick_push ():
x = pin0.read_analog () - 518 y = pin1.read_analog () - 523 kiri = kanan = kembali kiri, kanan
Flash kod baru anda, buka REPL, tekan butang reset mikro: bit dan periksa nilai anda.
Adakah anda mendapat nilai yang anda harapkan?
Sekiranya anda memerlukan lebih banyak bantuan, lihat kod contoh kami di sini:
Langkah 6: Menghantar Nilai Sebagai Mesej Radio
Sekarang anda mempunyai beberapa nilai yang siap dihantar ke robot anda.
Edit gelung utama anda, sehingga dapat memeriksa nilai-nilai kayu bedik, tetapi bukannya mencetak nilainya, ia akan siap menghantarnya sebagai mesej radio.
Walaupun Betul:
joystick = joystick_push () message = str (joystick [0]) + "" + str (joystick [1])
Ini sebenarnya tidak akan menghantar mesej!
Apa yang berlaku dalam barisan kod baru ini?
- joystick [0] bermaksud sedikit maklumat pertama yang keluar dari fungsi joystick (kiri)
- joystick [1] adalah sedikit maklumat seterusnya (kanan)
- str () menukar kedua-dua nombor ini menjadi format rentetan (teks dan bukannya nombor) - ini diperlukan untuk dapat menghantar maklumat melalui radio.
Anda akan terbiasa melihat + untuk bermaksud penambahan - kedua-duanya dapat menambahkan nombor bersama dan rentetan gabungan, yang bermaksud ia akan menyatukan dua bit maklumat itu bersama-sama.
Contoh:
150 + 100 = 250
str (150) + str (100) = 150100
Oleh itu, penggabungan akan menyatukan nilai kiri dan kanan anda.
Untuk memaksa pemisahan antara dua bit maklumat (agar robot mengetahui bahawa mereka adalah dua bit maklumat), gabungkan tali tambahan di antara mereka menggunakan "". Tanda ucapan di sekitar ruang bermaksud bahawa ia sudah menjadi rentetan.
Akhirnya, kembangkan kod anda untuk menghantar mesej yang baru dibuat ini melalui radio:
radio. hantar (mesej)
tidur (10)
Tidur melambatkan penghantaran mesej supaya mikro penerima sedikit tidak terlalu banyak dengan maklumat yang terlalu banyak!
Flash kod ini ke mikro pengawal anda: bit dan nyahpepijat sebarang kesalahan sebelum beralih ke langkah seterusnya
Langkah 7: Menerima Mesej di Robot Anda
Kembali ke kod robot anda dari awal - ingatlah untuk mencabut mikro pengawal anda: bit supaya anda tidak memasukkan kod robot itu secara tidak sengaja
Tatal ke gelung utama anda - keluarkan kod ujian dan tambahkan ini:
Walaupun Betul:
message = radio.receive () print (message) tidur (100)
Ini menetapkan pemboleh ubah yang sama dengan pesan masuk, dan mencetak pesan ke REPL - untuk memeriksa apakah pesan tersebut masuk seperti yang diharapkan.
Kilat kod baru anda, disambungkan ke REPL, kemudian tekan joystick.
Anda harus mendapat sesuatu seperti ini:
PETUA PENYELESAIAN MASALAH
Sekiranya anda mendapat mesej ralat pada mikro pengawal anda: bit… nyahpepijat kod pengawal anda
Sekiranya anda mendapat mesej ralat pada mikro robot anda: bit … mesej radio anda berjaya dihantar! Tetapi robot tidak dapat memahaminya, jadi periksa apakah mesej yang anda kirimkan, dan pesan yang anda perintahkan kepada robot untuk mendengar pertandingan.
Sekiranya tidak berlaku sama sekali
- Pastikan anda memasukkan kod yang betul ke setiap mikro: bit - mudah untuk mem-flash yang salah secara tidak sengaja!
- Pastikan nombor saluran dan kumpulan anda sesuai pada setiap mikro: bit
Langkah 8: Menggunakan Mesej Masuk untuk Mengendalikan Robot's Motor
Anda kini mendapat dua nombor yang dihantar melalui radio sebagai rentetan.
Anda perlu membahagikan mesej ini menjadi dua rentetan, kemudian menukar rentetan menjadi nombor lagi, dan meneruskannya ke fungsi pemacu. Banyak berlaku sekaligus!
Sebelum melakukan ini, anda perlu memastikan bahawa mesej yang anda terima dalam format yang betul.
Sekiranya tidak ada mesej yang dihantar, anda akan menerima 'Tiada' sebagai gantinya. Sekiranya anda mencuba dan memecah ini, anda akan mendapat mesej ralat.
Walaupun Betul:
message = radio.receive () jika mesej tidak ada: message = message.split () drive (int (message [0]), int (message [1]))
Apa yang berlaku di sini?
- Kod baru akan dijalankan sekiranya mesej itu tidak lain daripada 'Tiada'.
- message.split () memeriksa ruang dalam mesej (yang kami tambahkan pada langkah terakhir), dan menggunakan ini untuk membagi mesej menjadi dua.
- int (message [0]), int (message [1]) melakukan kebalikan dari yang kita lakukan pada langkah sebelumnya - mendapatkan setiap maklumat secara individu dan mengubahnya menjadi bilangan bulat (bilangan bulat).
- int (message [0]) digunakan sebagai nilai untuk motor kiri dalam fungsi drive, dan int (message [1]) digunakan sebagai nilai untuk motor kanan.
Pastikan ia berfungsi - adakah motor berpusing ketika anda menekan kayu bedik?
Sekiranya tidak - masa untuk penyahpepijatan!
Sekiranya ya, hebat! Anda mempunyai robot kawalan jauh yang berfungsi!
Luangkan masa untuk berlatih dengan robot anda sebelum beralih ke langkah seterusnya. Adakah ia mendorong seperti yang anda harapkan?
Langkah seterusnya akan menunjukkan kepada anda cara menggunakan butang pada kayu bedik untuk menambahkan fungsi tambahan pada robot anda
Sekiranya anda ingin melihat versi kod kami sejauh ini:
- Robot:
- Pengawal:
Langkah 9: Menggunakan Butang - Menerima Mesej Tambahan
Pada masa ini, kod anda akan cuba membahagikan sebarang mesej yang bukan Tiada. Ini bermaksud bahawa jika ia menerima, misalnya, 'halo', maka anda akan mendapat mesej ralat.
Untuk membolehkan mikro: bit mentafsirkan mesej lain, ia perlu menyemak setiap mesej yang diharapkan terlebih dahulu, kemudian membagi mesej hanya jika belum diberitahu untuk melakukan perkara lain dengannya.
Kembangkan kod anda seperti:
jika mesej tidak ada:
jika message == 'hello': display.show (Image. HAPPY) elif message == 'itik': display.show (Image. DUCK) other: message = message.split () drive (int (mesej [0]), int (mesej [1]))
Pertama, ia akan memeriksa sama ada ia telah menerima mesej 'hello'. Sekiranya ada, ia akan memaparkan gambar gembira, kemudian kembali ke bahagian atas gelung dan periksa mesej seterusnya.
Sekiranya mesej itu tidak disambut, ia akan memeriksa apakah mesej itu 'bebek'.
Sekiranya mesej itu bukan bebek 'hello' ATAU ', ia akan melakukan perkara terakhir dalam senarai, iaitu membagi mesej dan menghidupkan motor. Ia tidak akan cuba memecah-belahkan pesan jika telah menerima 'halo' atau 'bebek', yang bermaksud anda tidak akan mendapat mesej ralat dari kedua-dua mesej ini.
Tanda ganda sama adalah penting - ini bermaksud 'sama dengan', berbanding tanda sama dengan satu, yang menetapkan sesuatu (jadi pesan = 'halo' bermaksud kita menetapkan pemboleh ubah ke 'hello', message == 'hello' bermaksud kita bertanya sama ada mesej sama dengan 'hello').
Cubalah dengan hanya dua pilihan buat masa ini, untuk mengujinya - anda boleh menambahkan seberapa banyak mesej lain yang anda mahu kemudian.
Pautan ke kod kerja:
Langkah 10: Menghantar Mesej Tambahan Menggunakan Butang Pengawal
Cabut plag mikro: bit anda, dan pasangkan mikro: bit joystick anda
Kembali ke kod pengawal anda untuk mengedit.
Sama seperti kod robot, kami ingin pengawal memeriksa sama ada anda cuba menghantar mesej lain, sebelum menghantar nilai kayu bedik.
Di bahagian atas gelung, kami masih mahu ia memeriksa nilai-nilai semasa kayu bedik, tetapi kami juga ingin memeriksa apakah butang sedang ditekan:
Walaupun Betul:
joystick = joystick_push () butang = button_press ()
button_press () mengembalikan nilai A, B, C, D, E atau F bergantung pada butang mana yang sedang ditekan (jika tidak ada yang ditekan, ia mengembalikan None).
Sekarang kita dapat membuat pernyataan if-elif-else, seperti yang kita lakukan untuk kod robot - menggunakan dua butang, dan mengirim nilai kayu bedik jika tidak ada butang yang ditekan.
jika butang == 'A':
radio.send ('hello') sleep (500) butang elif == 'B': radio.send ('itik') tidur (500) lain: message = str (joystick [0]) + "" + str (joystick [1]) radio. Hantar (mesej) tidur (10)
Apabila butang ditekan, hantarkan salah satu mesej yang anda katakan kepada robot untuk diperhatikan pada langkah sebelumnya.
Mesej akan dihantar setiap kali butang ditekan, dan komputer jauh lebih cepat daripada orang! Oleh itu, ia mungkin menghantar mesej berkali-kali sebelum anda berjaya mengeluarkan jari anda dari butang.
Tidur setelah menghantar mesej melambatkannya, sehingga tidak akan menyemak butang lagi dengan cepat - cuba sebilangan nombor di sini untuk mendapatkan masa yang sesuai untuk anda - terlalu perlahan dan juga tidak akan responsif dengan cepat dan robot anda akan menerima begitu banyak mesej butang sehingga mungkin berhenti bertindak balas terhadap kayu bedik!
Adakah ia berfungsi?
Sekiranya anda menerima mesej ralat, fikirkan dengan teliti apa yang baru sahaja anda ubah, dan apa yang berlaku.
Sekiranya anda mendapat ralat pada robot semasa anda menekan butang pada alat kawalan anda - anda tahu bahawa mesej itu tersebar, tetapi ia membingungkan robot. Periksa bahawa mesej yang telah anda kirimkan, dan mesej yang anda perintahkan kepada robot untuk dicari adalah sama.
Pautan ke kod kerja:
Langkah 11: Langkah Seterusnya
Anda kini mempunyai pengetahuan yang anda perlukan untuk bekerja dengan motor robot anda, dan dengan kayu bedik anda: pengawal bit
Gunakan pengetahuan ini untuk meningkatkan kedua program dan menjadikannya milik anda sendiri. Beberapa idea di bawah!
Anda mempunyai enam butang pada alat kawalan anda! Apa yang anda mahu mereka lakukan?
- Bagaimana dengan memprogram rutin tarian untuk robot anda lakukan mengikut arahan? Tulis algoritma arahan pemacu (), dipisahkan dengan perintah tidur ()!
- Adakah anda ingin mengubah arah robot bergerak supaya dapat memandu terbalik dengan mudah? Fikirkan tentang nilai x dan y pada kayu bedik anda. Apa yang mereka wakili dan bagaimana anda boleh memanipulasi mereka?
- Adakah robot anda mempunyai (atau boleh anda tambahkan!) Ciri tambahan seperti LED, pembesar suara atau sensor?
Idea untuk memperbaiki kod
- Bolehkah anda membantu robot anda untuk mengatasi mesej yang tidak diketahui dengan menggunakan try / kecuali kod?
- Matematik yang digunakan untuk mengira nilai kiri dan kanan dari kayu bedik tidak memberi kita pelbagai nilai (pemacu robot dapat menerima angka hingga 1023). Bolehkah anda mengedit kod ini untuk mendapatkan julat yang lebih baik?
- Terdapat kaedah lain untuk mencampurkan nilai kayu bedik - bolehkah anda membuat kaedah yang lebih baik untuk melakukannya?
Disyorkan:
Buat Papan Pembangunan Anda Sendiri Dengan Pengawal Mikro: 3 Langkah (dengan Gambar)
Buat Papan Pembangunan Anda Sendiri Dengan Mikrokontroler: Adakah anda pernah mahu membuat papan pengembangan anda sendiri dengan mikrokontroler dan anda tidak tahu bagaimana. Dalam arahan ini saya akan menunjukkan kepada anda bagaimana membuatnya. Yang anda perlukan adalah pengetahuan dalam elektronik, merancang litar dan pengaturcaraan. Sekiranya anda mempunyai usaha
Pengawal Permainan DIY Berasaskan Arduino - Pengawal Permainan Arduino PS2 - Bermain Tekken Dengan Gamepad Arduino DIY: 7 Langkah
Pengawal Permainan DIY Berasaskan Arduino | Pengawal Permainan Arduino PS2 | Bermain Tekken Dengan Gamepad Arduino DIY: Hai kawan-kawan, bermain permainan selalu menyeronokkan tetapi bermain dengan permainan peribadi DIY Controller anda lebih menggembirakan. Oleh itu, kami akan menjadikan Pengawal permainan menggunakan arduino pro micro dalam arahan ini
Cara Membuat Robot Dikawal Mudah Alih - Berasaskan DTMF - Tanpa Pengawal & Pengaturcaraan Mikro - Kawal Dari Mana sahaja di Dunia - RoboGeeks: 15 Langkah
Cara Membuat Robot Dikawal Mudah Alih | Berasaskan DTMF | Tanpa Pengawal & Pengaturcaraan Mikro | Kawal Dari Mana sahaja di Dunia | RoboGeeks: Ingin membuat robot yang dapat dikendalikan dari mana saja di dunia, Mari kita lakukan
Cara Menyusun Pengawal Pemegang yang Mudah dan Kuat - Berdasarkan Mikro: Bit: 10 Langkah (dengan Gambar)
Cara Menyusun Pengawal Pemegang yang Mudah dan Kuat - Berdasarkan Mikro: Bit: Nama pemegangnya ialah Handlebit. Bentuknya adalah pemegang dan kelihatan sangat keren! Sekarang kita boleh membuat pengenalan mengenai Handlebit, mari kita teruskan
Cara Memateri Pateri dengan Rapi (tanpa Banyak Kawat!) Penutupan Penutup pada Pengawal Mikro SMT .: 9 Langkah (dengan Gambar)
Cara Memateri Rapi (tanpa Banyak Kawat!) Penutupan Penutup pada Mikrokontroler SMT.: Arahan ini ditulis untuk mengajar anda bagaimana menggunakan kaedah prototaip yang kemas dan rapi dengan mikrokontroler SMT (atau peranti lain) pada papan penyesuai. Setelah bertungkus lumus membuat pekerjaan yang rapi dengan melepaskan pin kuasa pada PIC18F saya