Solar powered ficklampa kontrollerade mini tank robot!



Ficklampa kontrollerade Solar Powered Arduino aktiverad Robot

Detta projekt är en lätt lutning känsliga robot med solar laddning kapacitet, med andra ord det söker upp ljuset att ladda själv. Det åstadkommer detta beteende med en uppsättning av fyra ljus känsliga photoresistors i spänningsavdelare kretsar, Arduino enheten läser de fyra värden som motsvarar styrkan i det mottagna av sensorer genom dess analoga Läs stift. Sedan gäller det en hög spänning över en reed switch som avslutar en krets mellan ett 9v batteri och två leksak motorer, vilket resulterar i svarvning eller går mot ljuset. Dessa motorer var inte kan aktiveras direkt med Arduino, om du får små tillräckligt motorer, den kopplande delen av detta projekt får utelämnas utan funktionsnedsättning. Om någon av de fyra fotodioderna registrerar mycket högre än de andra, upptäcker det vilka fotodiod får ökad signalen och vänder eller rör sig i den riktningen för så länge ökad signalen tas emot. Detta ljus spårning algoritm kan användas till programmet solpaneler för att spåra på solen, eller för kontroll av robot via ficklampa, vilket framgår här.

Beskrivning

Bilder och diagram över hela kretskortet skulle vara lite rörigt i detta fall, alltså jag har boxed de viktigaste komponenterna som upprepas 4 och 2 gånger respektive i det faktiska projektet. Den första kretsen subsystem är spänningsavdelare utifrån ett fotomotstånd som upprepas fyra gånger, med varje fotomotstånd som släpps ut på en annan sida av din robot. Ett fotomotstånd varierar motstånd baserat på ljus signal som tas emot via photoconductivity av den mottagande halvledarmaterial. Det variabla motståndet producerar en variabel strömmen i kretsen enligt Ohms lag, V = iR där spänning V är konstant (5V). Var försiktig att inte trådarna leder till någon en fotodiod alltför långa, eftersom du kan förlora signal på grund av det inre motståndet av tråd och lödning anslutningar. Spänning levereras till denna del av kretsen direkt från Arduino UNO'S 5V / Gnd stift. 5V linjen passerar genom ett 10kΩ motstånd, genom fotodiod, och tillbaka till marken. En analog i signalen läses från mellan resistorn och fotodiod via Arduino analog i stiften. Ett valfritt tillägg är indikatorn LED visas kommer från andra sidan av motståndet (positiv) till marken (negativ), denna LED kommer att ändra intensitet baserat på den signal som tas emot av fotodiod. Dessa lysdioder är för nära en av fotodioderna, din maskin kan ange en slags analog återkoppling i den riktningen, där det snurrar i riktning mot sin egen lysdioder. Jag tror jag har kodat mot denna möjlighet, men om du ser detta beteende, prova att ta lysdioderna ut som de är användbara endast medan felsökning denna del av banan. Fyra analoga i pins ska anslutas till fyra upprepningar av denna krets block. I princip kan du öka antalet iterationer för ökad riktad känslighet, men detta är inte nödvändigt för det här programmet. Den skiss som går med detta projekt är känslig för en skillnad i mottagna ljusintensitet, om alla de signaler som tas emot är mycket lika, roboten kommer att fortsätta att prova dess miljö, men förbli stillastående. Så snart någon av signalerna som är större än de andra av ett tröskelvärde, fylls i dess rörelse loop. Det avgör vilka fotomotstånd får maximal signalen och tillämpar sedan strömmen till motorn som flyttar roboten i rätt motsvarande riktning. Den här åtgärden fortsätter så länge det fotomotstånd får maximal intensitet, och det finns en tillräckligt stor skillnad mellan Läs värdena.

Den andra blockerade delen av kretsen är bara nödvändigt om du behöver mer makt till motorerna då Arduino kan leverera direkt från dess PWM utdata stift. Mitt chassi / låtar / motor från en kinesisk leksak, Arduino har problem med att köra motorerna med spår på, så jag byggde i en byta block att den krets som gör PWM utdata till vända en reed-relä som slutför en krets till ett 9V batteri. Reed reläfungerar via en elektromagnet som när aktiveras av lägre nuvarande (Arduino) orsakar kontaktpunkterna inom växeln att bli magnetiserat och stänga banan. I princip kan du köra mycket stora elmotorer med detta begrepp genom att välja rätt rörblad reläet. Jag behövde inte mycket mer makt, så ett 9V batteri var gott, växeln jag använt är i delar så att avsnitt. Eftersom denna komponent drivs via elektromagnetiska fältet, en övergående skydd diod är nödvändigt, eftersom det kollapsande magnetfältet (när växeln är avstängd) kan orsaka en nuvarande toppar resa tillbaka mot Arduino som förutspådde av Maxwells ekvationer. En bra diskussion om hur man genomför denna särskilda reed relä växlar utan orsakar skador på din styrelse kan hittas här.

