Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Bot Gripper Kontrol Jarak Jauh

Komponen dan persediaan

Sasis setengah pint Runt Rover
× 1
Arduino UNO
× 1
Perisai V5
× 1
Kabel Jumper Wanita/Wanita
× 1
L9110S
× 1
Braket Saluran Sudut Tunggal 90° (585424)
× 1
Hub servo ringan, Futaba
× 1
Kit Gripper Standar A (637094)
× 1
MG995
× 1
Pelat Servo Standar
× 1
Bracket Saluran Sudut Tunggal 90 °
× 1
5 slot dudukan AA
× 1
Baterai AA yang dapat diisi ulang
× 5
.750" spacer nilon 8-32
× 2
.500" 6-32 sekrup dengan mur
× 8
.3125" 6-32 sekrup
× 8

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Beberapa bulan yang lalu, putra saya meminta saya untuk menjadikannya bot yang dikendalikan dari jarak jauh. Dia memberi saya daftar apa yang dia inginkan dan kami mempersempitnya menjadi daftar yang dapat dikelola :) Inilah yang akhirnya saya buat untuknya...

  • Ambil pelindung Sensor UNO dan V5 dan pasangkan keduanya.
  • Tempatkan papan UNO/Sensor yang telah digabungkan ke dalam tempat klip di bagian tengah bot.
  • Ambil selotip dua sisi dan letakkan driver motor di dinding kiri dalam dan adaptor bluetooth di dinding kanan.

Untuk proyek ini Anda dapat membuat sasis sendiri atau memilih yang lain, pilihan ada di tangan Anda.

Langkah 1:Perangkat Lunak yang Dibutuhkan

Hal-hal yang perlu Anda unduh:

  • IDE Arduino
  • Python 2.7 (instalasi penuh dengan tkinter)
  • Perpustakaan pySerial
  • Library pengontrol motor L9110S terlampir .zip (Lihat file di Langkah ini)
  • Kode Robot di bawah atau .zip terlampir (Lihat file di Langkah ini)
  • Aplikasi remote control Python (Lihat file di Langkah ini)

Langkah 2:Tagihan Bahan Perangkat Keras

Bagian yang Anda perlukan adalah sebagai berikut:

  • Sasis Runt Rover Half-pint atau pengganti tertutup 4wd yang sesuai
  • Arduino Uno atau board sejenis dengan kabel USB
  • Pelindung sensor V5
  • Sopir motor L9110S (Dapatkan pasangan karena murah)
  • MG995 servo atau pengganti x2 lain yang sesuai
  • Adaptor bluetooth HC-05 atau HC-06 x1
  • Pelat servo standar B x1
  • kurung 90 derajat x1
  • Kurung tunggal x2
  • Hub servo ringan (525125 untuk Futaba) x1
  • Perangkat Gripper Standar A x1
  • Kabel jumper Wanita ke Wanita
  • 5 baterai AA isi ulang (NiMH) dan pengisi daya
  • Selotip dua sisi dan ritsleting kecil
  • Paket baterai 5 slot 'AA' (jika Anda menggunakan opsi AA yang dapat diisi ulang)
  • Pengisi baterai dan pengisi daya 6v NiMH atau 7.4v Li-ion
  • 1,250" 6-32 sekrup x2
  • .750" spacer nilon 8-32 x2
  • .500" 6-32 sekrup dengan mur x8
  • .3125" 6-32 sekrup x8

Anda dapat memperoleh banyak suku cadang dari eBay atau pemasok lain secara langsung seperti Sparkfun, Adafruit, dan ServoCity.

Setelah Anda membeli, mengumpulkan, dan mengunduh semuanya, Anda siap untuk memulai pembuatan.

Langkah 3:Perakitan - Sasis

Pertama, rakit sasis dengan mengikuti instruksi yang disertakan dengan sasis atau video. Setelah selesai Anda harus memiliki sesuatu seperti gambar. Saat Anda meletakkan pelat yang menahan pengontrol di bot, pastikan Anda meletakkannya di lubang tengah. Ini akan menyisakan ruang di bagian depan dan belakang bot.

CATATAN:Sebelum melangkah lebih jauh, harap lepaskan keempat roda, agar tidak merusak motor saat memasang komponen bot lainnya.

Langkah 4:Memasang Gripper

Rakit gripper dengan mengikuti petunjuk yang diberikan dalam video ini. Setelah selesai Anda harus memiliki sesuatu seperti gambar.

Langkah 5:Memasang Gripper - Langkah 1

Ambil braket 90 derajat, hub servo ringan, dan empat (4) sekrup .3125" untuk langkah ini:

Ambil hub servo dan letakkan di satu sisi braket dan kencangkan bersama-sama dengan sekrup .2125" seperti gambar dan sisihkan. Letakkan mur pada dua sekrup yang lebih pendek dan kencangkan. Sekarang ceritakan dua braket tunggal, 1.250 " sekrup dan dua sekrup .500" dengan mur, 2 spacer nilon dan pelat Servo B. Ambil satu braket tunggal dan letakkan di bagian dalam bot Setengah pint dan jalankan 2 sekrup 1,259" di lubang kiri (dari bagian dalam) dan sekrup 2.500" di sisi kanan. Semua kepala sekrup akan berada di bagian dalam bot seperti yang digambarkan. sekarang tempatkan braket tunggal kedua pada sekrup di bagian luar bot. Selanjutnya ambil spacer nilon dan letakkan di bagian yang lebih panjang (1.250") yang mencuat lalu kencangkan pelat servo ke sekrup panjang Kencangkan sekrup yang menuju pelat servo dengan kunci hex dengan ukuran yang sesuai atau obeng jika Anda menggunakan sekrup biasa.

Gunakan gambar untuk referensi sesuai kebutuhan.

Langkah 6:Memasang Gripper - Langkah 2

  • Selanjutnya ambil sisa servo yang Anda miliki dan letakkan di braket servo dengan tulang punggung ke atas. Kencangkan dengan 4 sekrup .3125".
  • Selanjutnya ambil braket 90 derajat dengan hub servo di atasnya dan pasang gripper ke sana dengan 4 sekrup .500" menggunakan 2 mur 8-32 sebagai spacer antara braket dan gripper seperti pada gambar. Kencangkan dengan mur lain di atas gripper (di bawah braket jika Anda memutar sekrup ke arah lain)
  • Sekarang ambil unit gripper dan letakkan di servo dan gunakan sekrup servo (dari paket servo Anda) untuk menahannya di tempatnya, kencangkan dengan kuat.

Setelah Anda selesai, jalankan kedua kabel servo melalui lubang braket datar ke bagian dalam bot.

Lihat gambar untuk detail dan referensi lebih lanjut.

Langkah 7:Memasang Elektronik

  • Ambil pelindung Sensor UNO dan V5 dan pasangkan keduanya.
  • Tempatkan papan UNO/Sensor yang telah digabungkan ke dalam tempat klip di bagian tengah bot.
  • Ambil selotip dua sisi dan letakkan driver motor di dinding kiri dalam dan adaptor bluetooth di dinding kanan.

Langkah 8:Pengkabelan - Motor

  • Pin A-1A pada driver motor ke pin 5 pada pelindung sensor
  • Pin A-1B pada driver motor ke pin 6 pada pelindung sensor
  • Pin B-1A pada driver motor ke pin 3 pada pelindung sensor
  • Pin B-1B pada driver motor ke pin 11 pada pelindung sensor

Sekarang dengan robot menghadap JAUH dari Anda, ambil kabel di sisi KIRI dan -

  • Hubungkan dua kabel HITAM di sebelah kiri ke terminal sekrup keluaran pertama untuk Motor A
  • Hubungkan dua kabel MERAH di sebelah kiri ke terminal sekrup keluaran kedua untuk Motor A

Ambil kabel di sisi KANAN dan -

  • Hubungkan dua kabel HITAM di sebelah kiri ke terminal sekrup keluaran pertama untuk Motor B
  • Hubungkan dua kabel MERAH di sebelah kiri ke terminal sekrup keluaran kedua untuk Motor B

Servo:

  • Sekarang sambungkan kabel servo Y ke jalur pin 2 pada pelindung sensor. Kabel putih atau oranye selalu merupakan kabel sinyal.
  • Sekarang sambungkan kabel servo X (Gripper) ke pin line 7 pada pelindung sensor. Kabel putih atau oranye selalu menjadi kabel sinyal.

Langkah 9:Menghubungkan Modul Bluetooth

  • Adaptor Bluetooth Tx -> pin pelindung sensor 0
  • Adaptor Bluetooth Rx -> pin pelindung sensor 1

Langkah 10:Menambahkan Daya

Hubungkan kabel daya dari baterai 5 'aa' (atau paket 6v lainnya) ke terminal sekrup daya pelindung sensor:

  • Merah ke Vcc
  • Hitam hingga GND
  • Selanjutnya pastikan jumper pada pelindung sensor V5 berada pada tempatnya pada pin jumper.
  • Hubungkan pin GND pada driver L9110s ke pin GND pada pelindung sensor.
  • Hubungkan kabel Positif dari baterai 6v atau 7.2v atau baterai lain yang telah Anda pilih untuk motor ke pin Vcc pada driver motor L9110S.
  • Hubungkan kabel Negatif (GND) dari baterai motor ke pin GND pada pelindung motor.

Langkah 11:Mengonfigurasi Modul Bluetooth HC05/HC06

Sekarang Anda harus masuk ke setelan perangkat bluetooth di PC dari Panel "Kontrol" atau "Sistem" OS atau gunakan Google untuk membantu.

Kemungkinan informasi penyiapan OS Bluetooth:

  • Windows
  • Linux (Saya menggunakan blueman di Linux Mint, tetapi lihat distribusi Anda untuk info lebih lanjut)
  • Mac

Anda perlu mencatat nama atau nomor perangkat port serial yang ditetapkan padanya.

Langkah 12:Memuat Kode

Dengan kabel yang diperiksa dan diperiksa ulang , Saatnya memuat kode. Ikuti petunjuk di situs Arduino tentang cara menginstal Arduino IDE.

Setelah IDE terinstal, selanjutnya Anda dapat menginstal library Driver Motor L9110. Lakukan ini dengan mengunduh file zip yang disertakan dalam LANGKAH 1 bernama L9110Driver.zip dan mengekstraknya ke folder perpustakaan Arduino Anda atau dengan mengikuti petunjuk berikut tentang cara menambahkan perpustakaan.

Sekarang setelah IDE dan perpustakaan driver Motor telah diinstal, muat kode robot ke dalam Arduino IDE dari file zip yang ditemukan di LANGKAH 1 bernama blue_t_slave.zip. File-file ini juga disertakan dalam langkah ini.

Hubungkan PC Anda dan Arduino dengan kabel USB. Sekarang pilih papan dari menu Tools->Board di IDE, Uno untuk proyek ini (pilih papan yang Anda miliki jika berbeda dari Uno) Sekarang dari menu Tools->Port, pilih com port Anda. Setelah ini selesai, klik tombol unggah. Jika semuanya berjalan dengan baik, kode telah dimuat, jika tidak lihat di sini untuk bantuan tentang IDE dan masalah terkait.

Langkah 13:Menjalankan Aplikasi Kontrol Python

Untuk menjalankan aplikasi remote control Python, unduh file zip dari langkah ini dan ekstrak ke lokasi tempat Anda ingin menjalankannya. Selanjutnya, buka shell perintah (yaitu terminal, cmd.exe, dll...) dan arahkan ke direktori tempat Anda mengekstrak file. Sekarang ketik:python rover.py dari baris perintah dan jendela yang tampak seperti pada gambar akan muncul. Jika tidak, cari kesalahan python dan perbaiki (mis. pustaka yang hilang, dll...) Situs Python dapat membantu beberapa jika diperlukan.

Setelah Aplikasi berjalan, Anda harus siap.

Sekarang, hidupkan bot. Kemudian ketik port komunikasi adaptor Anda dan klik tombol "Connect". Setelah beberapa detik, Anda akan melihat kontrol lain diaktifkan dan tombol sambungkan dinonaktifkan. Ini berarti Anda terhubung ke robot. Jika Anda tidak dapat terhubung ke adaptor bluetooth, Anda harus menggunakan keajaiban Google untuk membantu Anda!

Aplikasi kontrol mudah digunakan dan memungkinkan kontrol mouse atau keyboard.

Kontrol keyboard adalah:

  • Panah maju, mundur, belok kiri 90 derajat, belok kanan 90 derajat
  • a - belok kiri 45 derajat
  • s - belok kanan 45 derajat
  • h - berhenti (berhenti)
  • y - atur sumbu Gripper Y
  • u - setel gripper buka/tutup
  • c - rumah gripper

Perintah Maju dan Mundur adalah konstan yaitu mereka membuat bot terus bergerak setelah eksekusi sampai arah baru dikirim atau perintah Berhenti.

Belokan 90 dan 45 derajat bersifat sementara yaitu Setelah beberapa penundaan, mereka menghentikan bot agar tidak bergerak.

Slider gripper tidak secara otomatis mengatur gripper pada bot. Anda harus menekan tombol atau tombol "Set" yang sesuai untuk melakukan eksekusi set yang sebenarnya.

Nilai Slider berkisar dari 0-180.

  • Sumbu Y Gripper:0 sepenuhnya naik dan 180 turun sepenuhnya.
  • Gripper Buka/Tutup:0 sepenuhnya tertutup dan 180 dan terbuka sepenuhnya.

Gunakan tombol "Putuskan sambungan" untuk berhenti menggunakan program. Ini akan mengirimkan perintah untuk menghentikan bot dan membawa pulang gripper.


Kode

  • GUI Driver Python
  • Kode penjelajah
GUI Driver PythonPython
#!/usr/bin/env python## Untuk Linux, BSD atau Mac OSX Anda dapat chmod +x pada skrip ini untuk membuatnya dapat dieksekusi############ Aplikasi kontrol rover## Ditulis oleh Scott Beasley - 2015# Gratis untuk digunakan atau dimodifikasi. Selamat menikmati.############import sysimport serialimport timefrom Tkinter import *import tkFontimport tkMessageBox# Buat jendela untuk aplikasi kelas Aplikasi (Frame):# Buat jendela def createWidgets (self):self.connected =False self.message =StringVar ( ) # Buat sedikit font untuk tombol set gripper. helv6 =tkFont.Font (family ='Helvetica', size =6, weight ='normal') self.frame =Frame (self.master) self.frame.pack ( ) self.f1 =Frame (self.frame) self .l1 =Label (self.f1, text ="Comm Port:") self.l1.pack (side =LEFT) self.comm_entry =Entry (self.f1, bd =5, name ="comm_entry") self.comm_entry .pack (sisi =KIRI) self.connectButton =Tombol (self.f1, teks ="Connect", command =self.SerialConnect, name ="b_connect") self.connectButton.pack (sisi =KIRI) self.disconnectButton =Tombol (self.f1, text ="Disconnect", command =self.SerialDisconnect, name ="b_disconnect") self.disconnectButton.pack (sisi =KANAN) self.f1.grid (baris =0, kolom =0) self.f2 =LabelFrame (self.frame, bd =3, relief ="groove", text="Ground Control") self.g_vert_fm =Frame (self.f2) self.grip_vert =Skala (self.g_vert_fm, from_ =0, to =180) self.grip_vert.grid (baris =0, kolom =0, rentang baris =4, sticky =W) self.grip_vert_set =Tombol (self.g_vert_fm, text ="Set", command =self.GripperY, name ="b_grip_vert_set", lebar =1, tinggi =2, font =helv6) self.grip_vert_set.grid (baris =5, kolom =0, sticky =W) self.master.bind ("", self.GripperY) self. g_vert_fm.grid (baris =0, kolom =0, rentang baris =4, sticky =W) self.leftforwardButton =Button (self.f2, text ="\\", command =self.TurnLeft45, name ="b_left_forward") self .leftforwardButton.grid (baris =0, kolom =1) self.master.bind ("", self.TurnLeft45) self.leftButton =Button (self.f2, text ="<", command =self.TurnLeft, name ="b_left") self.leftButton.grid (baris =1, kolom =1) self.master.bind ("
", self.TurnLeft ) self.rightforwardButton =Button (self.f2, text ="/", command =self.TurnRight45, name ="b_right_forward") self.rightforwardButton.grid (baris =0, kolom =3) self.master.bind (" 
", self.TurnRight45) self.haltButton =Button (self.f2, text ="Halt!", command =self.Halt, name ="b_halt") self.haltButton .grid (baris =1, kolom =2) self.master.bind ("", self.Halt) self.rightButton =Tombol (self.f2, text=">", command =self.TurnRight, name ="b_right") self.rightButton.grid( baris =1, kolom =3) self.master.bind ("
", self.TurnRight) self.upButton =Tombol (self.f2, text="^", perintah =self.Forward, name ="b_forward") self.upButton.grid (baris =0, kolom =2) self.master.bind ("
", self.Forward) self.leftdownButton =Button (self.f2, text ="/", command =self.TurnRight45, name ="b_left_down") self.leftdownButton.grid (baris =2, kolom =1) self.downButton =Button (self. f2, text="V", command=self.Reverse, name ="b_reverse") self.downButton.grid (baris=2, kolom =2) self.master.bind ("
", self.Reverse) self.f2.grid (baris =1, kolom =0, pady =25) self.rightdownButton =Tombol (self.f2, teks ="\\", command =self.TurnLeft45, name ="b_right_down") self.rightdownButton.grid (baris =2, kolom =3) self.g_horz_fm =Bingkai (self.f2) self.grip_horz =Skala (s elf.g_horz_fm, from_ =0, to =180, orient =HORIZONTAL) self.grip_horz.grid (baris =0, kolom =0, lebar kolom =7, sticky =E) self.grip_horz_set =Tombol (self.g_horz_fm, teks ="Set", command =self.GripperX, name ="b_grip_horz_set", lebar =1, tinggi =2, font =helv6) self.grip_horz_set.grid (baris =0, kolom =8) self.master.bind ("", self.GripperX) self.g_horz_fm.grid (baris =4, kolom =0, lebar kolom =7, sticky =E) self.master.bind ("
", self.GripperHome) self.f3 =Bingkai (self.frame) self.l2 =Label (self.f3, teks ="Tindakan terakhir:") self.l2.pack (sisi =KIRI) self.l3 =Label (self.f3, text=" ", textvariable =self.message) self.l3.pack (sisi =KANAN) self.f3.grid (baris =3, kolom =0, pady =8) # Atur status tombol kontrol bot. Aktifkan saat terhubung, # Dinonaktifkan jika tidak. def CtrlButtonsState (self, bstate):self.leftforwardButton.config (state =bstate) self.leftButton.config (state =bstate) self.rightforwardButton.config (state =bstate) self.rightButton.config (state =bstate) self. upButton.config (state =bstate) self.leftdownButton.config (state =bstate) self.downButton.config (state =bstate) self.rightdownButton.config (state =bstate) self.haltButton.config (state =bstate) self. disconnectButton.config (state =bstate) self.grip_horz.config (state =bstate) self.grip_vert.config (state =bstate) self.grip_horz_set.config (state =bstate) self.grip_vert_set.config (state =bstate) # Set keadaan entri port komunikasi. Aktifkan saat tidak terhubung, # Dinonaktifkan saat bot terhubung. def ConnCtrlsState (self, bstate):self.connectButton.config (state =bstate) self.comm_entry.config (state =bstate) # Hubungkan ke port komunikasi yang diketik di kolom entri komunikasi. def SerialConnect (self):coba:# Ubah baud rate di sini jika berbeda maka 9600 self.ser =serial.Serial (self.comm_entry.get ( ), 9600) kecuali IOError:tkMessageBox.showerror ("Port komunikasi tidak valid", " Port komunikasi tidak ditemukan.") mengembalikan self.ConnCtrlsState (DISABLED) self.CtrlButtonsState (NORMAL) self.message.set ("SerialConnect") self.connected =True time.sleep (3) # Tunggu sebentar agar koneksi terjadi # Putuskan sambungan dari bot (tutup port komunikasi). def SerialDisconnect (self):coba:# Kirim perintah Halt untuk berjaga-jaga jika bot masih bergerak. self.send_cmd ('h', "Halt!") time.sleep (1) self.ser.close ( ) kecuali IOError:print "Could not close port..." self.message.set ("SerialDisconnect") self .ConnCtrlState (NORMAL) self.CtrlButtonsState (DISABLED) self.connected =Waktu yang salah.tidur (2) # Tunggu sebentar agar pemutusan terjadi # Kirim perintah ke port komunikasi terbuka def send_cmd (self, action, msg):if self.connected ==True:for val in action:self.ser.write (val) self.ser.flush ( ) self.message.set (msg) # Kirim bot perintah belok kiri. def TurnLeft (self, event =None):self.send_cmd ('a', "Left") # Kirim bot perintah turn-left-up. def TurnLeft45 (self, event =None):self.send_cmd ('q', "Left45") # Kirim bot perintah belok kanan. def TurnRight (self, event =None):self.send_cmd ('s', "Right") # Kirim bot perintah turn-right-up. def TurnRight45 (self, event =None):self.send_cmd ('e', "Right45") # Kirim bot perintah Forward. def Forward (self, event =None):self.send_cmd ('w', "Up") # Kirim bot perintah Reverse. def Reverse (self, event =None):self.send_cmd ('z', "Down") # Kirim bot perintah Berhenti. def Halt (self, event =None):self.send_cmd ('h', "Halt!") # Atur gripper (X). def GripperX (self, event =None):# Baca kontrol slider dan kirim nilainya ke bot controller # Catatan:0 tertutup sepenuhnya dan 180 terbuka sepenuhnya grp_change =('>', chr (self. grip_horz.get ( )), chr (255)) self.send_cmd (grp_change, "Gripper X") # Atur gripper Y. def GripperY (self, event =None):# Baca kontrol slider dan kirim nilainya ke bot controller # Catatan:0 ke atas dan 180 ke bawah grp_change =('^', chr (self.grip_vert.get ( )), chr (255)) self.send_cmd (grp_change, "Gripper Y ") # Atur gripper ke posisi "home". def GripperHome (self, event =None):self.send_cmd (('c', chr (255)), "Gripper Home") def __init__ (self, master =None):Frame.__init__ (self, master) self. pack ( ) self.createWidgets ( ) self.CtrlButtonsState (DISABLED)# Buka GUI (Tk) lalu beri ukuran dan beri judul aplikasi windowdef main ( ):root =Tk ( ) root.geometry ("450x350") root.wm_title ( "Rover Control Center (RCC)") app =Aplikasi (master =root) app.mainloop ( )if __name__ =='__main__':main ( )
Kode penjelajahArduino
/* Penjelajah Bluetooth. Tujuan dalam hidup... Mengikuti perintah Anda yang dikirim secara ajaib melalui udara! Atau dari USB :) Ditulis oleh Scott Beasley - 2015 Gratis untuk digunakan atau dimodifikasi. Selamat menikmati.*//* Menggunakan perpustakaan L9110S. Ia bekerja dengan jembatan-h L9110S. Unduh dari https://github.com/jscottb/L9110Driver atau klon zip dari https://github.com untuk menghapus '-master' dari nama file arsip untuk menambahkan perpustakaan*/#include #include #define SERVO_Y 2 // Pin gripper Y servo#define SERVO_CLAW 7 // Pin gripper Gripper servo#define pinAIN1 5 // define I1 interface#define pinAIN2 6 // define I2 interface#define pinBIN1 3 / / define I3 interface#define pinBIN2 11 // define I4 interface// Speed ​​define#define MAXFORWARDSPEED 225 // Kecepatan maksimum yang kita inginkan untuk bergerak maju#define MAXBACKWARDSPEED 225 // Kecepatan mundur maksimum#define TOPSPEED 255 // Digunakan untuk membantu menghidupkan lebih baik karpet dan permukaan yang lebih kasar.// Berbagai waktu tunda yang digunakan untuk mengemudi dan servo#menentukan TURNDELAY 475#menentukan TURNDELAY45 235#menentukan BACKUPDELAY 400#menentukan SERVOMOVEDELAY 200#menentukan SERVOSEARCHDELAY 85/* Area global.*/// Membuat motor, objek servo untuk berinteraksi denganL9110_Motor motor_left (pinAIN1, pinAIN2); // Buat objek motor KiriL9110_Motor motor_right (pinBIN1, pinBIN2); // Buat objek motor kanan Servo grip_y_servo; // Buat objek servo untuk gripper Y axisServo grip_servo; // Buat objek servo untuk pengaturan gripper clawvoid ( ){ // Ubah baud rate di sini jika berbeda dengan 9600 Serial.begin (9600); grip_y_servo.attach (SERVO_Y); // Pasang servo SERVO_LR grip_y_servo.write (90); grip_servo.attach (SERVO_CLAW); // Pasang servo SERVO_LR grip_servo.write (90); delay (500);}void loop ( ){ perintah byte =0, val =0; if (Serial.available ( )> 0) { // membaca perintah yang masuk byte command =Serial.read ( ); } switch (perintah) { case 'w':go_forward ( ); //Serial.println("Maju"); merusak; huruf 'z':go_backward ( ); //Serial.println("Mundur"); merusak; huruf 'a':go_left ( ); penundaan (TURNDELAY); berhenti ( ); //Serial.println("Belok Kiri"); merusak; case 's':go_right ( ); penundaan (TURNDELAY); berhenti ( ); //Serial.println("Belok Kanan"); merusak; huruf 'q':go_left ( ); penundaan (TURNDELAY45); berhenti ( ); //Serial.println("Belok Kiri"); merusak; huruf 'e':go_right ( ); penundaan (TURNDELAY45); berhenti ( ); //Serial.println("Belok Kanan"); merusak; kasus 'h':halt ( ); //Serial.println("Berhenti"); merusak; case '>':// Gripper X move mengirimkan nilai set servo val =Serial.read ( ); // Kami membatasi nilai ke batas gerakan nyata dari setup grip_servo.write (constrain (val, 64, 179)); //Serial.println("GripperX"); merusak; case '^':// Gripper Y move mengirimkan nilai set servo val =Serial.read ( ); // Kami membatasi nilai ke batas gerakan nyata dari setup grip_y_servo.write (constrain (val, 53, 179)); //Serial.println("GripperY"); merusak; case 'c':// Kami membatasi nilai ke batas gerakan nyata dari setup grip_y_servo.write (90); grip_servo.write (90); //Serial.println("GripperHome"); merusak; case 255:// Dikirim setelah semua perintah gripper Serial.flush ( ); merusak; } Serial.flush ( ); delay(125);}void go_forward ( ){ //Serial.println ("Maju..."); // Jalankan motor hingga kecepatannya. // Membantu memutar di beberapa permukaan dan ware dan tara di ramp_it GM (MAXFORWARDSPEED, FORWARD, FORWARD); // Setel ke semua kecepatan yang disetel hanya jika tong terakhir ramp tidak semuanya // itu. motor_left.setSpeed ​​(MAXFORWARDSPEED); motor_right.setSpeed ​​(MAXFORWARDSPEED); motor_left.run (FOWARD|RELEASE); motor_right.run (FORWARD|RELEASE);}void go_backward ( ){ //Serial.println ("Mundur..."); // Jalankan motor hingga kecepatannya. // Membantu memutar di beberapa permukaan dan ware dan tara di ramp_it GM (MAXBACKWARDSPEED, BACKWARD, BACKWARD); // Setel ke semua kecepatan yang disetel hanya jika tong terakhir ramp tidak semuanya // itu. motor_left.setSpeed ​​(MAXBACKWARDSPEED); motor_right.setSpeed ​​(MAXBACKWARDSPEED); motor_left.run (BACKWARD|RELEASE); motor_right.run (BACKWARD|RELEASE);}void go_left ( ){ //Serial.println ("Ke kiri..."); // Jalankan motor hingga kecepatannya. // Membantu memutar di beberapa permukaan dan ware dan tara di ramp_it GM (TOPSPEED, BACKWARD, FORWARD); // Setel ke semua kecepatan yang disetel hanya jika tong terakhir ramp tidak semuanya // itu. motor_left.setSpeed ​​(TOPSPEED); motor_right.setSpeed ​​(TOPSPEED); motor_left.run (BACKWARD|RELEASE); motor_right.run (FORWARD|RELEASE);}void go_right ( ){ //Serial.println ("Ke kanan..."); // Jalankan motor hingga kecepatannya. // Membantu memutar di beberapa permukaan dan ware dan tare di ramp_it GM (TOPSPEED, FORWARD, BACKWARD); // Setel ke semua kecepatan yang disetel hanya jika tong terakhir ramp tidak semuanya // itu. motor_left.setSpeed ​​(TOPSPEED); motor_right.setSpeed ​​(TOPSPEED); motor_left.run (FOWARD|RELEASE); motor_right.run (BACKWARD|RELEASE);}void halt ( ){ //Serial.println ("Halt!"); //ramp_it (0, REM, REM); motor_left.setSpeed ​​(0); motor_right.setSpeed ​​(0); motor_left.run (REM); motor_right.run (BRAKE);}void ramp_it (kecepatan uint8_t, uint8_t lf_dir, uint8_t rt_dir){ uint8_t ramp_val =0, step_val =0; step_val =abs (kecepatan / 4); if (!kecepatan) step_val =-step_val; for (uint8_t i =0; i <4; i++) { ramp_val +=step_val; motor_left.setSpeed ​​(ramp_val); motor_right.setSpeed ​​(ramp_val); motor_left.run (lf_dir|RELEASE); motor_right.run (rt_dir|RELEASE); penundaan (25); }}
Driver L9110
Driver motor L9110 untuk Arduinohttps://github.com/jscottb/L9110Driver

Suku cadang dan penutup khusus

4wdgripperbt2.fzz

Skema

4wdgripperbt2.fzz

Proses manufaktur

  1. Sensor Multi Suhu
  2. Kontrol Besi Solder DIY untuk 862D+
  3. MotionSense
  4. Keselamatan Kebakaran Printer 3D
  5. Arduino Repulsive Electromagnetic Levitation
  6. Datalogger Balon Cuaca Bertenaga Arduino
  7. ArduFarmBot - Bagian 2:Stasiun Jarak Jauh Implementasi IoT
  8. CoroFence - Detektor Termal🖖
  9. Pemantauan awan, sistem kendali jarak jauh
  10. 5 keuntungan dari kendali produksi jarak jauh