Innehållsförteckning:

Lätt följd och undvikande av robot baserat på Arduino: 5 steg
Lätt följd och undvikande av robot baserat på Arduino: 5 steg

Video: Lätt följd och undvikande av robot baserat på Arduino: 5 steg

Video: Lätt följd och undvikande av robot baserat på Arduino: 5 steg
Video: LYSA: introduktion och 46 vanliga frågor med svar | Intervju med Patrik och Sofia | 338 2024, November
Anonim
Lätt följd och undvikande av robot baserat på Arduino
Lätt följd och undvikande av robot baserat på Arduino

Detta är ett enkelt projekt som följer eller Undvik ljus.

Jag gjorde denna simulering i Proteus 8.6 pro. Komponenter som krävs: -1) Arduino uno.

2) 3 LDR.

3) 2 Dc-växelmotorer.4) En servo.5) Tre 1k-resistorer.6) en H-Bridge l290D7) En på- och av-omkopplare [för att ändra programvillkor]

8) 9v och 5v Battry

Steg 1: Ardunio -kod

Arduino -koden ändras en liten bit Datum 23 februari 2016]

Denna kod är mycket kommenterad, jag vill inte förklara, men om du behöver lite hjälp kan du kontakta mig på ([email protected])

Obs: -Jag använder två villkor i detta program 1: a för Light Following. 2: a en för att undvika ljus.

