Isi kandungan:
- Langkah 1: Apa yang Anda Perlu …
- Langkah 2: Memateri Papan
- Langkah 3: Menyiapkan Arduino
- Langkah 4: Menyiapkan Python
- Langkah 5: Tempat Sihir Berlaku
Video: Servodriver-Board Dengan Python-GUI dan Arduino: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Semasa melakukan prototaip atau membina pesawat terbang model, anda sering menemui masalah, bahawa anda harus memeriksa perjalanan servo atau mengatur servo ke posisi pertengahan.
Sekiranya anda tidak mahu membina keseluruhan sistem RC atau ujian anda, sejauh mana anda boleh mendorong servo atau di mana kedudukan pertengahan, maka papan ini sesuai untuk anda! Ini membolehkan anda memindahkan servo ke kedudukan yang ditentukan atau mari kita pergi dan balik.
Ia berfungsi dengan baik, walaupun dengan 6 servo yang berlumba dari satu kedudukan ke kedudukan yang lain dalam satu pusingan.
Juga, ini adalah projek yang bagus untuk belajar mengenai komunikasi antara Python-GUI dan Arduino menggunakan Serial.
Langkah 1: Apa yang Anda Perlu …
Untuk projek ini, anda memerlukan perkara berikut:
Perkakasan
- Arduino nano dengan kabel. Saya menggunakan klon, dan kod Python sebenarnya menjangkakan CH340-chip klon
- Papan prototaip. 7x5cm sudah cukup
- Sebilangan kepala dan pin 2, 54mm
- 1-6 servos
- Bekalan kuasa untuk servos (saya menggunakan bateri dengan 4 bateri)
Perisian
- Python 3:
- Pemacu USB untuk cip CH340: Hanya google untuk pemacu untuk pemandu CH340
- Arduino IDE:
Langkah 2: Memateri Papan
Pematerian itu betul-betul lurus ke depan mengikut Fritzing pada gambar. Pastikan, anda boleh menghubungkan servo dengan mudah ke baris 3-pin.
- Baris 3-pin dilampirkan pada pin digital 3, 5, 6, 9, 10 dan 11 dari Arduino nano.
- Kawat merah dilekatkan pada pin 5V Arduino
- Kawat hitam disambungkan ke pin GND Arduino
- Pasangan pin di bawah baris 3-pin dimaksudkan untuk memasang bekalan kuasa penerima RC biasa, anda boleh menambahkan penyambung yang anda suka, seperti terminal skru, Penyambung XT, JST atau… atau…
Secara peribadi, saya suka barisan tajuk wanita memasukkan Arduino, tetapi itu terpulang kepada anda.
Harap diperhatikan, bahawa header wanita pendek adalah pelompat, yang membolehkan anda membekalkan servo menggunakan sumber 5V Arduino untuk tujuan ujian. Sekiranya anda terlalu kuat, Arduino akan menetapkan semula dan kehilangan langkah yang betul. Mereka HARUS dikeluarkan, sebelum memasang bekalan kuasa yang lain.
Langkah 3: Menyiapkan Arduino
Pasang Arduino IDE dan nyalakan Arduino nano dengan lakaran yang dilampirkan.
Langkah 4: Menyiapkan Python
Pasang Python 3 setelah memuat turunnya. Pastikan untuk memilih pilihan untuk membuat "PATH" -berubah.
Anda perlu memasang dua pakej lagi menggunakan pip. Untuk itu, tekan kekunci "Windows", ketik "cmd" dan tekan "enter". Dalam command prompt ketik perintah berikut:
- memasang siri pip
- piip pasang pyserial
- pip memasang tkinter
Seperti yang anda lihat, saya memerlukan modul bersiri dan juga pyserial, yang kemungkinan besar tidak paling berkesan, kerana pyserial harus menggantikan siri. Walaupun begitu ia berjaya dan saya baru mula belajar;).
Buka Skrip Python di IDE dan jalankan, atau jalankan terus dari terminal.
Dalam menu lungsur turun, anda boleh memilih antara dua mod, "Go Straight" dan "Ping Pong":
- Pergi Lurus: Masukkan Servo-Position dalam mikrodetik pada lajur pertama dan tekan "Mula" untuk membuat servo bergerak ke kedudukan yang ditentukan.
- Ping Pong: Masukkan sempadan bawah dan batas atas pada lajur kedua dan ketiga. Itu adalah kedudukan bawah dan atas, di mana servo akan kembali dan ke sana kemari. Dalam lajur "Waktu Ping Pong" anda dapat menentukan waktu dalam milisaat, bahawa servo akan menunggu ketika ia telah mencapai posisi atas atau bawah. Tekan "Mula" dan servo akan mula bergerak mundur, tekan "Stop" dan servo akan berhenti.
Langkah 5: Tempat Sihir Berlaku
Akhir sekali, saya ingin menunjukkan beberapa butiran dalam kod mereka, yang ingin memasuki sedikit komunikasi bersiri antara Python dan Arduino.
Sekarang, apa yang berlaku dalam program Python?
Pertama sekali, program memeriksa, apa yang dilampirkan ke port COM di baris ini dan menyimpannya ke senarai:
self. COMPortsList = senarai (serial.tools.list_ports.comports ())
Kemudian melalui senarai sehingga ia menemui cip CH340 yang terkenal, menyimpannya dan kemudian membuat sambungan bersiri selepas gelung untuk. Perhatikan, bahawa untuk gelung putus sebaik sahaja CH340 pertama dijumpai.
untuk p dalam diri. COMPortsList: if "CH340" di p [1]: # Mencari Arduino Clone self. COMPort = p [0] break another: pass self. Ser = serial. Serial (self. COMPort, 57600)
Sambungan bersiri dibuat dengan port COM dengan kadar baud 57600.
Dan apa yang dilakukan oleh kod Arduino? Oleh kerana Arduino hanya mempunyai satu COM-Port, sambungan bersiri hanya satu talian:
Serial.begin (57600);
Sekarang, kita boleh menggunakan kedua-dua port untuk berkomunikasi. Dalam kes ini, hanya mesej dari Python ke Arduino. Mesej dihantar di sini dari Python. Sambungan bersiri menghantar bait sebagai lalai. Itu juga cara terpantas untuk menghantar data dan sejauh yang saya tahu juga masih cukup meluas. Jadi int untuk bilangan servo (sehingga Arduino tahu servo mana yang hendak dipindahkan) dan kedudukan dalam mikrodetik berubah menjadi bait.
Command = struct.pack ('> B', self. Place) # "self. Place" pemboleh ubah int berubah menjadi bait
self. Ser.write (Command) # Menulis byte pada Serial-Port Command = int (self. ServoPos.get ()) // 10 # Membaca Input dari medan dan membalikkan int Command = struct.pack (' > B ', Command) # Menghidupkan int dalam diri byte. Ser.write (Command) # Menulis bait pada Serial-Port
Juga, penguraian data memerlukan masa (misalnya menafsirkan empat bait "1", "2", "3" dan "0" sebagai int 1230, bukan sebagai empat watak yang berbeza) dan lebih baik melakukannya bukan di Arduino.
Di sisi Arduino, maklumat yang dihantar diambil seperti berikut:
if (Serial.available ()> 1) {// Sekiranya data bersiri tersedia, maka gelung dimasukkan c = Serial.read (); // Byte pertama (bilangan servo) disimpan ke pembolehubah Micros = Serial.read (); // Kedudukan servo disimpan di sini Mikro = Mikro * 10; }
Disyorkan:
Robot Arduino Dengan Jarak, Arah dan Darjah Putaran (Timur, Barat, Utara, Selatan) Dikendalikan dengan Suara Menggunakan Modul Bluetooth dan Pergerakan Robot Autonomi: 6 Langkah
Arduino Robot Dengan Jarak, Arah dan Darjah Putaran (Timur, Barat, Utara, Selatan) Dikendalikan oleh Suara Menggunakan Modul Bluetooth dan Pergerakan Robot Autonomi: Instruksional ini menerangkan bagaimana membuat Arduino Robot yang dapat dipindahkan ke arah yang diperlukan (Maju, Mundur , Kiri, Kanan, Timur, Barat, Utara, Selatan) diperlukan Jarak dalam Sentimeter menggunakan perintah Suara. Robot juga boleh digerakkan secara autonomi
Kawal Akses Arduino YÚN Dengan MySQL, PHP5 dan Python: 11 Langkah (dengan Gambar)
Kawal Akses Arduino YÚN Dengan MySQL, PHP5 dan Python: Hello Friends! Seperti yang anda ketahui, pada bulan September pelindung perdana baru Arduino, Arduino YUN. Rakan kecil ini mempunyai sistem tertanam Linux yang dapat kami jalankan apa sahaja yang anda fikirkan (sekurang-kurangnya setakat ini). Walaupun terdapat sedikit maklumat
8 Kawalan Relay Dengan Penerima NodeMCU dan IR Menggunakan Aplikasi Jauh dan Android WiFi dan IR: 5 Langkah (dengan Gambar)
8 Kawalan Relay Dengan Penerima NodeMCU dan IR Menggunakan Aplikasi Jauh dan Android WiFi dan IR: Mengendalikan 8 suis relai menggunakan penerima nodemcu dan ir melalui aplikasi wifi dan jauh dan android. Alat kawalan jauhnya tidak bergantung pada sambungan wifi. DI SINI ADALAH KLIK VERSI YANG DIKEMASKINI SINI
Paparan Suhu dan Kelembapan dan Pengumpulan Data Dengan Arduino dan Pemprosesan: 13 Langkah (dengan Gambar)
Paparan Suhu dan Kelembapan dan Pengumpulan Data Dengan Arduino dan Pemprosesan: Pengenalan: Ini adalah Projek yang menggunakan papan Arduino, Sensor (DHT11), komputer Windows dan program Pemprosesan (boleh dimuat turun percuma) untuk memaparkan data Suhu, Kelembapan dalam digital dan borang graf bar, masa dan tarikh paparan dan jalankan waktu mengira
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. Ini adalah bacaan suhu dengan reka bentuk saya sendiri, dengan sensor ini dan