Paano Lumipat ng Mga pinggan sa Palibutang Iyong Kusina sa Kusina Gamit ang Isang Robot?

Kung naghahanap ka ng isang paraan upang lubos na mapalakas ang kagandahan at pag-andar ng iyong kusina, isaalang-alang na mabawasan ang pagsisikap ng tao doon. Ang pagsisikap ng tao ay maaaring mabawasan sa pamamagitan ng paggawa ng isang domestic robot na naroroon sa kusina at magdadala ito ng mga maruming kagamitan patungo sa lababo at huminto doon. Kapag ang tao ay naglalabas ng mga kagamitan mula sa robot babalik ito at magdadala ng higit sa mga ito. Minsan sa malalaking kusina, ang lababo sa paghuhugas ay hindi gaanong malapit sa mga kabinet, kaya't kukuha ng robot ang mga pinggan mula sa isang lugar ng istante patungo sa isa pa. Ang isang landas para sa robot ay gagawin sa istante gamit ang Itim na teyp. Gumagamit ang robot ng dalawang infrared proximity sensor upang matukoy ang landas at batay sa natanggap na input mula sa mga sensor, ididirekta ng Arduino ang mga motor upang ilipat sa tulong ng isang driver ng motor.



Domestic Robot

Paano Ikonekta ang Lahat ng Kinakailangan na Peripheral Sa Paggawa Ng Isang Domestic Robot?

Ngayon, kailangan naming tipunin ang mga kinakailangang sangkap at simulang gawin ang robot.



Hakbang 1: Ginamit na Mga Bahagi

  • Arduino uno
  • IR Sensor (x5)
  • DC Motors
  • Mga Habol sa Gulong ng Kotse
  • Itim na Tape
  • Jumper Wires
  • DC baterya
  • Pandikit Baril
  • Itinakda ang screw driver

Hakbang 2: Pag-aaral ng Mga Bahagi

Tulad ng nakagawa na kami ng isang listahan ng mga bahagi, ilipat natin ang isang hakbang nang maaga at dumaan sa isang maikling pag-aaral ng pagtatrabaho ng bawat bahagi.



Ang Arduino UNO ay isang board ng microcontroller na binubuo ng isang microchip ATMega 328P at binuo ng Arduino.cc. Ang board na ito ay may isang hanay ng mga digital at analog data pin na maaaring ma-interfaced sa iba pang mga board ng pagpapalawak o circuit. Ang board na ito ay may 14 Digital pin, 6 Analog pin, at programmable gamit ang Arduino IDE (Integrated Development Environment) sa pamamagitan ng isang uri ng B USB cable. Nangangailangan ito ng 5V sa lakas ON na at a C Code upang mapatakbo.



Arduino UNO

Ang L298N Motor Driver ay ginagamit upang mapatakbo ang DC Motors. Ang L298N ay isang dalawahang H-Bridge motor driver na pinapayagan ang bilis at direksyon na kontrol ng dalawang DC motor nang sabay. Ang modyul ay maaaring magmaneho ng DC Motors na may voltages sa pagitan ng 5 at 35V, na may kasalukuyang kasalukuyang hanggang sa 2A. Ito ay depende sa boltahe na ginagamit sa motors VCC terminal. Sa aming proyekto, ang 5V pin ay gagamitin bilang input na kailangan namin upang ikonekta ito sa isang 5V power supply para sa IC upang gumana nang maayos. Ang circuit diagram ng driver ng motor na L298N na may koneksyon sa DC motors ay ipinakita sa ibaba para sa pag-unawa sa mekanismo ng driver ng motor na L298N. Para sa demonstrasyon, ang input ay ibinibigay mula sa Estadong Lohika sa halip na IR sensors.

Circuit Diagram na ginawa sa Proteus 8 Professional



Hakbang 3: Pag-unawa sa Diagram ng Block At Prinsipyo sa Paggawa

Una, dadaan kami sa diagram ng block, maunawaan ang prinsipyo ng pagtatrabaho at pagkatapos ay lumipat patungo sa pag-iipon ng mga bahagi ng hardware.

I-block ang Diagram

Ang mga sensor na gagamitin namin ay digital at maaari nilang ibigay ang output alinman sa 0 o 1. Ang mga sensor na binili namin ay nagbibigay 1 sa mga puting ibabaw at 0 sa mga itim na ibabaw. Ang mga sensor na binibili ay nagbibigay ng mga random na halaga, kung minsan ay nagbibigay 0 sa mga puting ibabaw at 1 sa mga itim na ibabaw. Gagamitin namin ang limang mga sensor sa robot na ito Mayroong apat na mga kundisyon sa code para sa limang mga sensor.

  1. Ipasa Sa Linya: Kapag ang gitnang sensor ay nasa itim na ibabaw at ang natitirang mga sensor ay nasa puting ibabaw, ang pasulong na kondisyon ay papatayin at ang robot ay lilipat nang diretso. Kung magsisimula tayo mula sa Sensor1 at magpatuloy hanggang Sensor5, ang halagang ibibigay ng bawat isa sa mga sensor ayon sa pagkakabanggit ay (1 1 0 1 1) .
  2. Biglang Kanan Lumiko: Kapag ang Sensor 1 at Sensor 2 nasa puting ibabaw at ang natitirang mga sensor ay nasa itim na ibabaw, ang matalim na kundisyon sa kanang pagliko ay papatayin at ang robot ay magpapihit ng pakanan. Kung magsisimula tayo mula sa Sensor1 at magpatuloy hanggang Sensor5, ang halagang ibibigay ng bawat isa sa mga sensor ayon sa pagkakabanggit ay (1 1 0 0 0).
  3. Biglang Lumiko sa Kaliwa: Kapag ang Sensor 4 at Sensor 5 nasa puting ibabaw at ang natitirang mga sensor ay nasa itim na ibabaw, ang matalim na kundisyon sa kaliwang pagliko ay papatayin at ang robot ay liko sa kaliwa. Kung magsisimula tayo mula sa Sensor1 at magpatuloy hanggang Sensor5, ang halagang ibibigay ng bawat isa sa mga sensor ayon sa pagkakabanggit ay (0 0 0 1 1) .
  4. Itigil: Kapag ang lahat ng limang mga sensor ay nasa itim na ibabaw ang robot ay hihinto at ang mga motor ay magpapasara PATAY. Ang puntong ito na may limang itim na ibabaw ay malapit sa lababo upang ang makinang panghugas ay maaaring ibaba ang mga plato mula sa robot para sa paghuhugas.

Gumagawa kami ng isang landas sa istante ng kusina gamit ang itim na tape at ang landas na iyon ay magtatapos malapit sa lababo, kaya ang robot ay titigil malapit sa lababo at ilalagay ng makinang panghugas ang mga plato at pagkatapos ay lilipat ang robot patungo sa landas at hahanapin ang mga kagamitan muli

Subaybayan Ng Robot

Hakbang 4: Pagsisimula Sa Arduino

Kung hindi ka pamilyar sa Arduino IDE dati, huwag mag-alala dahil sa ibaba, maaari mong makita ang mga malinaw na hakbang ng nasusunog na code sa board ng microcontroller gamit ang Arduino IDE. Maaari mong i-download ang pinakabagong bersyon ng Arduino IDE mula sa dito at sundin ang mga hakbang sa ibaba:

  1. Kapag ang Arduino board ay konektado sa iyong PC, buksan ang 'Control panel' at mag-click sa 'Hardware at Sound'. Pagkatapos mag-click sa 'Mga Device at Printer'. Hanapin ang pangalan ng port kung saan nakakonekta ang iyong Arduino board. Sa aking kaso ito ay 'COM14' ngunit maaaring magkakaiba ito sa iyong PC.

    Paghanap ng Port

  2. Ngayon buksan ang Arduino IDE. Mula sa Mga Tool, itakda ang Arduino board sa Arduino / Genuino UNO.

    Setting Board

  3. Mula sa parehong menu ng Tool, itakda ang numero ng port na nakita mo sa control panel.

    Setting Port

  4. I-download ang code na nakalakip sa ibaba at kopyahin ito sa iyong IDE. Upang mai-upload ang code, mag-click sa upload button.

Maaari mong i-download ang code mula sa Dito

Hakbang 5: Pag-unawa sa Code

Napakadali ng code. Ipinaliwanag ito nang maikli sa ibaba:

  1. Sa pagsisimula ng code ang mga sensor sensor ay pinasimulan at kasama nito, ang mga pin para sa Motor Driver L298N ay naisasimulan din.
    int enable1pin = 10; // Initializing PWM Pin For Analog Input For Motor 1 int motor1pin1 = 2; // Initializing Positive Pin For Motor 1 int motor1pin2 = 3; // Initializing Negative Pin For Motor 1 int enable2pin = 11; // Initializing PWM Pin For Analog Input For Motor 2 int motor2pin1 = 4; // Initializing Positive Pin For Motor 2 int motor2pin2 = 5; // Initializing Negative Pin For Motor 2 int S1 = 12; // Initializing Pin 12 For Sensor 1 int S2 = 9; // Initializing Pin 9 For Sensor 2 int S3 = 8; // Initializing Pin 8 For Sensor 3 int S4 = 7; // Initializing Pin 7 For Sensor 4 int S5 = 6; // Initializing Pin 6 For Sensor 5
  2. walang bisa ang pag-setup () ay isang pagpapaandar na ginagamit upang itakda ang mga pin bilang INPUT o OUTPUT. Itinatakda rin nito ang baud rate ng Arduino. Ang rate ng baud ay ang bilis kung saan nakikipag-usap ang board ng microcontroller sa iba pang mga sangkap na nakakabit.
    {pinMode (paganahin1pin, OUTPUT); // Enabling PWM for Motor 1 pinMode (paganahin ang 2pin, OUTPUT); // Enabling PWM for Motor 2 pinMode (motor1pin1, OUTPUT); // Pagtatakda ng motor1 pin1 bilang output pinMode (motor1pin2, OUTPUT); // Pagtatakda ng motor1 pin2 bilang output pinMode (motor2pin1, OUTPUT); // Pagtatakda ng motor2 pin1 bilang output pinMode (motor2pin2, OUTPUT); // Pagtatakda ng motor2 pin2 bilang output pinMode (S1, INPUT); // Pagtatakda ng sensor1 bilang input pinMode (S2, INPUT); // Pagtatakda ng sensor2 bilang input pinMode (S3, INPUT); // Ang pagtatakda ng sensor3 bilang input pinMode (S4, INPUT); // Pagtatakda ng sensor4 bilang input pinMode (S5, INPUT); // Setting sensor5 as input Serial.begin (9600); // Pagtatakda ng rate ng baud}
  3. walang bisa loop () ay isang pagpapaandar na tumatakbo muli at muli sa isang ikot. Sa loop na ito, nagbibigay kami ng mga tagubilin sa Arduino UNO kung ano ang isasagawa na mga pagpapatakbo. Ang buong bilis ng mga motor ay 255 at ang parehong mga motor ay may iba't ibang bilis. Kaya, kung nais nating ilipat ang robot pasulong, kumanan sa kanan atbp kailangan nating ayusin ang bilis ng mga motor. Gumamit kami ng mga analog na pin sa code dahil nais naming ibahin ang bilis ng dalawang motor sa iba't ibang mga kundisyon. Maaari mong ayusin ang bilis ng iyong mga motor sa iyong sarili.
    void loop () {if (! (digitalRead (S1)) &&! (digitalRead (S2)) && (digitalRead (S3)) &&! (digitalRead (S4)) &&! (digitalRead (S5))) // Forward on ang linya na {analogWrite (enable1pin, 61); // Motor 1 speed analogWrite (paganahin ang 2pin, 63); // Motor 2 bilis digitalWrite (motor1pin1, TAAS); // Motor 1 pin 1 naka-set sa Mataas na digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 na nakatakda sa Mababang digitalWrite (motor2pin1, HIGH); // Motor 2 pin 1 naka-set sa Mataas na digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 na nakatakda sa Mababang} kung (! (DigitalRead (S1)) &&! (DigitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) / / Biglang Kanan Lumiko {analogWrite (enable1pin, 60); // Motor 1 speed analogWrite (paganahin ang 2pin, 80); // Motor 2 bilis digitalWrite (motor1pin1, TAAS); // Motor 1 pin 1 naka-set sa Mataas na digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 na nakatakda sa Mababang digitalWrite (motor2pin1, LOW); // Motor 2 pin 1 naka-set sa Mababang digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 itinakda sa Mababang} kung ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) &&! (DigitalRead (S4)) &&! (DigitalRead (S5))) / / Biglang Kaliwa Lumiko {analogWrite (enable1pin, 80); // Motor 1 speed analogWrite (paganahin ang 2pin, 65); // Motor 2 speed digitalWrite (motor1pin1, LOW); // Motor 1 pin 1 na nakatakda sa Mababang digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 na nakatakda sa Mababang digitalWrite (motor2pin1, HIGH); // Motor 2 pin 1 naka-set sa Mataas na digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 itinakda sa Mababang} kung ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) // stop {analogWrite (enable1pin, 0); // Motor 1 speed analogWrite (paganahin ang 2pin, 0); // Motor 2 speed digitalWrite (motor1pin1, LOW); // Motor 1 pin 1 na nakatakda sa Mababang digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 na nakatakda sa Mababang digitalWrite (motor2pin1, LOW); // Motor 2 pin 1 naka-set sa Mababang digitalWrite (motor2pin2, LOW); // Motor 2 pin 2 nakatakda sa Mababa}}

Mga Aplikasyon

  1. Mga Aplikasyong Pang-industriya : Ang mga robot na ito ay maaaring magamit bilang mga awtomatikong tagadala ng kagamitan sa mga industriya na pinapalitan ang tradisyunal na sinturon ng conveyor.
  2. Mga aplikasyon sa bahay : Maaari din itong magamit sa mga tahanan para sa mga layuning pang-domestic tulad ng paglilinis sa sahig, gawain sa kusina, atbp.
  3. Mga aplikasyon sa paggabay : Ang mga robot na ito ay maaaring magamit sa mga pampublikong lugar tulad ng mga shopping mall, food court, museo atbp upang magbigay ng patnubay sa landas