Isi kandungan:
- Bekalan
- Langkah 1: Perkakasan
- Langkah 2: Tentukan Bagaimana Ia Perlu Berfungsi
- Langkah 3: Memadankan Mesin Negara
- Langkah 4: Kawalan HMI
- Langkah 5: Mengendalikan Negeri
- Langkah 6: Jam randik
- Langkah 7: Kaunter
- Langkah 8: Simulasi
- Langkah 9: Dapatkan Contohnya
Video: Arduino HMI Menggunakan Mesin Negeri: 9 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Dalam Instructable ini, saya akan menunjukkan kepada anda bagaimana menggunakan YAKINDU Statechart Tools untuk merealisasikan HMI yang mudah dan boleh dikembangkan dengan menggunakan Perisai Kekunci LCD 16x2 untuk Arduino.
Mesin Keadaan Terhingga (FSM) adalah corak reka bentuk yang kuat untuk membangunkan Interface Mesin Manusia (HMI) yang kompleks. Oleh kerana fungsi HMI dapat meningkat, berguna untuk menggunakan corak reka bentuk seperti mesin keadaan.
Contoh lengkapnya terdapat dalam Alat Carta Negeri YAKINDU. Selain itu, Eclipse C ++ IDE untuk Arduino Plugin telah digunakan untuk menyusun dan mem-flash di IDE.
Sinopsis Ringkas Alat Carta Negeri YAKINDU
Dengan alat ini, adalah mungkin untuk membuat mesin keadaan grafik. Ia membolehkan pengguna menghasilkan kod C, C ++ atau Java dari mesin negara. Dengan pendekatan ini, model dapat diubah atau diperluas dan pengguna hanya dapat menghasilkan semula kod dan tidak perlu menulis kod sumber biasa.
Bekalan
Bahagian:
- Arduino (Uno, Mega)
- Wayar USB
- Perisai Kekunci LCD 16x2
Alat:
- Alat Carta Negeri YAKINDU
- Eclipse C ++ IDE untuk Arduino
Langkah 1: Perkakasan
Perisai Keypad LCD hanya boleh dipasang ke Arduino. Ia mempunyai Paparan LCD 16x2 dan juga mendapat enam butang tekan:
- Meninggalkan
- Betul
- Ke atas
- Ke bawah
- Pilih
- (Tetapkan semula)
Jelas, lima daripadanya boleh digunakan. Kunci disambungkan ke pembahagi voltan dan dikesan dengan menggunakan Pin A0 bergantung pada voltan. Saya telah menggunakan perisian melantun untuk mengesannya dengan betul.
Langkah 2: Tentukan Bagaimana Ia Perlu Berfungsi
Permohonan harus dapat melakukan tiga perkara.
- Kendalikan Negeri Di sini saya ingin menggunakan butang untuk menavigasi antara lima keadaan: Atas, Tengah, Bawah, Kiri dan Kanan
- Jam randik ringkas, yang boleh dimulakan, dihentikan dan diset semula. Ia harus ditingkatkan setiap 100 milisaat
- Kaunter Bahagian ketiga mengandungi kaunter atas / bawah yang sederhana. Ia mesti dapat mengira nombor positif dan ia mesti diset semula
Menu aktif (atau keadaan) akan dipaparkan pada LCD 16x2 di barisan atas. Aplikasi (State, Timer atau Counter) akan dipaparkan di garis bawah. Untuk navigasi, butang kiri dan kanan harus digunakan.
Langkah 3: Memadankan Mesin Negara
Butang akan dilancarkan dan disambungkan ke mesin negara. Mereka boleh digunakan seperti dalam acara di mesin negara. Selain itu, operasi ditentukan untuk memaparkan menu semasa. Dan sekurang-kurangnya dua pemboleh ubah, satu untuk pemasa dan satu untuk pembilang, ditentukan.
antara muka:
// butang sebagai input peristiwa dalam acara kanan dalam acara kiri dalam acara naik dalam peristiwa turun pilih // paparkan HMI nilai nilai paparan operasiLCDString (nilai: tali, panjang: bilangan bulat, kedudukan: bilangan bulat) paparan operasiLCDInteger (nilai: bilangan bulat, kedudukan: integer) operasi clearLCDRow (kedudukan: integer) dalaman: // pemboleh ubah untuk penyimpanan var cnt: integer var timeCnt: integer = 0
Setelah menghasilkan kod C ++, acara dalam acara mesti diturunkan dan disambungkan ke antara muka. Coretan kod ini menunjukkan cara melakukannya.
Pada mulanya, butang akan ditentukan:
# tentukan TIADA 0 # tentukan PILIH 1 # tentukan KIRI 2 # tentukan BAWAH 3 # tentukan NAIK 4 # tentukan KANAN 5
Kemudian ada fungsi yang ditentukan untuk membaca butang. Nilainya mungkin berbeza-beza, bergantung pada pengeluar LCD Shield.
statik int readButton () {int hasil = 0; hasil = analogRead (0); jika (hasil <50) {kembali KANAN; } jika (hasil <150) {kembali ke atas; } jika (hasil <300) {kembali KE BAWAH; } jika (hasil <550) {kembali KIRI; } jika (hasil <850) {kembali PILIH; } kembali TIADA; }
Pada akhirnya, butang akan dibongkar. Saya memperoleh keputusan yang baik dengan 80 ms. Setelah butang dilepaskan, ia akan menaikkan yang sesuai sekiranya berlaku.
int oldState = TIADA; kenaikan kekosongan statik Peristiwa () {int butang Ditekan = readButton (); kelewatan (80); oldState = butang Ditekan; if (oldState! = NONE && readButton () == TIADA) {switch (oldState) {case SELECT: {stateMachine-> raise_select (); rehat; } kes KIRI: {stateMachine-> raise_left (); rehat; } kes KE BAWAH: {stateMachine-> raise_down (); rehat; } kes UP: {stateMachine-> raise_up (); rehat; } kes KANAN: {stateMachine-> raise_right (); rehat; } lalai: {rehat; }}}}
Langkah 4: Kawalan HMI
Setiap keadaan digunakan untuk satu bahagian menu. Terdapat sub-keadaan, di mana aplikasi - misalnya jam randik - akan dijalankan.
Dengan reka bentuk ini, antara muka dapat dikembangkan dengan mudah. Menu tambahan boleh ditambah dengan menggunakan corak reka bentuk yang sama. Membaca nilai sensor dan memaparkannya dalam item menu keempat bukanlah masalah besar.
Buat masa ini, hanya kiri dan kanan digunakan sebagai kawalan. Tetapi naik dan turun juga dapat digunakan sebagai pelanjutan navigasi di menu utama. Hanya butang pilih yang akan digunakan untuk memasukkan item menu tertentu.
Langkah 5: Mengendalikan Negeri
Menu pegangan hanya digunakan sebagai contoh navigasi lebih lanjut. Menggunakan atas, bawah, kanan atau kiri membolehkan pertukaran antara keadaan. Keadaan semasa akan selalu dicetak pada baris kedua pada Paparan LCD.
Langkah 6: Jam randik
Jam randik cukup mudah. Pada mulanya, nilai pemasa akan ditetapkan semula. Pemasa boleh dimulakan dengan menggunakan butang kiri dan beralih dengan menggunakan kiri dan kanan. Menggunakan atas atau bawah menetapkan semula pemasa. Pemasa juga dapat diatur kembali ke nol dengan menggunakan tombol pilih dua kali - meninggalkan menu dan memasukkannya sekali lagi, kerana pemasa akan ditetapkan ke nol dengan awalnya memasuki jam randik.
Langkah 7: Kaunter
Paling tidak, ada kaunter yang dilaksanakan. Memasuki keadaan kaunter menetapkan semula kaunter. Ini dapat dimulai dengan menggunakan tombol tekan apa pun, kecuali tombol pilih. Ini dilaksanakan sebagai penghitung atas / bawah sederhana, yang nilainya tidak boleh lebih kecil dari 0.
Langkah 8: Simulasi
Langkah 9: Dapatkan Contohnya
Anda boleh memuat turun IDE di sini: YAKINDU Statechart Tools
Sebaik sahaja anda memuat turun IDE, anda akan mendapat contoh melalui Fail -> N ew -> Contoh
Percuma digunakan untuk penggemar, tetapi anda juga boleh menggunakan percubaan 30 hari.
Disyorkan:
Mesin Pengundian Biometrik Berasaskan Jari Menggunakan Arduino: 4 Langkah (dengan Gambar)
Mesin Pengundian Biometrik Berasaskan Jari Menggunakan Arduino: Kita semua menyedari mesin pengundian elektronik yang ada di mana pengguna harus menekan butang untuk memberikan suara. Tetapi mesin ini telah dikritik kerana marah sejak awal. Oleh itu, pemerintah merancang untuk memperkenalkan cap jari
Mesin LEVITASI ULTRASONIK Menggunakan ARDUINO: 8 Langkah (dengan Gambar)
Mesin LEVITASI ULTRASONIK Menggunakan ARDUINO: Sangat menarik untuk melihat sesuatu yang terapung di udara atau ruang bebas seperti kapal angkasa asing. itulah sebenarnya projek anti-graviti. Objek (pada dasarnya sekeping kertas kecil atau termokol) diletakkan di antara dua trans ultrasonik
Robot Arduino Otto Dengan Mesin Negeri: 4 Langkah
Arduino Otto Robot With State Machine: Gambaran Keseluruhan ProjekDalam projek ini, saya ingin menunjukkan cara untuk memprogram Otto Robot, yang merupakan robot DIY berasaskan Arduino. Dengan menggunakan YAKINDU Statechart Tools (percuma untuk bukan komersial) kita dapat dengan mudah menggunakan mesin negara untuk memodelkan tingkah laku secara
Mesin Negeri di Arduino - Lampu Lalu Lintas Pejalan Kaki: 6 Langkah (dengan Gambar)
State Machine on Arduino - Lampu Lalu Lintas Pejalan Kaki: Hai! Saya akan menunjukkan kepada anda cara memprogram lampu isyarat pejalan kaki untuk Arduino di C ++ dengan mesin keadaan terhingga dengan menggunakan YAKINDU Statechart Tools. Ini akan menunjukkan kehebatan mesin negara dan dapat digunakan sebagai cetak biru untuk
Arduino PLC 32 I / O + Mesin Negeri + SCADA atau HMI: 8 Langkah
Arduino PLC 32 I / O + State Machine + SCADA atau HMI: Banyak cara untuk memprogram, mengawal dan mengawasi sistem industri dengan arduino