Bagaimana Memindahkan Pinggan di Rak Dapur Anda Dengan Menggunakan Robot?

Sekiranya anda mencari cara untuk meningkatkan daya tarikan dan fungsi dapur anda secara dramatik, pertimbangkan untuk meminimumkan usaha manusia di sana. Usaha manusia dapat dikurangkan dengan membuat robot domestik yang akan ada di dapur dan ia akan membawa peralatan kotor menuju sink dan berhenti di situ. Apabila orang itu mengeluarkan peralatan dari robot itu akan kembali dan membawa lebih banyak peralatan. Kadang-kadang di dapur besar, singki tidak begitu dekat dengan kabinet, robot akan mengambil pinggan dari satu tempat rak ke tempat yang lain. Laluan untuk robot akan dibuat di rak menggunakan pita hitam. Robot akan menggunakan dua sensor jarak inframerah untuk mengesan jalan dan berdasarkan input yang diterima dari sensor, Arduino akan mengarahkan motor bergerak dengan bantuan pemandu motor.



Robot Domestik

Bagaimana Menghubungkan Semua Periferal Yang Perlu Dalam Membuat Robot Domestik?

Sekarang, kita perlu mengumpulkan komponen yang diperlukan dan mula membuat robot.



Langkah 1: Komponen yang Digunakan

  • Arduino uno
  • Sensor IR (x5)
  • Motor DC
  • Kerusi Roda Kereta
  • Pita Hitam
  • Wayar Pelompat
  • Bateri DC
  • Pistol gam
  • Set pemacu skru

Langkah 2: Mengkaji Komponen

Oleh kerana kita sudah membuat senarai komponen, marilah kita melangkah selangkah ke depan dan menjalani kajian ringkas mengenai cara kerja setiap komponen.



The Arduino UNO adalah papan mikrokontroler yang terdiri daripada microchip ATMega 328P dan dibangunkan oleh Arduino.cc. Papan ini mempunyai satu set pin data digital dan analog yang dapat dihubungkan dengan papan pengembangan atau litar lain. Papan ini mempunyai 14 pin Digital, 6 pin Analog, dan dapat diprogramkan dengan Arduino IDE (Integrated Development Environment) melalui kabel USB jenis B. Ia memerlukan kuasa 5V HIDUP dan a Kod C untuk beroperasi.



Arduino UNO

Pemacu Motor L298N digunakan untuk mengendalikan Motor DC. L298N adalah pemacu motor H-Bridge dwi yang membolehkan kawalan kelajuan dan arah dua motor DC pada masa yang sama. Modul ini dapat menggerakkan motor DC yang mempunyai voltan antara 5 dan 35V, dengan arus puncak hingga 2A. Ia bergantung pada voltan yang digunakan pada terminal VCC motor. Dalam projek kami, pin 5V akan digunakan sebagai input kerana kita perlu menghubungkannya ke bekalan kuasa 5V agar IC berfungsi dengan baik. Gambarajah litar pemacu motor L298N dengan motor DC disambungkan ditunjukkan di bawah untuk memahami mekanisme pemandu motor L298N. Untuk demonstrasi, input diberikan dari Keadaan Logik bukannya sensor IR.

Diagram Litar yang dibuat pada Proteus 8 Professional



Langkah 3: Memahami Gambarajah Blok Dan Prinsip Kerja

Pertama, kita akan melalui gambarajah blok, memahami prinsip kerja dan kemudian bergerak ke arah pemasangan komponen perkakasan.

Gambarajah blok

