Isi kandungan:

Robot Arduino Otto Dengan Mesin Negeri: 4 Langkah
Robot Arduino Otto Dengan Mesin Negeri: 4 Langkah

Video: Robot Arduino Otto Dengan Mesin Negeri: 4 Langkah

Video: Robot Arduino Otto Dengan Mesin Negeri: 4 Langkah
Video: Cara membuat robot sensor ultrasonik arduino 2024, Julai
Anonim
Image
Image

Tinjauan Projek

Dalam projek ini, saya ingin menunjukkan cara pemrograman Otto Robot, yang merupakan robot DIY berasaskan Arduino. Dengan menggunakan YAKINDU Statechart Tools (percuma untuk bukan komersial) kita dapat dengan mudah menggunakan mesin keadaan untuk memodelkan tingkah laku Otto Robot secara grafik dan menghasilkan kod C / C ++. Kami akan menggunakan salah satu contohnya untuk memperluas tingkah laku mengikut keinginan kami.

Bagi orang yang tidak tahu apa itu mesin negara dan tidak mahu mencari-cari artikel Wikipedia yang rumit, berikut adalah penjelasan kecil:

Mesin keadaan hanyalah nod dan laluan di antara nod tersebut. Anda mempunyai simpul permulaan dan dapat mengambil jalan ke simpul lain bergantung pada pengawalnya, yang dapat diwakili oleh peristiwa. Peristiwa ini dibangkitkan dari mesin negara sendiri atau dari luar (seperti fungsi, dll.).

Alat itu sendiri menggunakan antara muka seret & lepas dan bahasa khusus domain. Saya akan mengatasinya untuk anda, jadi anda tidak perlu menggali dokumentasi mereka agar Otto anda dapat dijalankan. Menyiapkan IDE tidak terlalu sukar, kerana semua pemalam, dan lain-lain harus dipasang secara automatik.

Bekalan

Robot Otto atau Robot Zowi

Kedua-dua robot ini pada dasarnya sama dan menggunakan API yang sama. Otto Robot adalah robot DIY, dengan bahagiannya dalam talian, siap dicetak dengan pencetak 3D sekiranya anda mempunyai satu. Alternatifnya ialah Robot Zowi, yang boleh dibeli secara dalam talian dan siap digunakan.

Alat Carta Negeri YAKINDU

Alat yang akan kita gunakan untuk memodelkan mesin keadaan. Anda boleh memulakan dengan percubaan 30 hari dan mendapatkan lesen percuma untuk penggunaan bukan komersial selepas itu.

Eclipse C ++ IDE untuk Arduino Plugin

Kami tidak perlu memuat turunnya secara manual, kerana IDE melakukannya untuk kami. Saya masih fikir senang untuk menyenaraikannya di sini.

Langkah 1: Menetapkan Segalanya

Memahami Cara Memadankan Otto
Memahami Cara Memadankan Otto

Setelah memasang IDE, jalankan dan sediakan ruang kerja di mana sahaja di komputer anda (penyediaannya sama dengan menggunakan Eclipse untuk pertama kalinya). Apabila program telah dimulakan sepenuhnya, klik halaman selamat datang dan klik pada 'Fail -> Baru -> Contoh …' dan kemudian pilih 'Contoh StateCart YAKINDU', tunggu sebentar dan cari "Sistem Tertanam -> Zowi (C ++) "contoh.

PENTING: Klik pada butang kanan atas yang disebut 'Pasang Ketergantungan …'! Ini memasang segala-galanya untuk anda, jadi anda tidak perlu risau tentang Perpustakaan, Pemalam dan sejenisnya. Muat turun contoh, ikuti arahan dalam contoh "Sistem Tertanam -> Zowi (C ++)" dan kemudian teruskan dengan langkah seterusnya.

Langkah 2: Memahami Cara Memadankan Otto

Masuk ke fail ".sct" dan edit mesin keadaan mengikut keinginan anda. Di sebelah kanan terdapat menu dengan semua item ada. Kami hanya berminat dengan negeri dan peralihan.

Dalam gambar, anda dapat melihat, bahawa saya menulis beberapa perkara pada peralihan; "selepas X s" cukup jelas dan "selalu" hanya bermaksud, ia akan pergi ke sana tepat setelah menyelesaikan kod dari Negeri. "Entri /" bermaksud, bahawa kod tersebut harus dilaksanakan tepat setelah memasuki keadaan.

IDE menyusun mesin keadaan ke C ++, yang mematuhi Arduino. Untuk menggunakan ciri-ciri Otto, kita harus melakukan sedikit usaha untuk mengakses antara muka.

Kata kunci berikut boleh digunakan untuk menentukan barang yang akan digunakan mesin negara:

pemalar, yang memegang nilai dan tidak dapat diubah

pemboleh ubah, yang memegang nilai dan boleh diubah

operasi, yang akan dihasilkan untuk kaedah C ++ maya untuk pelaksanaan

antara muka:

const PIN_YL: integer = 2 const PIN_YR: integer = 3 const PIN_RL: integer = 4 const PIN_RR: integer = 5 const sound: integer = 2 const mouth_heart: integer = 13 const mouth_happyBuka: 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: nyata, T: integer, dir: integer) operasi zowi_shakeLeg ()

Petua Pro: jika anda tidak tahu apa yang harus dimasukkan di suatu tempat atau nampaknya ada ralat, tekan "ctrl + space" untuk mendapatkan petunjuk mengenai apa yang boleh anda masukkan.

Selain itu, anda harus melihat contohnya, mereka juga mempunyai beberapa kod! Anda juga dapat menggunakannya sebagai struktur untuk hanya mengedit model, yang merupakan satu-satunya bahagian yang kami minati sekarang.

Langkah 3: Mengisi Jurang

Mengisi Jurang
Mengisi Jurang

Setelah mengubah sesuatu dalam model, anda boleh klik kanan pada "zowiSCT.sgen -> Hasilkan Artifak Kod". Ini menghasilkan fungsi maya di C ++, yang dinyatakan dalam mesin keadaan ke folder "src-gen", yang kemudian kita laksanakan menggunakan C ++ normal.

Cukup buat dua fail ini di folder "src" untuk mendapatkan fungsi yang kita mahukan dari Otto.

Pertama Impl.h

#ifndef SRC_IMPL_H_

#define SRC_IMPL_H_ #include "../src-gen/ZowiSCT.h" class Impl: public ZowiSCT:: DefaultSCI_OCB {awam: Impl (); maya ~ Impl (); batal zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR); batal zowi_home (); kekosongan zowi_putMouth (sc_integer mouthType); batal zowi_sing (sc_integer songName); batal zowi_walk (langkah sc_real, sc_integer T, sc_integer dir); batal zowi_shakeLeg (); }; #endif / * SRC_IMPL_H_ * /

Kemudian Impl.cpp

#sertakan "Impl.h"

#include "../Zowi/Zowi.h" Zowi zowi = Zowi baru (); Impl:: Impl () {} Impl:: ~ Impl () {} batal Impl:: zowi_home () {zowi.home (); } batal Impl:: zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR) {zowi.init (YL, YR, RL, RR); } batal Impl:: zowi_putMouth (sc_integer mouthType) {zowi.putMouth (mouthType); } batal Impl:: zowi_sing (sc_integer songName) {zowi.sing (songName); } batal Impl:: zowi_walk (langkah sc_real, sc_integer T, sc_integer dir) {zowi.walk (langkah, T, dir); } batal Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }

Langkah 4: Membuat Tarian Otto

Apabila anda berpuas hati dengan produk anda, klik pada tukul di kiri atas dan tunggu prosesnya selesai. Kemudian klik pada anak panah hijau di sebelah kanan tukul dan lihat Otto anda menari!

Sekiranya anda mahu, anda boleh melihat beberapa contoh lain: YAKINDU Statechart Tools

Disyorkan: