Daftar Isi:
- Langkah 1: Yang Anda Butuhkan…
- Langkah 2: Menyolder Papan
- Langkah 3: Menyiapkan Arduino
- Langkah 4: Menyiapkan Python
- Langkah 5: Dimana Keajaiban Terjadi
Video: Servodriver-Board Dengan Python-GUI dan Arduino: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Saat melakukan prototyping atau membangun model pesawat terbang, Anda sering menemukan masalah, bahwa Anda harus memeriksa perjalanan servo atau mengatur servos ke posisi tengah.
Jika Anda tidak ingin membangun seluruh sistem atau pengujian RC Anda, seberapa jauh Anda dapat mendorong servo atau di mana posisi tengahnya, maka papan ini cocok untuk Anda! Hal ini memungkinkan Anda untuk memindahkan servo ke posisi tertentu atau mari kita melakukan perjalanan bolak-balik.
Ini bekerja dengan sangat baik, bahkan dengan 6 servos yang berpacu dari satu posisi ke posisi lain dalam loop.
Juga, ini adalah proyek yang bagus untuk belajar tentang komunikasi antara Python-GUI dan Arduino menggunakan Serial.
Langkah 1: Yang Anda Butuhkan…
Untuk proyek ini, Anda memerlukan yang berikut:
Perangkat keras
- Arduino nano dengan kabel. Saya menggunakan klon, dan kode Python sebenarnya mengharapkan chip CH340 dari klon
- Sebuah papan prototipe. 7x5cm cukup
- Beberapa header dan pin 2, 54mm
- 1-6 servo
- Catu daya untuk servos (saya menggunakan baterai dengan 4 baterai)
Perangkat lunak
- Python 3:
- USB-Driver untuk CH340-chip: Hanya google untuk driver untuk driver CH340
- Arduino IDE:
Langkah 2: Menyolder Papan
Penyolderan sebenarnya lurus ke depan sesuai dengan Fritzing pada gambar. Pastikan saja, bahwa Anda dapat menghubungkan servos dengan mudah ke 3-pin-baris.
- 3-pin-baris terpasang ke pin digital 3, 5, 6, 9, 10 dan 11 dari Arduino nano.
- Kabel merah terpasang ke pin 5V Arduino
- Kabel hitam terhubung ke pin GND Arduino
- Sepasang pin di bawah 3-pin-baris dimaksudkan untuk memasang catu daya penerima RC biasa, Anda dapat menambahkan konektor sesuka Anda, seperti terminal sekrup, Konektor XT, JST atau… atau…
Secara pribadi, saya suka deretan header wanita untuk memasang Arduino, tapi itu terserah Anda.
Harap dicatat, bahwa header perempuan korsleting adalah jumper, yang memungkinkan Anda memasok servo menggunakan sumber 5V Arduino untuk tujuan pengujian. Jika Anda terlalu memaksakannya, Arduino akan mengatur ulang dan kehilangan kecepatan yang tepat. Mereka HARUS dilepas, sebelum memasang catu daya lain.
Langkah 3: Menyiapkan Arduino
Instal Arduino IDE dan flash Arduino nano dengan sketsa terlampir.
Langkah 4: Menyiapkan Python
Instal Python 3 setelah Mengunduhnya. Pastikan untuk mencentang opsi untuk membuat variabel "PATH".
Anda perlu menginstal dua paket lagi menggunakan pip. Untuk itu, tekan tombol "Windows", ketik "cmd" dan tekan "enter". Di command prompt ketik perintah berikut:
- pip instal serial
- piip instal pyserial
- pip instal tkinter
Seperti yang Anda lihat, saya memerlukan modul serial serta pyserial, yang kemungkinan besar bukan yang paling efisien, karena pyserial harus menggantikan serial. Namun demikian itu berhasil dan saya baru mulai belajar;).
Buka Python-Script di IDE dan jalankan, atau jalankan langsung dari terminal.
Di menu tarik-turun, Anda dapat memilih antara dua mode, "Langsung" dan "Ping Pong":
- Go Straight: Masukkan Posisi Servo dalam mikrodetik di kolom pertama dan tekan "Mulai" untuk membuat servo bergerak ke posisi yang ditentukan.
- Ping Pong: Masukkan batas bawah dan batas atas di kolom kedua dan ketiga. Itu adalah posisi bawah dan atas, di mana servo akan bolak-balik. Pada kolom "Waktu Ping Pong" Anda dapat menentukan waktu dalam milidetik, bahwa servo akan menunggu ketika telah mencapai posisi atas atau bawah. Tekan "Mulai" dan servo akan mulai bergerak maju mundur, tekan "Berhenti" dan servo akan berhenti.
Langkah 5: Dimana Keajaiban Terjadi
Last but not least, saya ingin menunjukkan beberapa detail dalam kode untuk mereka yang ingin masuk ke sedikit komunikasi serial antara Python dan Arduino.
Sekarang, apa yang terjadi dalam program Python?
Pertama-tama, program memeriksa, apa yang dilampirkan ke port COM di baris ini dan menyimpannya ke daftar:
self. COMPortsList = daftar(serial.tools.list_ports.comports())
Kemudian loop melalui daftar sampai menemukan chip CH340 yang terkenal, menyimpannya dan kemudian membuat koneksi serial setelah for-loop. Perhatikan, bahwa for-loop putus segera setelah CH340 pertama ditemukan.
untuk p di self. COMPortsList: if "CH340" di p[1]: # Mencari Arduino Clone self. COMPort = p[0] break else: pass self. Ser = serial. Serial(self. COMPort, 57600)
Koneksi serial dibuat dengan port COM dengan baudrate 57600.
Dan apa yang dilakukan kode Arduino? Nah, karena Arduino hanya memiliki satu COM-Port, koneksi serial hanya satu baris:
Serial.begin(57600);
Sekarang, kita dapat menggunakan kedua port untuk berkomunikasi. Dalam hal ini, hanya pesan dari Python ke Arduino. Pesan dikirim ke sini dari Python. Koneksi serial mentransmisikan byte sebagai default. Itu juga cara pengiriman data tercepat dan sejauh yang saya tahu juga masih cukup luas. Jadi int untuk jumlah servo (agar Arduino tahu servo mana yang harus dipindahkan) dan posisi dalam mikrodetik diubah menjadi byte.
Command = struct.pack('>B', self. Place) # Variabel int "self. Place" diubah menjadi byte
self. Ser.write(Command) # Menulis byte pada Serial-Port Command = int(self. ServoPos.get())//10 # Membaca Input dari field dan mengaktifkan int Command = struct.pack(' >B', Command) # Mengubah int menjadi byte self. Ser.write(Command) # Menulis byte pada Serial-Port
Juga, penguraian data membutuhkan waktu (misalnya menafsirkan empat byte "1", "2", "3" dan "0" sebagai int 1230, bukan sebagai empat karakter yang berbeda) dan lebih baik melakukannya bukan di Arduino.
Di sisi Arduino, informasi yang dikirim diambil sebagai berikut:
if(Serial.available()>1){ // Jika data serial tersedia, maka loop dimasukkan c = Serial.read(); // Byte pertama (jumlah servo) disimpan ke variabel Micros = Serial.read(); // Posisi servo disimpan disini Micros = Micros * 10; }
Direkomendasikan:
Pengenalan dan Identifikasi Wajah - ID Wajah Arduino Menggunakan OpenCV Python dan Arduino.: 6 Langkah
Pengenalan dan Identifikasi Wajah | ID Wajah Arduino Menggunakan OpenCV Python dan Arduino.: Pengenalan wajah AKA ID wajah adalah salah satu fitur terpenting di ponsel saat ini. Jadi, saya punya pertanyaan "bisakah saya memiliki id wajah untuk proyek Arduino saya" dan jawabannya adalah ya… Perjalanan saya dimulai sebagai berikut: Langkah 1: Akses ke kami
Kontrol Akses Arduino YÚN Dengan MySQL, PHP5 dan Python: 11 Langkah (dengan Gambar)
Kontrol Akses Arduino YÚN Dengan MySQL, PHP5 dan Python: Halo Teman! Seperti yang Anda ketahui, pada bulan September perisai perdana baru Arduino, Arduino YUN. Teman kecil ini memiliki sistem tertanam Linux yang dengannya kami dapat menjalankan apa pun yang dapat Anda pikirkan (setidaknya sejauh ini). Meskipun sangat sedikit informasi
8 Kontrol Relay Dengan NodeMCU dan Penerima IR Menggunakan WiFi dan IR Remote dan Aplikasi Android: 5 Langkah (dengan Gambar)
8 Kontrol Relay Dengan NodeMCU dan Penerima IR Menggunakan WiFi dan IR Remote dan Aplikasi Android: Mengontrol 8 sakelar relai menggunakan nodemcu dan penerima ir melalui wifi dan ir remote dan aplikasi android.Remote ir bekerja terlepas dari koneksi wifi.INI VERSI TERBARU KLIK DI SINI
Tampilan Suhu dan Kelembaban dan Pengumpulan Data Dengan Arduino dan Pemrosesan: 13 Langkah (dengan Gambar)
Tampilan Suhu dan Kelembaban dan Pengumpulan Data Dengan Arduino dan Pemrosesan: Pendahuluan: Ini adalah Proyek yang menggunakan papan Arduino, Sensor (DHT11), komputer Windows dan program Pemrosesan (dapat diunduh gratis) untuk menampilkan data Suhu, Kelembaban dalam format digital dan bentuk grafik batang, menampilkan waktu dan tanggal dan menjalankan hitungan waktu
SENSOR SUHU DENGAN LCD DAN LED (Membuat Sensor Suhu Dengan LCD dan LED): 6 Langkah (Dengan Gambar)
SENSOR SUHU DENGAN LCD DAN LED (Membuat Sensor Suhu Dengan LCD dan LED): hai, saya Devi Rivaldi mahasiswa UNIVERSITAS NUSA PUTRA dari Indonesia, di sini saya akan berbagi cara membuat sensor suhu menggunakan Arduino dengan Output ke LCD dan LED. Ini adalah pembaca suhu dengan desain saya sendiri, dengan sensor ini dan