Sensor yang akan kami gunakan adalah digital dan mereka dapat memberikan output sama ada 0 atau 1. Sensor yang kami beli ini memberi 1 pada permukaan putih dan 0 di permukaan hitam. Sensor yang kami beli memberikan nilai rawak, kadangkala memberi 0 di permukaan putih dan 1 di permukaan hitam. Kami akan menggunakan lima sensor dalam robot ini. Terdapat empat syarat dalam kod untuk lima sensor.

  1. Maju di Talian: Apabila sensor tengah berada di permukaan hitam dan selebihnya sensor berada di permukaan putih, keadaan ke depan akan dilaksanakan dan robot akan bergerak lurus ke depan. Sekiranya kita bermula dari Sensor1 dan teruskan sehingga Sensor5, nilai yang masing-masing sensor akan berikan ialah (1 1 0 1 1) .
  2. Belok tajam ke kanan: Apabila Sensor 1 dan Sensor 2 berada di permukaan putih dan selebihnya sensor berada di permukaan hitam, keadaan putaran kanan yang tajam akan dilaksanakan dan robot akan membelok ke kanan tajam. Sekiranya kita bermula dari Sensor1 dan teruskan sehingga Sensor5, nilai yang masing-masing sensor akan berikan ialah (1 1 0 0 0).
  3. Belok kiri tajam: Apabila Sensor 4 dan Sensor 5 berada di permukaan putih dan selebihnya sensor berada di permukaan hitam, keadaan putaran kiri tajam akan dilaksanakan dan robot akan membelok ke kiri tajam. Sekiranya kita bermula dari Sensor1 dan teruskan sehingga Sensor5, nilai yang masing-masing sensor akan berikan ialah (0 0 0 1 1) .
  4. Berhenti: Apabila kelima-lima sensor berada di permukaan hitam robot akan berhenti dan motor akan berpusing MATI. Titik ini dengan lima permukaan hitam akan berada di dekat sink sehingga mesin basuh pinggan mangkuk dapat mengeluarkan pinggan dari robot untuk dicuci.

Kami akan membuat jalan di rak dapur menggunakan pita hitam dan jalan itu akan berakhir di dekat sink, jadi robot akan berhenti di dekat sink dan mesin basuh pinggan akan mengeluarkan piring dan kemudian robot akan bergerak ke arah jalan dan mencari perkakas. lagi.

Jejak Robot

Langkah 4: Bermula dengan Arduino

Sekiranya anda tidak biasa dengan Arduino IDE sebelumnya, jangan risau kerana di bawah ini, anda dapat melihat langkah-langkah yang jelas untuk membakar kod pada papan mikrokontroler menggunakan Arduino IDE. Anda boleh memuat turun versi terbaru dari Arduino IDE dari di sini dan ikuti langkah-langkah di bawah:

  1. Apabila papan Arduino disambungkan ke PC anda, buka 'Panel kawalan' dan klik 'Perkakasan dan Bunyi'. Kemudian klik pada 'Peranti dan Pencetak'. Cari nama port yang menghubungkan papan Arduino anda. Dalam kes saya, ia adalah 'COM14' tetapi mungkin berbeza pada PC anda.

    Mencari Pelabuhan

  2. Sekarang buka Arduino IDE. Dari Alat, tetapkan papan Arduino ke Arduino / Genuino UNO.

    Menetapkan Papan

  3. Dari menu Alat yang sama, tetapkan nombor port yang anda lihat di panel kawalan.

    Menetapkan Pelabuhan

  4. Muat turun kod yang dilampirkan di bawah dan salin ke IDE anda. Untuk memuat naik kod, klik pada butang muat naik.

Anda boleh memuat turun kod dari Di sini

Langkah 5: Memahami Kod

Kodnya sangat mudah. Ia dijelaskan secara ringkas di bawah:

  1. Pada permulaan kod pin sensor diinisialisasi dan seiring dengan itu, pin untuk Pemandu Motor L298N juga diinisialisasi.
    int enable1pin = 10; // Memulakan Pin PWM Untuk Input Analog Untuk Motor 1 int motor1pin1 = 2; // Memulakan Pin Positif Untuk Motor 1 int motor1pin2 = 3; // Memulakan Pin Negatif Untuk Motor 1 int enable2pin = 11; // Memulakan Pin PWM Untuk Input Analog Untuk Motor 2 int motor2pin1 = 4; // Memulakan Pin Positif Untuk Motor 2 int motor2pin2 = 5; // Memulakan Pin Negatif Untuk Motor 2 int S1 = 12; // Memulakan Pin 12 Untuk Sensor 1 int S2 = 9; // Memulakan Pin 9 Untuk Sensor 2 int S3 = 8; // Memulakan Pin 8 Untuk Sensor 3 int S4 = 7; // Memulakan Pin 7 Untuk Sensor 4 int S5 = 6; // Memulakan Pin 6 Untuk Sensor 5
  2. persediaan tidak sah () adalah fungsi yang digunakan untuk menetapkan pin sebagai INPUT atau OUTPUT. Ini juga menetapkan kadar baud Arduino. Baud rate adalah kelajuan di mana papan mikrokontroler berkomunikasi dengan komponen lain yang terpasang.
    {pinMode (aktifkan1pin, OUTPUT); // Mengaktifkan PWM untuk Motor 1 pinMode (enabled2pin, OUTPUT); // Mengaktifkan PWM untuk Motor 2 pinMode (motor1pin1, OUTPUT); // Menetapkan motor1 pin1 sebagai output pinMode (motor1pin2, OUTPUT); // Menetapkan motor1 pin2 sebagai output pinMode (motor2pin1, OUTPUT); // Menetapkan motor2 pin1 sebagai output pinMode (motor2pin2, OUTPUT); // Menetapkan motor2 pin2 sebagai output pinMode (S1, INPUT); // Menetapkan sensor1 sebagai input pinMode (S2, INPUT); // Menetapkan sensor2 sebagai input pinMode (S3, INPUT); // Menetapkan sensor3 sebagai input pinMode (S4, INPUT); // Menetapkan sensor4 sebagai input pinMode (S5, INPUT); // Menetapkan sensor5 sebagai input Serial.begin (9600); // Menetapkan kadar baud}
  3. gelung kosong () adalah fungsi yang berjalan berulang-ulang dalam satu kitaran. Dalam gelung ini, kami memberi arahan kepada Arduino UNO operasi apa yang harus dijalankan. Kelajuan penuh motor adalah 255 dan kedua-dua motor mempunyai kelajuan yang berbeza. Jadi, jika kita mahu menggerakkan robot ke hadapan, belok kanan dan lain-lain kita perlu menyesuaikan kelajuan motor. Kami telah menggunakan pin analog dalam kod kerana kami mahu mengubah kelajuan kedua motor dalam keadaan yang berbeza. Anda boleh menyesuaikan kelajuan motor anda sendiri.
    gelung void () {if (! (digitalRead (S1)) &&! (digitalRead (S2)) && (digitalRead (S3)) &&! (digitalRead (S4)) &&! (digitalRead (S5))) // Teruskan pada garis {analogWrite (allow1pin, 61); // MotorWith analog speed 1 (aktifkan 2pin, 63); // Motor 2 speed digitalWrite (motor1pin1, TINGGI); // Motor 1 pin 1 ditetapkan ke High digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 ditetapkan ke Low digitalWrite (motor2pin1, TINGGI); // Motor 2 pin 1 ditetapkan ke High digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 ditetapkan ke Rendah} jika (! (DigitalRead (S1)) &&! (DigitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) / / Pusing Belok Kanan {analogWrite (aktif1pin, 60); // Motor 1 speed analogWrite (aktifkan 2pin, 80); // Motor 2 speed digitalWrite (motor1pin1, TINGGI); // Motor 1 pin 1 ditetapkan ke High digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 ditetapkan ke Low digitalWrite (motor2pin1, LOW); // Motor 2 pin 1 ditetapkan ke Low digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 ditetapkan ke Rendah} jika ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) &&! (DigitalRead (S4)) &&! (DigitalRead (S5))) / / Belok Belok Kiri {analogWrite (aktif1pin, 80); // Motor 1 speed analogWrite (aktifkan 2pin, 65); // Motor 2 speed digitalWrite (motor1pin1, RENDAH); // Motor 1 pin 1 ditetapkan ke Low digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 ditetapkan ke Low digitalWrite (motor2pin1, TINGGI); // Motor 2 pin 1 ditetapkan ke High digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 ditetapkan ke Rendah} jika ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) // berhenti {analogWrite (aktifkan1pin, 0); // Motor 1 speed analogWrite (aktifkan 2pin, 0); // Motor 2 speed digitalWrite (motor1pin1, RENDAH); // Motor 1 pin 1 ditetapkan ke Low digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 ditetapkan ke Low digitalWrite (motor2pin1, LOW); // Motor 2 pin 1 ditetapkan ke Low digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 ditetapkan ke Rendah}}

Permohonan

  1. Aplikasi Industri : Robot ini dapat digunakan sebagai pembawa peralatan automatik dalam industri menggantikan tali sawat tradisional.
  2. Aplikasi domestik : Ini juga boleh digunakan di rumah untuk keperluan domestik seperti pembersihan lantai, kerja dapur, dll.
  3. Aplikasi bimbingan : Robot ini boleh digunakan di tempat awam seperti pusat membeli-belah, medan selera, muzium dan lain-lain untuk memberi panduan jalan