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

Robot Pengikut Garis Kontrol PID

Komponen dan persediaan

KittenBot Anodized Aluminium Chassis
× 1
Papan Dasar RosBot KittenBot
× 1
Kastor Bola Diameter KittenBot dengan Bola Logam (Pasangan)
× 1
Roda Karet KittenBot dengan Set Hub Motor (Pasangan)
× 1
KittenBot 5-Channel IR Line-followwing Tracker Sensor
× 1
Motor DC (generik)
× 1
Baterai 9V (generik)
× 1
Arduino UNO
× 1

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Ikhtisar

Salah satu fitur yang dibutuhkan sebagian besar robot otonom rover adalah mengikuti garis. Tujuan dari proyek ini adalah untuk membangun robot pengikut garis dan memulai belajar pengontrol PID dengan cara yang menyenangkan.

Bagian

Robot berfungsi dengan baik dengan dua motor, Rosbot Baseboard, dan sensor 5-Saluran. Tidak seperti yang lain, Anda tidak perlu membeli driver motor H-bridge tambahan atau berbagai komponen karena Rosbot Baseboard memiliki driver ganda H-bridge 2x bawaan. Cukup hubungkan motor ke alas tiang Rosbot dan itu akan memasok lebih banyak daya daripada Arduino Uno.

  • Bingkai robot: Sasis Aluminium Anodized KittenBot

Sasis keren dan kokoh yang memiliki banyak lubang pemasangan (Teknik LEGO 4.8mm), Anda pasti dapat menggunakan kembali sasis ini untuk proyek menyenangkan lainnya.

  • Otak robot :Papan Dasar RosBot

Mainboard berbasis Arduino UNO dengan 2x driver motor H-bridge ganda terpasang.

  • Mata robot :Sensor Pelacak Mengikuti Jalur IR 5-Saluran

Detektor Inframerah 5-Saluran, lebih akurat dan stabil.

Langkah 1:Perakitan

Robot ini cukup mudah untuk dirakit, ikuti instruksinya dan Anda membutuhkan waktu sekitar 15 menit.

Pertama, pasang motor Anda ke sisi sasis, cukup colokkan roda karet.

Pasang sensor IR 5-Saluran ke bagian depan sasis.

Pasang alas tiang Rosbot Anda ke sasis, lalu robot siap dipasangkan kabel.

Langkah 2:Peras

Berikut ini adalah koneksi untuk sensor IR 5-Channel:

  • VCC ke 5V
  • GND ke GND RosBot
  • T1-T4 untuk menyematkan A0-A3
  • T5 untuk menyematkan SDA

Motor DC cukup masuk ke pin A+A- dan pin B+B-.

Pengkodean

Dalam kode, kami memiliki mesin status yang menunjukkan setiap kemungkinan keluaran array sensor. Robot bergerak ke arah tertentu sesuai dengan keluaran sensor array.

void stateMachine(int a) { switch (a) { case B00000:outlineCnt++; merusak; kasus B11111:outlineCnt++; merusak; kasus B00010:kasus B00110:outlineCnt =0; piksel.setPixelColor(2, piksel.Warna (0, 50, 0)); bias =1; merusak; kasus B00001:kasus B00011:outlineCnt =0; piksel.setPixelColor(2, piksel.Warna (0, 200, 0)); bias =2; merusak; kasus B00100:outlineCnt =0; piksel.setPixelColor(2, piksel.Warna (0, 0, 20)); bias =0; merusak; kasus B01000:kasus B01100:outlineCnt =0; piksel.setPixelColor(2, piksel.Warna(50, 0, 0)); bias =-1; merusak; kasus B10000:kasus B11000:outlineCnt =0; piksel.setPixelColor(2, piksel.Warna(200, 0, 0)); bias =-2; merusak; default:Serial.println(a,BIN); outlineCnt++; merusak; } 

Kita sudah menyiapkan nilai Error, suku proporsi, suku integral, dan suku turunan.

float Kp =25;float Ki =0.15;float Kd =1200;float error, errorLast, erroInte;float calcPid(float input) { float errorDiff; keluaran mengambang; kesalahan =kesalahan * 0,7 + masukan * 0,3; //filter //kesalahan =masukan; errorDiff =kesalahan - errorLast; erroInte =kendala(erroInte + kesalahan, -50, 50); keluaran =Kp * error + Ki * erroInte + Kd * errorDiff; Serial.print(kesalahan); Serial.print(' '); Serial.print(erroInte); Serial.print(' '); Serial.print(errorDiff); Serial.print(' '); Serial.println(keluaran); errorLast =kesalahan; kembalikan keluaran; 

Manipulasi nilai untuk menemukan yang paling cocok untuk robot Anda.

Kode

  • Robot pengikut garis
Robot pengikut garisArduino
Dalam kode, kami menyertakan NeoPixel dari Adafruit, tapi itu opsional.
#include #define S_NULL 0#define S_ONTRACE 1Adafruit_NeoPixel pixels =Adafruit_NeoPixel(4, 4, NEO_GRB + NEO_KHZ800);void doDcSpeed spdL, int spdR) { spdR =-spdR; if (spdL <0) { analogWrite(5, 0); analogWrite(6, -spdL); } else { analogWrite(5, spdL); analogWrite(6, 0); } if (spdR <0) { analogWrite(9, 0); analogWrite(10, -spdR); } else { analogWrite(9, spdR); analogWrite(10, 0); }}int bias =0;int outlineCnt =0;void stateMachine(int a) { switch (a) { case B00000:outlineCnt++; merusak; kasus B11111:outlineCnt++; merusak; kasus B00010:kasus B00110:outlineCnt =0; piksel.setPixelColor(2, piksel.Warna (0, 50, 0)); bias =1; merusak; kasus B00001:kasus B00011:outlineCnt =0; piksel.setPixelColor(2, piksel.Warna (0, 200, 0)); bias =2; merusak; kasus B00100:outlineCnt =0; piksel.setPixelColor(2, piksel.Warna (0, 0, 20)); bias =0; merusak; kasus B01000:kasus B01100:outlineCnt =0; piksel.setPixelColor(2, piksel.Warna(50, 0, 0)); bias =-1; merusak; kasus B10000:kasus B11000:outlineCnt =0; piksel.setPixelColor(2, piksel.Warna(200, 0, 0)); bias =-2; merusak; default:Serial.println(a,BIN); outlineCnt++; merusak; } piksel.setPixelColor(0, piksel.Warna(garisCnt * 10, 0, 0)); if (outlineCnt> 10) { doDcSpeed(0,0); } else { float dst =150; float ctrl =calcPid(bias); doDcSpeed(ff-ctrl,ff+ctrl); } pixels.show();}float Kp =25;float Ki =0.15;float Kd =1200;float error, errorLast, erroInte;float calcPid(float input) { float errorDiff; keluaran mengambang; kesalahan =kesalahan * 0,7 + masukan * 0,3; //filter //kesalahan =masukan; errorDiff =kesalahan - errorLast; erroInte =kendala(erroInte + kesalahan, -50, 50); keluaran =Kp * error + Ki * erroInte + Kd * errorDiff; Serial.print(kesalahan); Serial.print(' '); Serial.print(erroInte); Serial.print(' '); Serial.print(errorDiff); Serial.print(' '); Serial.println(keluaran); errorLast =kesalahan; hasil keluaran;}int echoTrace() { int ret =0; int[5]; for (int i =0; i <5; i++) { a[i] =constrain((1025 - analogRead(A0 + i)) / 10 - 4, 0, 20); if (a[i]> 2) ret +=(0x1 < 
LinefollowRobot
https://github.com/KittenBot/LinefollowRobot

Skema


Proses manufaktur

  1. Masa Depan Robotika
  2. Bola Basket
  3. Bola Golf
  4. Tutorial – sPiRobot :Kontrol &Lihat apa yang dilihat Robot Anda dari Mana Saja
  5. Otomasi:Garis Robot Didesain Ulang
  6. SCARA Robot Line Diperluas
  7. Robot Lini Perakitan:Panduan Definitif
  8. Pengikut Lini Industri untuk Pengadaan Bahan
  9. Kontrol PID dari Robot Gripper di Matlab / Simulink
  10. Kontrol Kualitas Jalur Pengemasan Otomatis