Denna del av kretsen upprepas två gånger motsvarar två motorer, och som sagt, om du kan driva din motors direkt med Arduino, du kan utelämna denna del av projektet utan funktionsnedsättning.

Kopplingsschema

Spänningsavdelare:

Byta krets:

Reservdelslista

Arduino UNO ($14.48)

4 x Resistor, 10 KΩ

4 x foto ljus känsliga Resistor fotomotstånd Optoresistor 5mm GL5516 5516

4 x LED

RadioShack® 1.5W solpanel 9V ($5,74)

Toy spår / plattform / motorer (2)

2 x reedbrytare (OMR-C - 105H)

Koden

CONST int frontPin = A0;

CONST int leftPin = A1;

CONST int rightPin = A2;

CONST int backPin = A3;

CONST int leftMotor = 9;

CONST int rightMotor = 10;

int tröskelvärdet = 170;

int riktning;

int direction1;

int direction2;

int dröjsmål = 25;

int Delay2 = 25;

void setup()

{

pinMode (frontPin, ingång);

pinMode (leftPin, ingång);

pinMode (rightPin, ingång);

pinMode (backPin, ingång);

pinMode (leftMotor, produktionen);

pinMode (rightMotor, produktionen);

digitalWrite (leftMotor, hög);

digitalWrite(rightMotor,HIGH);

Delay(100);

digitalWrite (leftMotor, låg);

digitalWrite (rightMotor, låg);

Delay(100);

digitalWrite (leftMotor, hög);

digitalWrite (rightMotor, hög);

Delay(100);

digitalWrite (leftMotor, låg);

digitalWrite (rightMotor, låg);

Delay(1500);

Serial.BEGIN(9600);

}

void loop()

{

int riktning;

int direction1;

int direction2;

int frontSignal = 1023 - analogRead(frontPin);

int leftSignal = 1023 - analogRead(leftPin);

int rightSignal = 1023 - analogRead(rightPin);

int backSignal = 1023 - analogRead(backPin);

Serial.println(frontSignal);

Serial.println(leftSignal);

Serial.println(rightSignal);

Serial.println(backSignal);

frontSignal + leftSignal + rightSignal + backSignal < = tröskelvärdet

om (abs(frontSignal-leftSignal)+abs(frontSignal-rightSignal)+abs(frontSignal-backSignal) > = tröskelvärdet)

{

Serial.println ("motion loop");

direction1 = max (frontSignal, leftSignal);

direction2 = max (rightSignal, backSignal);

Riktning = max (direction1, direction2);

Loop här anges endast om ljuset emot är inte jämnt fördelad.

om (frontSignal == riktning)

{

göra

{

digitalWrite (leftMotor, hög);

digitalWrite (rightMotor, hög);

Delay(Delay2);

digitalWrite (leftMotor, låg);

digitalWrite (rightMotor, låg);

Delay(delay);

frontSignal = 1023 - analogRead(frontPin);

leftSignal = 1023 - analogRead(leftPin);

rightSignal = 1023 - analogRead(rightPin);

backSignal = 1023 - analogRead(backPin);

direction1 = max (frontSignal, leftSignal);

direction2 = max (rightSignal, backSignal);

Riktning = max (direction1, direction2);

Serial.println("forward");

} medan (frontSignal == riktning & & abs(frontSignal-leftSignal)+abs(frontSignal-rightSignal)+abs(frontSignal-backSignal) > = tröskelvärdet);

digitalWrite (leftMotor, låg);

digitalWrite (rightMotor, låg);

}

annat if (leftSignal == riktning) //Signal är störst till vänster

{

göra

{

Serial.println("left");

digitalWrite (rightMotor, hög);

Delay(Delay2);

digitalWrite (rightMotor, låg);

Delay(delay);

frontSignal = 1023 - analogRead(frontPin);

leftSignal = 1023 - analogRead(leftPin);

rightSignal = 1023 - analogRead(rightPin);

backSignal = 1023 - analogRead(backPin);

direction1 = max (frontSignal, leftSignal);

direction2 = max (rightSignal, backSignal);

Riktning = max (direction1, direction2);

} medan (leftSignal == riktning & & abs(frontSignal-leftSignal)+abs(frontSignal-rightSignal)+abs(frontSignal-backSignal) > = tröskelvärdet);

digitalWrite (rightMotor, låg);

}

annat if (rightSignal == riktning) //Signal är störst till höger.

{

göra

{

Serial.println("Right");

digitalWrite (leftMotor, hög);

Delay(Delay2);

digitalWrite (leftMotor, låg);

Delay(delay);

frontSignal = 1023 - analogRead(frontPin);

leftSignal = 1023 - analogRead(leftPin);

rightSignal = 1023 - analogRead(rightPin);

backSignal = 1023 - analogRead(backPin);

direction1 = max (frontSignal, leftSignal);

direction2 = max (rightSignal, backSignal);

Riktning = max (direction1, direction2);

} medan (rightSignal == riktning & & abs(frontSignal-leftSignal)+abs(frontSignal-rightSignal)+abs(frontSignal-backSignal) > = tröskelvärdet);

digitalWrite (leftMotor, låg);

}

annars om (backSignal == riktning) //Signal är största bakom.

{

göra

{

Serial.println("back");

digitalWrite (leftMotor, hög);

Delay(Delay2);

digitalWrite (leftMotor, låg);

Delay(delay);

frontSignal = 1023 - analogRead(frontPin);

leftSignal = 1023 - analogRead(leftPin);

rightSignal = 1023 - analogRead(rightPin);

backSignal = 1023 - analogRead(backPin);

direction1 = max (frontSignal, leftSignal);

direction2 = max (rightSignal, backSignal);

Riktning = max (direction1, direction2);

} medan (backSignal == riktning & & abs(frontSignal-leftSignal)+abs(frontSignal-rightSignal)+abs(frontSignal-backSignal) > = tröskelvärdet);

digitalWrite (leftMotor, låg);

}

}

annat if(abs(frontSignal-leftSignal)+abs(frontSignal-rightSignal)+abs(frontSignal-backSignal) < = tröskelvärdet)

{

int skillnaden = abs(frontSignal-leftSignal)+abs(frontSignal-rightSignal)+abs(frontSignal-backSignal);

Serial.println ("Signal differential är lika med");

Serial.println(Difference);

digitalWrite (leftMotor, låg);

digitalWrite (rightMotor, låg);

Delay(1000); Annars prova miljö med en hastighet av 10 hz

}

annat

{

digitalWrite (leftMotor, låg);

digitalWrite (rightMotor, låg);

}

}

Relaterade Ämnen

Hur man gör en magnetisk monterbar solar minty ljus (solar powered ficklampa)

bygga en solar powered ficklampa i en Altoids tin för nästan ingenting. Innehåller hög effektivitet lysdioder. Helt själv drivs. Använder en solpanel, ett laddningsbart batteri, 5 extremt ljusa vita lysdioder och en Vippbrytare. Allt passar in i din...

Solar Powered ficklampa (gardenlight casemod)

Begreppet en solar powered ficklampa verkar mycket liknar idén om att sätta en på en ubåt om vi inte lägger till kvalet att ficklampan har möjlighet att lagra energi. Då är konceptet mycket vettigare.Solar powered trädgård lampor finns på min lokala...

Solar Powered Robot från papperskorgen!

Uppdatering; Min ålderskategori för tävlingen är 13-18 eftersom jag är femton. :)Ja, titeln förklarar ganska väl. I detta Instructable jag visar dig steg för steg powered hur man konstruerar ett ljuskänsligt, solar, robot. Allt du behöver är några de...

Solar Powered Lego Mindstorms NXT Robot

steg för steg bilder för att göra den solar powered Lego Mindstorms NXT Robot....

Solar Powered Mindstorms NXT Robot

detta är en snabb video instruktion om hur man gör en Solar Powered Mindstorms NXT robot. Den hela bygget tar ca 10 minuter.Du kan också se det, steg för steg med bättre bilder på dexterindustries.com hemsida här. http://dexterindustries.com/Project-...

Avlägsen kontrollerade SOLAR POWERED pråm

här är en solar powered pråm jag byggt. Tyvärr, inte instructible men det är väldigt BASIC R/C grejer. Om du kan koppla in en RC bil kan du koppla detta in. Bara tråd solpanelen parallellt med batteriet. Det är så enkelt.Den solpanel och motor är frå...

Solar Powered vertikala DROPP Hydroponics med franska smide Detaljer * uppdaterad! *

jag verkligen ville ha ett sätt att växa en betydande mängd råvaror utan att använda någon makt som krävs en plugg att göra det, och att det ser bra - mer som möbel som du vill ha inne i huset. Så byggde jag detta.Det finns en miljon olika sätt att k...

Automatiserad Solar Powered horisontella Blind Controller

Jag började detta projekt eftersom vi har några horisontella persienner ligger i ett högt fönster över ytterdörren till vårt hus. Fönstret vetter mot söder, och här i Colorado, det betyder massor av solsken. Det vore trevligt att ha att solljuset lys...

Hur man gör en Solar Powered gångväg

jag säker älskar mig några sun burkar! De innehåller flera av mina favorit saker att röra runt med: lysdioder, solpaneler, varmt lim, man det är alla där och de ser bra ut för start!Det finns dock ett stort fett problem: solen! När det är mörkt ute,...

Solar Altoids ficklampa Experiment (SAFE)

hälsningar Karl skaparna. Nyligen blev jag ett fan av Altoids Tin projekt... och bestämde mig för att prova min hand. Jag nu presentera en stor lilla helg projekt som kommer att konsumera ett par timmar, har verkliga praktiska värde och troligen verk...

Solar Powered USB-laddare (telefoner, MP3-spelare etc)

Detta är min ta på ett litet projekt som redan väldokumenterade. Mycket enkel att göra och en bra introduktion till elektronik och solar powered grejer. Fungerar alldeles utmärkt också. Du behöver för att generera 5-6V för att ladda en telefon.Du beh...

Bygga din egen DIY solar powered mobiltelefon

detta Instructables beskriver i detalj hur man bygger en egen solar powered mobiltelefon.Linjär teknik artikel diskuterar solar laddning, med maximal effekt spårning - se utdraghttp://CDs.Linear.com/docs/lt%20Journal/LTMag-V19N4-04-LT3652-JimDrew.pdf...

Solar Powered Trike

resa gratis med kraften i solen!Hur man bygger en Solar Powered TrikeSyftet med detta projekt är att bygga ett fordon som:-Ger gratis, "gröna" transport för korta sträckor (< 10 miles), således måste det aldrigAnslut till ett vägguttag eller...

Bygga ett växthus med Solar Powered Ventalation

Jag bor i solnedgången klimatzon 17 (San Francisco), så deras var mycket saker jag vill växa, men kunde inte på grund av klimatet. Min basilika var magra, min aubergine skrumpnade... Jag hade tur att få 2 eller 3 små tomater per planta. Jag velat ha...

Få din solar powered lampor tillbaka till livet

alla har ett gäng av dessa hemma. Du ser dem i butik, köpa dem, sätta dem i din trädgård och beroende på deras kvalitet du kommer att kasta dem ett sätt några veckor till en säsong senare.Solar powered lampor fungera så här;1. solen skiner på solpane...

Bygga en alla SOLAR avlägsen kontrollerade båt RC båt med Solar Attic Fan delar - Rescue Boat -

kan du bygga en alla SOLAR avlägsen kontrollerade båt med solar attic fläkt delar.Har du någonsin varit i sjön för att titta på killar med Chris Craft eller seglar båtar? De sitter runt och prata 90% av tiden. Varför inte de kör sina båtar mer? Efter...

CO2 bil och Solar Powered båt

The Co2 bilens sida intag faktiskt fungerar, och töm i hjulhusen. Min Solar powered båten var den snabbaste båt som min engineering lärare har sett. Han sa att det skulle ha vunnit tävlingar, om bara jag slutade det i tid!...

Hur man gör en Solar Powered Fan!

(''Hooray! Det är äntligen gjort. Det är lite sent in i tävlingen men vi hoppas det är bra!'' )Detta är vad vi anger för Go Green tävlingen. Det är en cool solar powered mini fan. Tanken är att om du hade en fläkt som du vill använda luftkonditioneri...

Cykel Directional Lights - enkel, låg kostnad och Solar Powered

Jag använda min cykel för att pendla till arbetet, och under hösten säsongen gång jag befinner mig rida hem i mörkret. Medan min cykel är utrustad med varselljus (och jag med en reflekterande väst) är jag inte särskilt orolig för att bli sedd medan j...