Daftar Isi:
- Perlengkapan
- Langkah 1: Mengatur Semuanya
- Langkah 2: Memahami Cara Menghubungkan Otto
- Langkah 3: Mengisi Kesenjangan
- Langkah 4: Membuat Tarian Otto
Video: Robot Arduino Otto Dengan Mesin Negara: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Ulasan Proyek
Dalam proyek ini, saya ingin menunjukkan kepada Anda cara memprogram Robot Otto, yang merupakan robot DIY berbasis Arduino. Menggunakan YAKINDU Statechart Tools (gratis untuk non-komersial) kita dapat dengan mudah menggunakan state machine untuk secara grafis memodelkan perilaku Robot Otto dan menghasilkan kode C/C++. Kami akan menggunakan salah satu contoh mereka untuk memperluas perilaku sesuai dengan keinginan kami.
Untuk orang-orang yang tidak tahu apa itu mesin negara dan tidak ingin mengobrak-abrik artikel Wikipedia yang rumit, berikut adalah penjelasan kecilnya:
Mesin negara hanyalah simpul dan jalur di antara simpul-simpul itu. Anda memiliki node awal dan dapat mengambil jalur ke node lain tergantung pada penjaganya, yang dapat diwakili oleh peristiwa. Peristiwa ini dibangkitkan baik dari mesin negara itu sendiri atau dari luar (seperti fungsi, dll.).
Alat itu sendiri menggunakan antarmuka seret & lepas dan bahasa khusus domain. Saya akan membahasnya untuk Anda, jadi Anda tidak perlu menggali dokumentasi mereka untuk mengaktifkan dan menjalankan Otto Anda. Menyiapkan IDE tidak terlalu sulit, karena semua plug-in, dll. harus diinstal secara otomatis.
Perlengkapan
Robot Otto atau Robot Zowi
Kedua robot ini pada dasarnya melakukan hal yang sama dan menggunakan API yang sama. Robot Otto adalah robot DIY, dengan bagian-bagiannya online, siap untuk dicetak dengan printer 3D jika Anda memilikinya. Alternatifnya adalah Robot Zowi, yang dapat dibeli secara online dan siap digunakan.
Alat Bagan Negara YAKINDU
Alat yang akan kita gunakan untuk memodelkan mesin negara. Anda dapat memulai dengan uji coba 30 hari dan mendapatkan lisensi gratis untuk penggunaan non-komersial sesudahnya.
Eclipse C++ IDE untuk Arduino Plugin
Kami tidak perlu mengunduhnya secara manual, karena IDE melakukannya untuk kami. Saya masih berpikir akan menyenangkan untuk mencantumkannya di sini.
Langkah 1: Mengatur Semuanya
Setelah menginstal IDE, jalankan dan atur ruang kerja di mana saja di pc Anda (pengaturannya identik dengan menggunakan Eclipse untuk pertama kalinya). Ketika program telah dimulai sepenuhnya, klik halaman selamat datang dan klik 'File -> New -> Example…' lalu pilih 'YAKINDU Statechart Example', tunggu sebentar dan cari "Embedded Systems -> Zowi (C++))" contoh.
PENTING: Klik tombol kanan atas yang disebut 'Install Dependencies…'! Ini menginstal semuanya untuk Anda, jadi Anda tidak perlu khawatir tentang Perpustakaan, Plug-In, dan sejenisnya. Download contohnya, ikuti petunjuk pada contoh "Embedded Systems -> Zowi (C++)" lalu lanjutkan dengan langkah berikutnya.
Langkah 2: Memahami Cara Menghubungkan Otto
Masuk ke file ".sct" dan edit mesin status sesuai keinginan Anda. Di sebelah kanan adalah menu dengan semua item yang tersedia. Kami hanya tertarik pada keadaan dan transisi.
Dalam gambar, Anda dapat melihat, bahwa saya menulis beberapa hal ke transisi; "setelah X s" cukup jelas dan "selalu" hanya berarti, bahwa ia pergi ke sana tepat setelah menyelesaikan kode dari Negara. The "entry /" berarti, bahwa kode harus dieksekusi tepat setelah memasuki keadaan.
IDE mengkompilasi mesin status ke C++, yang sesuai dengan Arduino. Untuk menggunakan fitur-fitur Otto, kita harus melakukan sedikit pekerjaan sendiri untuk mengakses antarmuka.
Kata kunci berikut dapat digunakan untuk menentukan hal-hal yang akan digunakan oleh mesin negara:
konstanta, yang menyimpan nilai dan tidak dapat diubah
variabel, yang menyimpan nilai dan dapat diubah
operasi, yang akan dihasilkan ke metode C++ virtual untuk implementasi
antarmuka:
const PIN_YL: integer = 2 const PIN_YR: integer = 3 const PIN_RL: integer = 4 const PIN_RR: integer = 5 const suara: integer = 2 const mouth_heart: integer = 13 const mouth_happyOpen: integer = 11 operasi zowi_init(YL: integer, YR: integer, RL: integer, RR: integer) operasi zowi_home() operasi zowi_putMouth(mouthType: integer) operasi zowi_sing(SongName: integer) operasi zowi_walk(langkah: real, T: integer, dir: integer) operasi zowi_shakeLeg()
Kiat Pro:jika Anda tidak tahu apa yang harus dimasukkan di suatu tempat atau tampaknya ada kesalahan, tekan "ctrl+spasi" untuk mendapatkan beberapa petunjuk tentang apa yang dapat Anda masukkan.
Selain itu, Anda harus melihat contoh, mereka memiliki beberapa kode di sana juga! Anda juga dapat menggunakannya sebagai struktur untuk mengedit model, yang merupakan satu-satunya bagian yang kami minati saat ini.
Langkah 3: Mengisi Kesenjangan
Setelah mengubah hal-hal dalam model Anda dapat mengklik kanan pada "zowiSCT.sgen -> Generate Code Artifacts". Ini menghasilkan fungsi virtual di C++, yang dideklarasikan di mesin negara ke folder "src-gen", yang kemudian kami implementasikan menggunakan C++ normal.
Buat saja kedua file ini di folder "src" untuk mendapatkan fungsionalitas yang kita inginkan dari Otto.
Pertama Impl.h
#ifndef SRC_IMPL_H_
#define SRC_IMPL_H_ #include "../src-gen/ZowiSCT.h" class Impl: public ZowiSCT::DefaultSCI_OCB{ public: Impl(); virtual ~Impl(); void zowi_init(sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR); batalkan zowi_home(); void zowi_putMouth(sc_integer mouthType); void zowi_sing(sc_integer songName); void zowi_walk(langkah sc_real, sc_integer T, sc_integer dir); batalkan zowi_shakeLeg(); }; #endif /* SRC_IMPL_H_ */
Kemudian Impl.cpp
#sertakan "Impl.h"
#include "../Zowi/Zowi.h" Zowi zowi = new Zowi(); Impl::Impl() {} Impl::~Impl() {} void Impl::zowi_home() { zowi.home(); } void Impl::zowi_init(sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR) { zowi.init(YL, YR, RL, RR); } void Impl::zowi_putMouth(sc_integer mouthType) { zowi.putMouth(mouthType); } void Impl::zowi_sing(sc_integer songName) { zowi.sing(songName); } void Impl::zowi_walk(sc_real langkah, sc_integer T, sc_integer dir) { zowi.walk(langkah, T, dir); } void Impl::zowi_shakeLeg() { zowi.shakeLeg(); }
Langkah 4: Membuat Tarian Otto
Saat Anda puas dengan produk Anda, klik palu di kiri atas dan tunggu prosesnya selesai. Kemudian klik panah hijau di sebelah kanan palu dan lihat Otto Anda menari!
Jika mau, Anda dapat melihat beberapa contoh lainnya: YAKINDU Statechart Tools
Direkomendasikan:
Otto DIY+ Arduino Bluetooth Robot Mudah Dicetak 3D: 6 Langkah (dengan Gambar)
Otto DIY+ Arduino Bluetooth Robot Easy to 3D Print: Sifat Otto yang benar-benar open source memungkinkan pendidikan STEAM terbuka, kami mengumpulkan umpan balik dari berbagai bengkel dan sekolah di seluruh dunia yang sudah menggunakan Otto DIY di kelas mereka dan bergantung pada keterbukaan tempat pendidikan ini kita atau
HX1-DM - Mesin Drum DIY Bertenaga Arduino DUE (dibuat Dengan Mesin Mati MK2): 4 Langkah
HX1-DM - Mesin Drum DIY Bertenaga Arduino DUE yang Didaur Ulang (dibuat Dengan Mesin Mati MK2): Spesifikasi. Kontroler Midi / mesin drum hibrida: Bertenaga Arduino DUE! 16 Bantalan penginderaan kecepatan dengan latensi sangat rendah 1>ms 8 kenop yang dapat ditetapkan pengguna untuk perintah Midi #CC apa pun 16ch Sequencer bawaan (tidak perlu komputer!!) Fungsi masuk/keluar/melalui MIDI
Lanskap Dari Negara Saya: 4 Langkah
Pemandangan Dari Negara Saya: Hai semuanya! Ini adalah proyek pertama saya, dan saya sangat ingin membaginya dengan kalian! Idenya datang dari pemandangan yang indah, dari negara saya
Sciphone I68 GPRS + MMS Setup Semua Negara Sangat Mudah: 8 Langkah
Sciphone I68 GPRS + MMS Setup Semua Negara Sangat mudah: sciphone i68+ adalah tiruan yang sangat bagus dari iphone yang pernah populer dengan harga yang lebih murah Petunjuk ini akan menunjukkan kepada Anda cara mudah mengatur pengaturan GPRS dan MMS pada sciphone i68 Anda sehingga Anda dapat mengirim dan menerima pesan gambar dan menjelajahi
Senapan Mesin Sub-mesin Marshmallow Bertenaga Udara: 8 Langkah
Senapan Mesin Sub-mesin Marshmallow Bertenaga Udara: Dalam instruksi ini, saya akan menunjukkan kepada Anda cara membuat senapan mesin ringan bertenaga udara. Ini cepat dan mudah dibuat