Så långt dessa villkor är uppfyllda kommer Robot att följa eller undvika ljus. [Detta är minimivärde för LDR som jag väljer. I normalt ljus är intervallet 80 till 95 men när dess intensitet ökar blir allt fler spänningar inducerade från det när det arbetar med principen om spänningsdelare int a = 400; // Tolaransvärde]

Steg 2: Proteus -filer

För Arduino Library ladda ner från den länken

Steg 3: Hur din H-bridge fungerar

Hur din H-bridge fungerar
Hur din H-bridge fungerar
Hur din H-bro fungerar
Hur din H-bro fungerar

L293NE/SN754410 är en mycket grundläggande H-bro. Den har två broar, en på vänster sida av chipet och en till höger, och kan styra 2 motorer. Den kan driva upp till 1 amp ström och fungera mellan 4,5V och 36V. Den lilla likströmsmotorn du använder i detta labb kan köra säkert från en låg spänning så att denna H-bro fungerar bra. H-bryggan har följande stift och funktioner: Pin 1 (1, 2EN) aktiverar och inaktiverar vår motor oavsett om den ger HIGH eller LOW Pin 2 (1A) är en logisk stift för vår motor (ingång är antingen HIGH eller LOW) Pin 3 (1Y) är för en av motorterminalerna Pin 4-5 är för jord Pin 6 (2Y) är för den andra motorterminalen Pin 7 (2A) är en logisk stift för vår motor (ingång är antingen HIGH eller LOW) Pin 8 (VCC2) är strömförsörjningen för vår motor, detta bör ges med märkspänningen för din motor Pin 9-11 är inkopplade eftersom du bara använder en motor i detta laboratorium Pin 12-13 är för jord Pin 14-15 är inkopplad Pin 16 (VCC1) är ansluten till 5V. Ovan är ett diagram över H-bron och vilka stift som gör vad i vårt exempel. Inkluderat i diagrammet är en sanningstabell som anger hur motorn kommer att fungera enligt tillståndet för de logiska stiften (som ställs in av vår Arduino).

I detta projekt ansluter aktiveringsnålen till en digital stift på din Arduino så att du kan skicka den antingen HÖG eller LÅG och slå på eller stänga av motorn. Motorns logikstift är också anslutna till utsedda digitala stift på din Arduino så att du kan skicka den HÖG och LÅG för att få motorn att svänga i en riktning, eller LÅG och HÖG för att få den att vrida i den andra riktningen. Motorspänningen ansluts till motorns spänningskälla, som vanligtvis är en extern strömförsörjning. Om din motor kan gå på 5V och mindre än 500mA kan du använda Arduinos 5V -utgång. De flesta motorer kräver högre spänning och högre strömdragning än så, så du behöver en extern strömförsörjning.

Anslut motorn till H-bryggan Anslut motorn till H-bron enligt bilden ovan.

Eller, om du använder en extern strömförsörjning för Arduino, kan du använda Vin -stiftet.

Steg 4: Hur LDR fungerar

Nu är det första som kan behöva ytterligare förklaring användningen av de ljusberoende resistorerna. Ljusberoende resistorer (eller LDR: er) är motstånd vars värde ändras beroende på mängden omgivande ljus, men hur kan vi upptäcka motstånd med Arduino? Du kan inte riktigt, men du kan upptäcka spänningsnivåer med hjälp av de analoga stiften, som kan mäta (vid grundläggande användning) mellan 0-5V. Nu kanske du frågar "Tja, hur konverterar vi motståndsvärden till spänningsändringar?", Det är enkelt, vi gör en spänningsdelare. En spänningsdelare tar in en spänning och matar sedan ut en bråkdel av den spänningen som är proportionell mot ingångsspänningen och förhållandet mellan de två värdena på motstånd som används. Ekvationen för vilken är:

Utgångsspänning = Ingångsspänning * (R2 / (R1 + R2)) där R1 är värdet på det första motståndet och R2 är värdet på det andra.

Nu ställer detta fortfarande frågan "Men vilka motståndsvärden har LDR?", Bra fråga. Ju mindre mängd omgivande ljus desto högre motstånd, mer omgivande ljus innebär ett lägre motstånd. Nu för de specifika LDR: n som jag använde var deras motståndsintervall från 200 - 10 kilo ohm, men detta ändras för olika, så se till att leta upp var du köpte dem från och försök hitta ett datablad eller något sådant. fall R1 är faktiskt vår LDR, så låt oss ta tillbaka den ekvationen och göra lite matematik-e-magi (matematisk elektrisk magi). Nu måste vi först konvertera dessa kilo ohm-värden till ohm: 200 kilo-ohm = 200 000 ohm 10 kilo-ohm = 10, 000 ohm Så för att hitta vad utspänningen är när vi är i kolsvart kopplar vi in följande nummer: 5 * (10000 / (200000 + 10000)) Ingången är 5V eftersom det är vad vi får från Arduino. Ovanstående ger 0,24V (avrundat). Nu hittar vi vad utspänningen är i toppljusstyrka med hjälp av följande nummer: 5 * (10000 / (10000 + 10000)) Och detta ger oss 2,5V exakt. Så det här är spänningsvärdena som vi kommer att få in i Arduinos analoga stift, men det är inte de värden som kommer att ses i programmet, "Men varför?" kan du fråga. Arduino använder ett analogt till digitalt chip som omvandlar den analoga spänningen till användbar digital data. Till skillnad från de digitala stiften på Arduino som bara kan läsa ett HIGH eller LOW-tillstånd som är 0 och 5V kan de analoga stiften läsa från 0-5V och konvertera detta till ett nummerintervall på 0-1023. Nu med lite mer matematik-magi. vi kan faktiskt beräkna vilka värden Arduino faktiskt kommer att läsa.

Eftersom detta kommer att vara en linjär funktion kan vi använda följande formel: Y = mX + C Where; Y = Digital ValueWhere; m = lutning, (stigning / körning), (digitalt värde / analogt värde) Var; C = Y -avlyssning Y -avlyssningen är 0 så det ger oss: Y = mXm = 1023 /5 = 204,6 Därför: Digitalt värde = 204,6 * Analogt värde Så i tonhöjd kommer det digitala värdet att vara: 204,6 * 0,24 vilket ger ungefär 49. Och i toppljusstyrka blir det: 204,6 * 2,5 Vilket ger cirka 511. Nu med två av dessa uppställda på två analoga stift kan vi skapa två heltalsvariabler för att lagra sina värden två och göra jämförelseoperatorer för att se vilken som har det lägsta värdet, vrid roboten åt det hållet.

Rekommenderad: