Daftar Isi:

Pengontrol Servo Serial Berbasis Arduino: 6 Langkah
Pengontrol Servo Serial Berbasis Arduino: 6 Langkah

Video: Pengontrol Servo Serial Berbasis Arduino: 6 Langkah

Video: Pengontrol Servo Serial Berbasis Arduino: 6 Langkah
Video: Cara Mengendalikan Servo Melalui Serial Monitor Arduino IDE 2024, Desember
Anonim
Pengontrol Servo Serial Berbasis Arduino
Pengontrol Servo Serial Berbasis Arduino
Pengontrol Servo Serial Berbasis Arduino
Pengontrol Servo Serial Berbasis Arduino

Ini adalah pengontrol serial sederhana untuk beberapa servos berdasarkan Arduino. (instruksi pertama saya juga:))

Sebagian besar pekerjaan dalam hal ini berasal dari mendapatkan perangkat lunak untuk berbicara dengan arduino dan membuat protokol untuk data yang akan dilewati. Adapun aspek perangkat keras semua yang saya gunakan adalah dua servos (Servo standar Parallax di sini.) ProtoShield Arduino Sparkfun dan Duemilanove Arduino dengan ATMEGA328, tetapi sebagian besar bagian ini dapat diganti dengan barang serupa. Saya menganggap proyek ini sebagai bagian dari sistem RC, tetapi menyiapkan komunikasi membutuhkan banyak waktu. Jika ada yang memiliki perbaikan, ide, atau bug, jangan ragu untuk berkomentar. EDIT: Saya menulis ini beberapa waktu yang lalu, baru saja menerbitkannya baru-baru ini.

Langkah 1: Hal-hal yang Mungkin Anda Butuhkan…

Hal-hal yang Mungkin Anda Butuhkan…
Hal-hal yang Mungkin Anda Butuhkan…
Hal-hal yang Mungkin Anda Butuhkan…
Hal-hal yang Mungkin Anda Butuhkan…

Beberapa hal yang Anda perlukan untuk membangun ini. 1. Papan Arduino (Anda pilih) 2. dua (atau satu) servos 3. kabel jumper 4. Visual Studio 2008 Express -- tautan (opsional) 5. Arduino IDE -- tautan Maaf penggemar Linux dan Apple, program saya hanya berjalan di windows untuk saat ini, tetapi Anda masih dapat secara manual mengirim perintah serial ke arduino tanpa mengubah kode.

Langkah 2: Hubungkan Perangkat Keras

Hubungkan Perangkat Keras
Hubungkan Perangkat Keras

Tidak ada yang terlalu rumit untuk langkah ini. Cukup sambungkan satu servo ke pin 9 dan yang lainnya ke pin 10.

Langkah 3: Program Arduino

Memprogram Arduino
Memprogram Arduino

sekarang Anda dapat mengunggah sketsa ke arduino.

Berikut adalah rincian sederhana untuk kode: #include Servo myservo; // membuat objek servo untuk mengontrol servo Servo myservo1; int incomingByte = 0, datacount = 0, counter = 0, ready = 0; // untuk data karakter data serial yang masuk[10]; const char verifikasi[8] = "ma11hew"; perintah char[3]; void setup() { myservo.attach (9); myservo1.attach(10); Serial.begin(38400); // buka serial port, set data rate Serial.println("Hi Arduino Here!"); // ditambahkan untuk membantu mengidentifikasi port serial Ini hanya mengatur port serial dan servos. di aku; for(i = 0; i<180;i++) { myservo.write(i); penundaan (15); } myservo.write(5); for(i = 0; i<180;i++) { myservo1.write(i); penundaan (15); } myservo1.write(5); } Gerakan menyapu sederhana untuk memverifikasi servos bekerja dengan benar. void loop() { siap = 0; penghitung = 0; while (1==1) { if (Serial.read() != verifikasi[penghitung]) { break; } if(penghitung == 6) { delay(20); perintah[0] = Serial.read(); perintah[1] = Serial.read(); //if (Serial.read() == ((perintah[1] * 12) % 8)) // { siap = 1; //} Serial.println("perintah tersimpan"); } penghitung ++; penundaan (2); } ini memeriksa buffer serial untuk string otorisasi yang benar kemudian mengambil dua byte untuk perintah tersebut. pernyataan if yang dikomentari memungkinkan checksum darurat tetapi akan membuat antarmuka manual menjadi sulit. siap dapat diatur ke 0 sehingga perintah tidak akan diuraikan seperti dalam kasus data yang rusak. //cari melalui perintah if (ready == 1) { if (command[0] == 'T') { command[0] = 0; Serial.print("kontrol throttle pada pin 9 ke: "); Serial.println(peta(perintah[1], 32, 126, 2, 180), DEC); myservo.write(peta(perintah[1], 32, 126, 2, 180)); } if (perintah[0] == 'S') { perintah[0] = 0; Serial.print("kontrol throttle pada pin 10 ke: "); Serial.println(peta(perintah[1], 32, 126, 2, 180), DEC); myservo1.write(peta(perintah[1], 32, 126, 2, 180)); } } } sisa kodenya adalah mencari perintah untuk perintah yang valid (T atau S.) jika salah satu cocok, dibutuhkan byte berikutnya dan mengirimkannya ke servo. lebih lanjut di peta(perintah[1], 32, 126, 2, 180) nanti… kode di sini dapat diperluas untuk apa pun yang mungkin Anda perlukan (mis. lampu, motor, IR, dll.) kode ini akan berfungsi dengan baik tanpa modifikasi.

Langkah 4: Instal Perangkat Lunak

Instal Perangkat Lunak
Instal Perangkat Lunak

Saya punya dua cara untuk menginstal ini … nsis installer: Download installer self extracting di bawah ini dan jalankan. Anda akan memiliki opsi untuk menginstal sumber selama instalasi. paket biner penginstal menginstal inti c++ dll sehingga dapat dijalankan di komputer tanpa visual c++ sudah diinstal. Setelah penginstal selesai, Anda dapat menjalankannya dari desktop atau menu mulai. zip way (belum diverifikasi): Unduh dan jalankan, itu akan berfungsi. mungkin. (Arsip zip memiliki struktur folder yang sama yang dibuat oleh penginstal, tanpa sumber. Saya tidak memiliki mesin tanpa studio visual untuk mengujinya sehingga mungkin tidak berfungsi.)

Langkah 5: Gunakan Program Antarmuka

Gunakan Program Antarmuka
Gunakan Program Antarmuka
Gunakan Program Antarmuka
Gunakan Program Antarmuka

Untuk menggunakan program, pertama-tama pilih baud rate yang ditentukan dalam sketsa arduino. Sketsa yang tidak dimodifikasi default ke 38400 baud tetapi dapat diubah sesuai dengan kebutuhan Anda untuk hal-hal seperti tautan radio yang lebih lambat. catatan: baud rate lebih tinggi dari 38400 belum terlalu stabil, saya pikir ini karena uart terisi sebelum data dapat diproses. Selanjutnya, pilih port COM yang akan digunakan. program default ke COM4 pastikan untuk mengubahnya atau program akan macet. Terakhir, klik buka. Jika semuanya berjalan dengan baik, program akan membuka port serial yang dipilih pada baud rate yang dipilih. Jika tidak, program mungkin akan macet dengan pengecualian yang tidak tertangani. pastikan portnya benar dan coba lagi. Gunakan kotak teks untuk mengirimkan perintah langsung ke arduino. "Peta(perintah[1], 32, 126, 2, 180)" menskalakan semua 94 perintah yang mungkin, *spasi* hingga ~, dapat dibaca oleh arduino di ASCII hingga 2 hingga 180 untuk servo. setiap byte kurang dari ASCII 32 (spasi) atau di atas 126 (~) default ke 63 (?) Track bar menyediakan antarmuka yang lebih mudah untuk perintah langsung. setiap langkah mengirimkan perintah serial ke arduino secara bertahap.

Langkah 6: Jadilah Kreatif

Menjadi kreatif!
Menjadi kreatif!
Menjadi kreatif!
Menjadi kreatif!

Pikirkan hal-hal keren untuk dibuat dengan ini. Beberapa ide: 1. Remote throttle untuk mobil. 2. Dudukan kamera 3D 3. penjelajah bawah air Selamat bersenang-senang!!

Direkomendasikan: