Daftar Isi:

UCL Embedded - B0B Linefollower: 9 Langkah
UCL Embedded - B0B Linefollower: 9 Langkah

Video: UCL Embedded - B0B Linefollower: 9 Langkah

Video: UCL Embedded - B0B Linefollower: 9 Langkah
Video: George Hotz | to organize the world's information | Science & Technology 2024, Juli
Anonim
UCL Tertanam - B0B Pengikut Garis
UCL Tertanam - B0B Pengikut Garis

Ini B0B.*

B0B adalah mobil Radio Controlled generik, untuk sementara melayani dasar robot pengikut garis.

Seperti banyak robot Pengikut Garis sebelumnya, dia akan melakukan yang terbaik untuk tetap berada di garis yang disebabkan oleh transisi antara lantai dan bahan yang kontras, dalam kasus kami lakban.

Tidak seperti robot Line-following lainnya, B0B juga mengumpulkan data dan mengirimkannya melalui WiFi.

Benar-benar berlebihan untuk proyek hobi, itu memang melibatkan sejumlah subjek yang mungkin Anda anggap menarik. Panduan ini menjelaskan kelahirannya, fungsinya dan bagaimana Anda bisa membuatnya seperti dia.

Ini juga melibatkan kemarahan pada berbagai elektronik karena tidak berfungsi seperti yang kami inginkan, dan langkah-langkah yang kami ambil untuk mengatasi kesulitan itu, (Saya melihat Anda ESP 8266-01).

Ada 2 kode untuk membuat proyek bekerja. Kode pertama untuk modul ESP8266 yang kita gunakan Arduino sebagai programmer, dan kode kedua akan dijalankan di Arduino.

Langkah 1: Komponen

Untuk proyek ini Anda akan membutuhkan:

Perangkat keras:

• 1x mobil radio controller, (harus ada ESC dan steering servo).

Kami menggunakan sebagian besar stok Traxxas 1/16 E-Revo VXL, sebagian besar karena itulah yang kami miliki, dan cukup yakin bahwa kami dapat mengontrolnya dengan Arduino. Juga karena pada akhirnya akan membawa perangkat keras tambahan dalam jumlah yang tidak signifikan, kami yakin ini tidak akan menjadi masalah untuk 1/16 E-Revo.

Namun, sebagian besar mobil yang dikendalikan radio (yang dapat dengan mudah dibongkar) mungkin dapat digunakan sebagai gantinya, dan prosesnya akan sangat mirip.

• Satu ton lakban.

Warnanya harus kontras dengan lantai sebanyak mungkin. Di lingkungan pengujian kami, kami menggunakan selotip putih di lantai yang gelap.

• 1x Arduino Mega 2560.

Arduino yang lebih kecil mungkin juga baik-baik saja, tetapi Anda akan terdesak pin.

• 1x papan roti ukuran besar.

Satu sudah cukup, tetapi kami juga memiliki yang lebih kecil untuk memisahkan saluran listrik tegangan lainnya untuk mengurangi risiko kesalahan pengguna.

• 1x TCRT5000 IR analog sensor (digunakan untuk menghindari tabrakan).

Merek/model yang tepat tidak masalah apakah itu kompatibel dengan Arduino dan mengukur jarak. Cari kata kunci seperti sensor “Jarak”, “halangan”. Secara teknis sensor digital akan bekerja dengan baik dengan perubahan kode kecil, tetapi kami menggunakan yang analog.

• Gravitasi 1x atau 2x: Sensor Skala Abu-abu Analog v2

Salah satunya adalah kebutuhan line follower. Model yang tepat tidak masalah, selama melihat intensitas cahaya yang dipantulkan dan mengeluarkan sinyal analog. Deteksi 'ruangan' kedua tidak berfungsi sebaik yang diharapkan dan dapat dihilangkan, atau alternatif, seperti sensor warna RGB dapat ditemukan, mungkin untuk efek yang lebih baik. Kami belum menguji ini.

• 1x ESP 8266-01.

Ada banyak versi ESP 8266 yang tersedia. Kami hanya memiliki pengalaman dengan 8266-01, dan tidak dapat menjamin kode ESP akan bekerja dengan versi yang berbeda.

• 1 x pelindung Wi-Fi ESP8266-01.

Secara teknis opsional, tetapi jika Anda tidak menggunakan ini, semua yang melibatkan modul Wi-Fi akan menjadi jauh lebih rumit. Panduan, bagaimanapun, akan menganggap Anda memiliki ini, (jika tidak, temukan panduan online untuk memasang ESP-01 dengan benar ke Arduino), karena melakukan ini secara tidak benar dapat dan mungkin akan merusak modul.

• Baterai untuk kendaraan itu sendiri dan baterai untuk menyalakan perangkat elektronik tambahan.

Kami menggunakan sepasang baterai berkapasitas 2,2 AH, baterai Lipo 7,4V secara paralel untuk memberi daya pada semuanya. Anda harus dapat menggunakan baterai apa pun yang biasanya Anda gunakan dengan kendaraan pilihan Anda. Jika Anda berada di atas 5V tetapi di bawah 20V, kapasitas lebih penting daripada tegangan nominal.

• Banyak kabel jumper.

Saya sudah menyerah menghitung jumlah pasti ini. Jika Anda pikir Anda sudah cukup, Anda mungkin tidak.

• Terakhir, untuk memasang semuanya, Anda perlu memasang Arduino, sensor, papan tempat memotong roti, dan modul Wi-Fi ke kendaraan pilihan Anda. Hasil Anda akan bervariasi tergantung pada apa yang Anda gunakan sebagai alas, dan bahan apa yang tersedia.

Kami menggunakan:

• ikatan zip.

• Beberapa lem super.

• Potongan-potongan kecil kertas bekas/tabung resin yang kami miliki dengan diameter yang sesuai.

• Pelat belakang Masonite tua dari bingkai foto, dipotong sesuai ukuran.

• Sedikit lebih banyak lakban.

• Alat apa pun yang diperlukan untuk bekerja pada mobil pilihan Anda yang dikendalikan radio.

Kami kebanyakan menggunakan set obeng kecil dengan banyak bit, tetapi kadang-kadang harus mengeluarkan set peralatan bawaan yang disertakan dengan mobil.

Perangkat lunak:

• Node-merah

Bagian penting dari pengumpulan data.

• Sebuah server MQTT.

Orang tengah antara kendaraan kami dan Node-red. Awalnya, untuk pengujian, kami menggunakan test.mosquitto.org

Kemudian kami menggunakan:

• CloudMQTT.com

Ini jauh lebih andal yang lebih dari sekadar dibuat karena sedikit lebih rumit untuk diatur.

• Server Wamp.

Bagian terakhir dari pengumpulan data. Secara khusus, kami akan menggunakan database SQL-nya untuk menyimpan data yang kami kumpulkan.

Langkah 2: Diagram Listrik

Diagram listrik
Diagram listrik

Langkah 3: Konstruksi Fisik

Konstruksi Fisik
Konstruksi Fisik
Konstruksi Fisik
Konstruksi Fisik
Konstruksi Fisik
Konstruksi Fisik

Solusi kami memiliki pendekatan langsung ke perakitan fisik.

Penerima asli dan penutup kedap airnya telah dilepas dari mobil RC, karena tidak diperlukan.

Kami menemukan bahwa ada satu lokasi yang cocok di antara roda depan untuk sensor line follow kami, jadi kami menahannya di tempatnya dengan memasang ritsleting di atas skid plate depan.

Sensor yang kami gunakan untuk anti-tabrakan semacam terjepit di belakang bumper depan. Itu masih terlindung dari benturan, dan gesekannya pas. Itu akhirnya melihat ke depan pada sudut ke atas yang sangat sedikit. Ini sempurna.

Pelat Masonite, (pelat belakang dari bingkai foto lama), di bagian atas memiliki bagian kecil dari kertas/pipa resin yang dipotong sesuai ukuran dan direkatkan ke bagian bawah. Ini sejajar dengan dudukan untuk tiang bodi dan hanya duduk di atasnya, memegang semuanya dengan aman. Dengan asumsi lem yang menempelkan pipa ke pelat menahan, dan tidak terlalu miring, ini akan tetap di tempatnya. Perlu juga dicatat bahwa pelat berada di dalam lingkup pelindung roda dan bemper. Arduino Mega dan dua papan tempat memotong roti telah ditempelkan ke piring dengan selotip dua sisi, atau dengan selotip yang dilingkarkan, direkatkan.

Tidak ada tindakan khusus yang diambil untuk mengamankan modul WiFi. Itu bukan milik kita, jadi menempelkannya, atau menempelkannya dianggap tidak perlu karena sangat ringan sehingga tidak akan banyak bergerak, dan kabelnya cukup untuk menahannya di tempatnya.

Terakhir, kami memiliki sensor untuk mendeteksi 'ruangan' yang dipasangkan pada komponen suspensi oleh salah satu roda belakang. Selama pengoperasian, ini harus jauh dari garis penanda yang digunakan kendaraan untuk bernavigasi.

Langkah 4: Modul ESP8266

Modul ESP8266
Modul ESP8266
Modul ESP8266
Modul ESP8266

Modul WiFi, ESP8266, membutuhkan dua pengaturan pin yang berbeda. Salah satu pengaturan yang akan digunakan saat mem-flash modul dengan program baru dan menggunakan Arduino Mega 2560 sebagai programmer. Pengaturan lainnya adalah untuk modul saat sedang digunakan dan mengirimkan informasi ke Broker MQTT.

Menggunakan Arduino IDE untuk mengunggah kode ke modul ESP8266, Anda perlu menginstal pengelola papan dan pengelola papan tambahan

Di bawah board manager, instal board manager esp8266. Ini akan mudah ditemukan dengan mencari "esp". Sangat penting Anda menginstal versi 2.5.0, bukan yang lebih lama, bukan yang lebih baru.

Di bawah pengaturan di URL pengelola papan tambahan, salin di baris ini:

arduino.esp8266.com/stable/package_esp8266c…

Untuk dapat mengunggah apa pun ke modul ESP8266, Anda perlu menggunakan pengaturan pin tertentu sehingga Anda dapat mem-flash modul. Ini perlu dilakukan setiap kali Anda ingin membuat perubahan pada kode saat ini yang berjalan pada modul. Jangan lupa untuk memilih modul ESP8266 yang benar dari board manager sebelum menginstal modul. Dalam proyek ini kami memilih papan ESP8266 generik. Pengaturan pin untuk mem-flash modul terdapat pada gambar pertama di segmen ini.

Setelah menginstal modul ESP8266, Anda perlu mengganti pengaturan pin. Anda juga dapat memilih untuk menggunakan adaptor untuk membuat pengaturan lebih mudah bagi Anda. Dalam proyek ini kami memilih untuk memiliki adaptor setiap kali kami menjalankan modul. Pengaturan pin dengan adaptor terdapat pada gambar kedua di segmen ini.

Kode yang akan di-flash ke modul ESP8266 mengatur koneksi ke WiFi dan Broker MQTT, dalam hal ini dengan nama pengguna dan kata sandi, tetapi dapat dilakukan tanpa jika Anda membuat perubahan yang diperlukan yang dijelaskan dalam komentar kode. Untuk proyek ini, Pialang kami memerlukan nama pengguna dan kata sandi agar berfungsi. Modul membaca pesan masuk dari port serial yang terhubung dengannya. Ini akan membaca setiap baris baru yang dibuat oleh kode Arduino, menguraikan pesan dan membuat ulang pesan. Setelah itu mengirimkan pesan ke MQTT Broker yang telah ditentukan dalam kode. Kode untuk Modul ESP8266:

Langkah 5: Arduino

Setelah mengkonfigurasi modul WiFi, kita melihat program yang akan digunakan untuk mengendalikan motor dan servo pada mobil RC. Mobil akan bereaksi menurut informasi skala abu-abu dari sensor pusat, juga dikenal sebagai "Line Detector" dalam proyek ini. Jelas ini bertujuan untuk menjaga informasi dari Detektor Garis mendekati nilai preset yang sama dengan informasi yang direkam pada perubahan antara terang dan gelap atau dalam proyek ini, putih dan hitam. Jadi jika nilainya berbeda terlalu jauh, output yang sesuai ke servo akan mengarahkan mobil mendekati nilai preset garis.

Program ini memiliki dua tombol yang berfungsi sebagai tombol start dan stop untuk mobil RC. Secara teknis tombol "stop" adalah tombol "mempersenjatai" yang secara istilah sama dengan nilai PWM yang dikirim ke motor yang menyebabkan mobil RC berhenti. Tombol start mengirimkan nilai PWM yang sama dengan mobil RC yang hampir tidak bergerak maju karena akan melaju terlalu cepat jika mendapatkan terlalu banyak momentum.

Detektor penghindaran tabrakan ditambahkan ke bagian depan mobil RC untuk mendeteksi apakah jalan di depan bersih atau terhalang. Jika terhalang mobil RC akan berhenti sampai rintangan hilang/dihilangkan. Sinyal analog dari detektor digunakan untuk menentukan ada atau tidaknya sesuatu yang menghalangi jalan dan dijadikan kriteria untuk dapat bergerak maju maupun terhenti.

Sensor skala abu-abu sekunder, "Detektor Ruangan", digunakan untuk mendeteksi ruangan mana yang telah dimasuki mobil RC. Ia bekerja pada prinsip yang sama seperti Line Detector, tetapi tidak mencari perubahan antara terang dan gelap, melainkan untuk nilai-nilai dalam rentang tertentu yang sesuai dengan ruangan yang berbeda tergantung pada nilai yang terlihat dari Detektor Ruangan.

Terakhir, program membuat sederet informasi dari sensor untuk dibaca oleh modul WiFi dan kemudian dikirim ke MQTT Broker. Baris informasi dibuat sebagai string dan ditulis ke serial yang sesuai di mana modul WiFi terhubung. Penting bahwa penulisan ke serial hanya terjadi sesering modul WiFi dapat membaca pesan yang masuk, tetapi ingat untuk tidak menggunakan penundaan dalam kode ini karena akan mengganggu kemampuan mobil RC untuk mengikuti garis. Alih-alih gunakan "milis" karena itu akan memungkinkan program untuk berjalan tanpa penundaan tetapi setelah jumlah mili yang ditentukan berlalu sejak Arduino dihidupkan, akan menulis pesan ke serial tanpa memblokir kode dengan cara yang sama seperti penundaan.

Kode untuk Arduino Mega 2560:

Langkah 6: Basis Data MySQL

WampServer adalah lingkungan pengembangan web untuk Windows yang memungkinkan kita membuat aplikasi dengan PHP dan database MySQL. PhpMyAdmin memungkinkan kita untuk mengelola database kita dengan cara yang mudah.

Untuk memulai, kunjungi:

Dalam proyek ini kami menggunakan versi 3.17 x64 bit untuk Windows. Setelah instalasi pastikan semua layanan berjalan yang artinya ikon kecil berubah menjadi hijau, bukan merah atau oranye. Jika ikonnya berwarna hijau, maka Anda dapat mengakses PhpMyAdmin untuk mengelola database MySQL Anda.

Akses MySQL menggunakan PhpMyAdmin dan buat database baru. Beri nama sesuatu yang sesuai yang dapat Anda ingat, dalam proyek ini disebut "line_follow_log". Setelah membuat database, Anda harus membuat tabel di database. Pastikan jumlah kolom pas. Dalam proyek kami menggunakan 4 kolom. Satu kolom untuk stempel waktu dan tiga kolom terakhir digunakan untuk menyimpan data dari kendaraan. Gunakan tipe data yang tepat untuk setiap kolom. Kami menggunakan "teks panjang" untuk kolom cap waktu dan "teks menengah" untuk sisanya.

Itu saja yang harus Anda lakukan di PhpMyAdmin dan MySQL. Ingat database Anda dan tabel untuk bagian tentang Node-Red.

Langkah 7: Node-Merah

Untuk menangani pengumpulan data, kita akan menggunakan aliran yang cukup sederhana di Node-red. Ini terhubung ke server MQTT kami, dan menulis ke database MYSQL kami.

Untuk melakukan ini, kita memerlukan beberapa palet agar berbagai fungsi berfungsi, dan kita memerlukan beberapa kode aktual untuk menjalankannya.

Hal pertama yang pertama. Kami akan membutuhkan palet berikut.

Node-red-contrib-mqtt-broker: Ini adalah koneksi ke broker MQTT kami.

Node-red-dashboard: Dasbor kami, diperlukan untuk merepresentasikan data yang dikumpulkan secara visual.

Node-red-node-mysql: Koneksi kita ke database SQL.

Ini tidak dimaksudkan sebagai panduan lengkap untuk Node-red, tetapi saya akan menjelaskan apa yang dilakukan oleh aliran Node-red.

Awalnya, kami memiliki masalah dengan server pilihan MQTT kami yang mati/terputus, tampaknya secara acak, yang membuat melakukan perubahan apa pun menjadi upaya yang membuat frustrasi karena tidak jelas apakah perubahan itu bermanfaat, atau tidak ketika kami tidak dapat melihat hasilnya. Jadi tombol 'Apakah server mati?' menyuntikkan 'Tidak' blok berikut menyuntikkan ke server MQTT kami. Jika tidak mati, 'Tidak' akan muncul di jendela Debug. Ini dilakukan tidak hanya untuk menguji, tetapi untuk memaksa Node-red untuk mencoba menyambung kembali ke server MQTT.

'Test string' mengirimkan string costum ke broker MQTT. Kami memformat string ini agar mirip dengan apa yang akan kami dapatkan dari Arduino. Ini untuk lebih mudah mengonfigurasi jaringan yang menerjemahkan pesan, tanpa perlu menjalankan proyek, mengumpulkan data.

Aliran terakhir di ruang kerja dapat dibagi menjadi dua segmen. Cabang bawah hanya membaca pesan masuk, mempostingnya ke jendela debug dan menyimpannya ke server SQL.

Jaringan besar sakelar yang terhubung mengikuti simpul fungsi jika di mana 'keajaiban' yang sebenarnya terjadi.

Fungsi melanjutkan membaca string yang masuk, membaginya dengan setiap titik koma dan melewati bagian pada setiap output. Sakelar berikut mencari salah satu dari dua informasi masuk yang berbeda. Satu bagian informasi tertentu selalu dilewatkan dari satu keluaran, opsi lainnya keluar dari keluaran kedua. Setelah itu, adalah kelompok kedua dari blok sakelar. Mereka hanya akan aktif dengan satu input tertentu, dan mengeluarkan sesuatu yang lain.

Sebuah contoh, 'hambatan', seperti yang lainnya adalah pilihan biner, apakah jelas untuk dikendarai, atau tidak. Jadi akan menerima 0, atau 1. A 0 akan dikirim ke 'clear' cabang, 1 akan dikirim ke 'Obstructed' cabang. Sakelar 'Hapus', 'Terhalang', jika diaktifkan masing-masing akan menampilkan sesuatu yang spesifik, Jelas, atau terhalang. Blok melanjutkan hijau akan diposting di jendela debug, biru akan menulis ke dasbor kami.

Cabang 'status' dan 'lokasi' bekerja persis sama.

Langkah 8: Pialang MQTT

Broker adalah server yang merutekan pesan dari klien ke klien tujuan yang sesuai. Broker MQTT adalah salah satu tempat klien menggunakan Perpustakaan MQTT untuk terhubung ke broker melalui jaringan.

Untuk proyek ini kami membuat Pialang MQTT menggunakan layanan CloudMQTT dengan langganan gratis untuk versi "Kucing Lucu". Ini memiliki batasan tetapi kami tidak melebihi yang ada di proyek ini. Modul WiFi dapat terhubung ke broker dan broker kemudian merutekan pesan ke klien tujuan yang sesuai. Dalam hal ini klien kami adalah Node-Red. Layanan CloudMQTT mengatur nama pengguna dan kata sandi untuk server mereka, jadi kami dijamin keamanan yang lebih tinggi. Pada dasarnya berarti hanya mereka yang memiliki nama pengguna dan kata sandi yang dapat mengakses layanan CloudMQTT khusus ini. Nama pengguna dan kata sandi sangat penting saat mengatur koneksi pada kode ESP8266 serta Node-Red.

Statistik berkelanjutan untuk pesan yang diterima Broker adalah fitur yang menyenangkan, yang dapat digunakan untuk melihat seberapa baik paket langganan Anda menangani informasi yang dirutekannya.

Fitur yang bagus adalah kemungkinan untuk mengirim pesan dari Broker ke modul WiFi tetapi kami tidak menggunakannya dalam proyek ini.

Langkah 9: Hobi Elektronik

Sebelum memulai, kami tahu dari proyek sebelumnya bahwa servo kemudi stok dapat dikontrol dari Arduino dengan sinyal PWM, memiliki kabel yang sama, dan menghubungkannya ke saluran yang berbeda pada penerima radio stok yang sama, kami mengasumsikan Kontrol Kecepatan Elektronik, (ESC dari sekarang), yang mengontrol motor, juga dapat dikontrol melalui PWM dari Arduino.

Untuk menguji teori ini, kami memasang sketsa Arduino kecil. Sketsa membaca input analog dari potensiometer, memetakan kembali nilai dari 0, 1024 ke 0, 255 dan mengeluarkan nilai yang dihasilkan ke pin PWM, menggunakan analogWrite() sementara memiliki mobil R/C pada kotak kecil, dan memiliki roda dilepas.

Setelah menyapu kisaran pada meteran pot, ESC tampaknya 'bangun' dan kami dapat mencekiknya ke atas dan ke bawah, kami juga meminta Arduino mencetak nilai ke koneksi serial sehingga kami dapat memantaunya.

ESC sepertinya tidak menyukai nilai di bawah ambang batas tertentu, dalam hal ini 128. Ia melihat sinyal 191 sebagai throttle netral, dan 255 adalah throttle maksimum.

Kami tidak perlu memvariasikan kecepatan kendaraan dan melakukannya dengan sempurna pada kecepatan paling lambat yang akan membuatnya bergerak. 192 adalah nilai terendah yang akan menghidupkan motor, namun kami belum merakit semuanya dan tidak yakin apakah output ini akan cukup untuk menggerakkan kendaraan setelah perakitan akhir, namun memasukkan nilai yang sedikit lebih besar seharusnya sepele.

Namun, menghindari potensiometer dan memasukkan nilai tetap ke dalam kode, tidak berhasil. Stok ESC hanya berkedip dan tidak mau memutar motor, 'sesuaikan trim throttle' menurut manual.

Pemecahan masalah yang marah, melemparkan berbagai nilai padanya, menggunakan kabel yang berbeda, dan bahkan bereksperimen dengan mengubah frekuensi PWM yang digunakan Arduino semuanya menghasilkan lebih banyak keanehan.

Tampaknya menjadi masalah yang terputus-putus, kadang-kadang akan berjalan, di lain waktu menolak untuk melakukan apa pun. Itu hanya terus berkedip. Tes dengan pengontrol dan penerima asli mengkonfirmasi bahwa ESC masih bekerja persis seperti yang dimaksudkan, yang membuat masalah menjadi lebih aneh. Nilai yang lebih tinggi, diabaikan dan terus berkedip, nilai yang lebih rendah ESC kembali bersinar hijau bahagia, tetapi masih tidak berubah.

Apa yang berbeda dari pengaturan dengan potensiometer, atau pemancar dan penerima stok, dan versi yang memberikan nilai tetap?

Terkadang bekerja seperti yang diharapkan dan bekerja seperti yang diharapkan tidak terlalu tumpang tindih pada diagram Venn. Dalam hal ini, sebagai mainan, seharusnya tidak ada kemungkinan model hanya melepas atau mematahkan jari atau membuat rambut tersangkut di roda atau drive train saat model menyala, bahkan jika sesuatu seperti memegang pemancar dengan aneh memiliki throttle di posisi lain selain netral.

'Sesuaikan trim throttle', itulah artinya. ESC mengharapkan sinyal netral ketika dihidupkan, sebelum mendapatkan bahwa itu tidak akan melakukan apa-apa. Biasanya pemancar akan selalu dalam posisi netral ketika ESC dihidupkan dan dari sana akan dengan senang hati mengemudi. Jika tidak, itu mungkin kembali ke netral setidaknya sekali pada saat model benar-benar di tanah dan operator merasa siap untuk balapan.

Saat menggunakan potensiometer, kami 'menyapu' melalui rentang, dan kemudian akan mulai bekerja. Itu hanya dipersenjatai saat potensiometer melewati posisi netral, dan kemudian bekerja.

Kisaran yang lebih rendah, namun tampaknya masih mengecewakan ESC. Ini ternyata adalah produk dari siklus tugas PWM.

Baik dengan desain atau dilakukan karena alasan teknis, servo kemudi dan ESC mengabaikan sinyal di bawah siklus kerja 50%. Ini bisa terjadi jika penerima/pemancar berhenti bekerja atau kehabisan daya, model akan kembali ke netral, dan tidak lepas landas ke jarak dengan throttle terbalik penuh. Sama, servo hanya berputar 180 derajat, dan tidak membutuhkan jangkauan penuh.

Dengan pengetahuan baru ini, sketsa Arduino baru telah dibuat. Versi awal menerima string yang dimasukkan ke monitor Serial, mengubahnya menjadi integer dan memindahkannya ke pin PWM, menggunakan perpustakaan servo dan write()*. Jika nilai baru dimasukkan di monitor serial, nilai write() akan diperbarui.

Selama pengujian, Traxxas ESC stok diganti dengan Mtroniks G2 Micro, namun keduanya harus bekerja sama, meskipun nilai pastinya mungkin sedikit berbeda.

Pustaka ini memperlakukan ESC sebagai servo, ini tampaknya baik-baik saja. Fungsi write() dari perpustakaan Servo.h berubah dari 0 hingga 180, sinyal mempersenjatai yang diharapkan diharapkan berada di sekitar tengah.

Lengan Mikro G2 pada write() dalam kisaran nilai mendekati 90 namun sulit untuk ditentukan karena tampaknya 'ingat' telah dipersenjatai.

Traxxas VXL-s3 diharapkan memiliki nilai write() 91.

Setelah sinyal mempersenjatai, baik ESC dengan senang hati menerima sinyal PWM, tidak peduli fungsi Arduino dipanggil untuk menghasilkannya, dan mengontrol motor sesuai dengan itu.

Berbicara tentang fungsi; analogWrite() standar, serta write() dan writeMicroseconds() dari perpustakaan Servo.h semuanya dapat digunakan secara bergantian, hanya perlu diingat apa yang melakukan apa, dan pada akhirnya tidak lain dari masalah siklus tugas. WriteMicroseconds() dapat digunakan jika perincian yang lebih besar diperlukan, perlu diingat bahwa kisaran di sini adalah dari 1000 hingga 2000, dengan mempersenjatai atau 'netral' diharapkan pada 1500. Dengan analogWrite() standar, kisaran yang dapat digunakan diharapkan menjadi 128-255 dengan sekitar 191 menjadi netral.

Direkomendasikan: