Hur flyttar du rätter runt din kökshylla med en robot?

Om du letar efter ett sätt att dramatiskt öka charmen och funktionaliteten i ditt kök kan du överväga att minimera den mänskliga ansträngningen där. Den mänskliga ansträngningen kan minimeras genom att skapa en inhemsk robot som kommer att finnas i köket och den kommer att bära smutsiga redskap mot diskbänken och stanna där. När personen lossar redskapen från roboten kommer den tillbaka och tar med mer av dem. Ibland i stora kök är diskbänken inte så nära skåpen, så kommer roboten att ta disken från en plats på hyllan mot den andra. En bana för roboten kommer att göras på hyllan med svart tejp. Roboten kommer att använda två infraröda närhetssensorer för att upptäcka banan och baserat på ingång från sensorerna kommer Arduino att styra motorerna för att röra sig med hjälp av en motorförare.

Hur man ansluter alla nödvändiga kringutrustning för att göra en inhemsk robot?

Nu måste vi samla in de komponenter som krävs och börja göra roboten.

Steg 1: Använda komponenter

Steg 2: Studera komponenterna

Eftersom vi redan har gjort en lista över komponenter, låt oss gå ett steg framåt och gå igenom en kort studie av hur varje komponent fungerar.

De Arduino UNO är ett mikrokontrollkort som består av ett mikrochip ATMega 328P och är utvecklat av Arduino.cc. Detta kort har en uppsättning digitala och analoga datapinnar som kan anslutas till andra expansionskort eller kretsar. Detta kort har 14 digitala stift, 6 analoga stift och programmerbara med Arduino IDE (Integrated Development Environment) via en USB-kabel av typ B. Det kräver 5V för att driva och en C-kodatt driva.

L298N Motor Driver används för att driva likströmsmotorer. L298N är en dubbel H-Bridge-motorförare som möjliggör hastighets- och riktningskontroll av två likströmsmotorer samtidigt. Modulen kan driva likströmsmotorer som har spänningar mellan 5 och 35V, med toppström upp till 2A. Det beror på spänningen som används vid motorns VCC-terminal. I vårt projekt kommer 5V-stiftet att användas som ingång eftersom vi behöver ansluta den till en 5V strömförsörjning för att IC ska fungera ordentligt. Kretsschemat för L298N-motordrivrutinen med DC-motorer anslutna visas nedan för att förstå mekanismen för L298N-motorföraren. För demonstrationen ges ingången från Logikstatusistället för IR-sensorer.

Steg 3: Förstå blockdiagrammet och arbetsprincipen

För det första kommer vi att gå igenom blockschemat, förstå arbetsprincipen och sedan gå mot att montera hårdvarukomponenterna.

De sensorer som vi använder är digitala och de kan ge utdata antingen 0 eller 1. Dessa sensorer som vi har köpt ger 1 på vita ytor och 0 på de svarta ytorna. Sensorerna som vi köper ger slumpmässiga värden, ibland ger de 0 på de vita ytorna och 1 på de svarta ytorna. Vi kommer att använda fem sensorer i den här roboten. Det finns fyra villkor i koden för fem sensorer.

  1. Framåt på linjen: När den mellersta sensorn är på den svarta ytan och resten av sensorerna är på den vita ytan, körs framåtläget och roboten kommer att röra sig rakt framåt. Om vi ​​börjar från Sensor 1 och fortsätt till Sensor5, värdet som var och en av sensorerna kommer att ge är (1 1 0 1 1).
  2. Skarp höger sväng:När Sensor 1 och Sensor 2 är på den vita ytan och resten av sensorerna är på den svarta ytan, kommer det skarpa högervarvningsförhållandet att utföras och roboten kommer att vända skarpt åt höger. Om vi ​​börjar från Sensor 1 och fortsätt till Sensor5, värdet som var och en av sensorerna kommer att ge är (1 1 0 0 0).
  3. Skarp vänster sväng:När Sensor 4 och Sensor 5 är på den vita ytan och resten av sensorerna är på den svarta ytan, kommer det skarpa vänstra svängningsförhållandet att utföras och roboten kommer att svänga vänt åt vänster. Om vi ​​börjar från Sensor 1 och fortsätt till Sensor5, värdet som var och en av sensorerna kommer att ge är (0 0 0 1 1).
  4. Sluta: När alla de fem sensorerna är på den svarta ytan stannar roboten och motorerna kommer att vridas AV. Denna punkt med fem svarta ytor ligger nära diskbänken så att diskmaskinen kan lossa tallrikarna från roboten för tvätt.

Vi kommer att göra en stig på kökshyllan med svart tejp och den stigen kommer att sluta nära diskbänken, så roboten stannar nära diskbänken och diskmaskinen kommer att lossa tallrikarna och sedan kommer roboten att röra sig mot stigen och leta efter redskapen om igen.

Steg 4: Komma igång med Arduino

Om du inte känner till Arduino IDE tidigare, oroa dig inte, för nedan kan du se tydliga steg för att bränna kod på mikrokontrollkortet med Arduino IDE. Du kan ladda ner den senaste versionen av Arduino IDE härifrån och följ stegen nedan:

  1. När Arduino-kortet är anslutet till din dator öppnar du "Kontrollpanelen" och klickar på "Hårdvara och ljud". Klicka sedan på "Enheter och skrivare". Hitta namnet på den port som Arduino-kortet är anslutet till. I mitt fall är det “COM14” men det kan vara annorlunda på din dator.
  2. Öppna nu Arduino IDE. Från Verktyg ställer du Arduino-kortet till Arduino / Genuino UNO.
  3. Från samma verktygsmeny ställer du in portnumret som du såg på kontrollpanelen.
  4. Ladda ner koden som bifogas nedan och kopiera den till din IDE. Klicka på uppladdningsknappen för att ladda upp koden.

Du kan ladda ner koden härifrån

Steg 5: Förstå koden

Koden är väldigt enkel. Det förklaras kort nedan:

  1. I början av koden initialiseras sensortapparna och tillsammans med det initialiseras också stiften för motorföraren L298N.
    int aktivera1pin = 10; // Initiera PWM-stift för analog ingång för motor 1 int motor1pin1 = 2; // Initiera positiv stift för motor 1 int motor1pin2 = 3; // Initialisering av negativ stift för motor 1 int enable2pin = 11; // Initiera PWM-stift för analog ingång för motor 2 int motor2pin1 = 4; // Initiera positiv stift för motor 2 int motor2pin2 = 5; // Initiera negativ stift för motor 2 int S1 = 12; // Initialisering av stift 12 för sensor 1 int S2 = 9; // Initialisering av stift 9 för sensor 2 int S3 = 8; // Initialisering av stift 8 för sensor 3 int S4 = 7; // Initialisering av stift 7 för sensor 4 int S5 = 6; // Initialisera stift 6 för sensor 5
  2. ogiltig installation ()är en funktion som används för att ställa in stiften som INPUT eller OUTPUT. Det ställer också in Arduinoens överföringshastighet. Överföringshastighet är den hastighet med vilken mikrokontrollkortet kommunicerar med de andra anslutna komponenterna.
    {pinMode (enable1pin, OUTPUT); // Aktivera PWM för motor 1 pinMode (enable2pin, OUTPUT); // Aktivera PWM för motor 2 pinMode (motor1pin1, OUTPUT); // Ställa in motor1 pin1 som utgång pinMode (motor1pin2, OUTPUT); // Ställa in motor1 pin2 som utgång pinMode (motor2pin1, OUTPUT); // Ställa in motor2 pin1 som utgång pinMode (motor2pin2, OUTPUT); // Ställa in motor2 pin2 som utgång pinMode (S1, INPUT); // Ställa in sensor1 som ingångs pinMode (S2, INPUT); // Ställa in sensor2 som ingångs pinMode (S3, INPUT); // Ställa in sensor3 som ingångs pinMode (S4, INPUT); // Ställa in sensor4 som ingångs pinMode (S5, INPUT); // Ställa in sensor5 som ingång Serial.begin (9600); // Ställa in överföringshastighet}
  3. ogiltig slinga () är en funktion som körs om och om igen i en cykel. I den här slingan ger vi instruktioner till Arduino UNO vilka operationer som ska utföras. Motorns fulla hastighet är 255 och båda motorerna har olika hastighet. Så om vi vill flytta roboten framåt, sväng höger etc måste vi justera motorns hastighet. Vi har använt analoga stift i koden eftersom vi vill variera hastigheten på de två motorerna under olika förhållanden. Du kan justera hastigheten på dina motorer på egen hand.
    void loop () {if (! (digitalRead (S1)) &&! (digitalRead (S2)) && (digitalRead (S3)) &&! (digitalRead (S4)) &&! (digitalRead (S5))) // Forward on raden {analogWrite (enable1pin, 61); // Motor 1-hastighets analogWrite (enable2pin, 63); // Motor 2-hastighets digitalWrite (motor1pin1, HIGH); // Motor 1 stift 1 inställd på High digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 inställd på Low digitalWrite (motor2pin1, HIGH); // Motor 2 stift 1 inställd på High digitalWrite (motor2pin2, LOW); // Motor 2 stift 2 inställd på Låg} om (! (DigitalRead (S1)) &&! (DigitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) / / Sharp Right Turn {analogWrite (enable1pin, 60); // Motor 1-hastighets analogWrite (enable2pin, 80); // Motor 2-hastighets digitalWrite (motor1pin1, HIGH); // Motor 1 stift 1 inställd på High digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 inställd på Low digitalWrite (motor2pin1, LOW); // Motor 2 stift 1 inställd på Low digitalWrite (motor2pin2, LOW); // Motor 2 stift 2 inställd på Låg} om ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) &&! (DigitalRead (S4)) &&! (DigitalRead (S5))) / / Sharp vänster sväng {analogWrite (enable1pin, 80); // Motor 1-hastighets analogWrite (enable2pin, 65); // Motor 2-hastighets digitalWrite (motor1pin1, LOW); // Motor 1 pin 1 inställd på Low digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 inställd på Low digitalWrite (motor2pin1, HIGH); // Motor 2 stift 1 inställd på High digitalWrite (motor2pin2, LOW); // Motor 2 stift 2 inställd på Låg} om ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) // stop {analogWrite (enable1pin, 0); // Motor 1-hastighets analogWrite (enable2pin, 0); // Motor 2-hastighets digitalWrite (motor1pin1, LOW); // Motor 1 pin 1 inställd på Low digitalWrite (motor1pin2, LOW); // Motor 1 pin 2 inställd på Low digitalWrite (motor2pin1, LOW); // Motor 2 stift 1 inställd på Low digitalWrite (motor2pin2, LOW); // Motor 2-stift 2 inställd på Låg}}

Applikationer

  1. Industriella applikationer: Dessa robotar kan användas som automatiserade utrustningsbärare i industrier som ersätter traditionella transportband.
  2. Inhemska applikationer: Dessa kan också användas hemma för hushållsändamål som golvrengöring, köksarbete etc.
  3. Vägledning ansökningar: Dessa robotar kan användas på offentliga platser som köpcentra, mat domstolar, museer etc. för att ge vägledning
Facebook Twitter Google Plus Pinterest