Robot slang (3 / 16 stap)

Stap 3: Combineren motoren en fotocel sensoren

Beschrijving

In deze stap zullen wij nemen van de drie fotocel sensoren en ze te gebruiken om te rijden op de motor snelheden.  In onze code zal men verwijst de motoren aan Motor A of B van de Motor, op basis van waar ze zijn aangesloten op de motor schild, en de sensoren zullen Sensor 3, Sensor 4 en 5 van de Sensor, gebaseerd op waar ze zijn aangesloten op de analoge lezingen.  Sensor 3 en 4 van de Sensor zal de directionele sensoren en Sensor 5 zullen de omgevingslichtsensor.

Algoritme

Om te controleren van de motoren, we zullen krijgen de base lezen van alle drie sensoren eerste (deze worden opgeslagen in photocellReading #).

We nemen de verschillen tussen de Sensor 3 en 5 van de Sensor (en opslaan in photocellDifference1) zo goed als het verschil tussen Sensor 4 en 5 van de Sensor (en opslaan in photocellDifference2).  Dit zal ons vertellen hoe veel helderder de directionele sensoren zijn van de ambient sensor.  Aangezien het licht zal worden shinning op deze sensoren, moeten de lezingen verschil vertellen hoeveel licht is wordt gericht op elke sensor.

Vervolgens aftrekken van de photocellDifference1 en photocellDifference2 van elkaar en opslaan in lrValue.  Door dit verschil, zijn we in staat om te vertellen hoe veel meer licht elke directionele sensor is sensing.  Als dit getal negatief is dan het middel Sensor 4 heeft minder licht dan de Sensor 3 en meer snelheid moet erop gericht zijn Motor B.  Als de lrValue positief is dan betekent dit dat de Sensor 3 meer licht dan de Sensor 4 heeft en meer snelheid moet worden gericht aan Motor A.

Code

/*
int photocellReading3; de analoge lezen van de analoge weerstand scheidingslijn
int photocellReading4; de analoge lezen van de analoge weerstand scheidingslijn
int photocellReading5; de analoge lezen van de analoge weerstand scheidingslijn

int photocellDifference1;
int photocellDifference2;
int lrValue;

ongeldig setup(void) {}
Serial.begin(9600);

pinMode (12, OUTPUT); Ingewijden Motor kanaal A pin
pinMode (9, OUTPUT); Ingewijden rem kanaal A pin

pinMode (13, OUTPUT); Ingewijden Motor kanaal B pin
pinMode (8, OUTPUT); Ingewijden rem kanaal B pin

digitalWrite (13, laag); Stelt voorwaartse richting van kanaal A
digitalWrite (8, laag); Losraken van de rem voor kanaal A

digitalWrite (12, laag); Stelt voorwaartse richting van kanaal B
digitalWrite (9, laag);   Losraken van de rem voor kanaal B
}

ongeldig loop(void) {}
photocellReading3 = analogRead(3); licht lezing baseren
photocellReading4 = analogRead(4); licht lezing baseren
photocellReading5 = analogRead(5); licht lezing baseren

krijgen van de verschillen tussen de sensoren voor motoren en omringende lichte sensor
photocellDifference1 = (photocellReading3 - photocellReading5);
photocellDifference2 = (photocellReading4 - photocellReading5);

verschil tussen de twee lezingen
lrValue = photocellDifference2 - photocellDifference1;

controle snelheid aan elke motor op basis van lrValue
Als (lrValue < =-120) {}
analogWrite (11, 255);
analogWrite (3, 100);
} else if (lrValue < =-90) {}
analogWrite (11, 224);
analogWrite (3, 100);
} else if (lrValue < = -60) {}
analogWrite (11, 193);
analogWrite (3, 100);
} else if (lrValue < = -40) {}
analogWrite (11, 162);
analogWrite (3, 100);
} else if (lrValue < = -25) {}
analogWrite (11, 131);
analogWrite (3, 100);
} else if (lrValue < 25) {}
analogWrite (11, 100);
analogWrite (3, 100);
} else if (lrValue < 40) {}
analogWrite (11, 100);
analogWrite (3, 131);
} else if (lrValue < 60) {}
analogWrite (11, 100);
analogWrite (3, 162);
} else if (lrValue < 90) {}
analogWrite (11, 100);
analogWrite (3, 193);
} else if (lrValue < 120) {}
analogWrite (11, 100);
analogWrite (3, 224);
} else {}
analogWrite (11, 100);
analogWrite (3, 255);
}
}

Video van de controle van de motoren lichtsensoren


Snelheid breken

In de code, kunt u bekijken we hebben een lange lijst van als anders verklaringen regelen van de snelheid van elke motor.  Deze code werkt voor onze slang en onze fotocel sensor/motor combinatie.  Als u het materiaal voor uw slang of vinden dat deze waarden niet voor u werken hebt gewijzigd, wanneer voel je vrij om de waarden te wijzigen, totdat u de controle van de snelheid die werkt voor u vinden.  Onze slang is bedoeld om te werken bij weinig licht en een vrij snel tempo.  Als u uw slang langzamer wilt, bijvoorbeeld, kunt u uit te breiden het bereik van lrValues in de als anders verklaringen, dus dat het zal een hoog aangedreven licht gericht op een sensor voordat de motoren hoogste snelheid bereiken.

We vonden ook dat elke motor een minimumwaarde van snelheid (ons was 100) nodig om te kunnen trekken van het gewicht van de slang.  Er kunnen nooit een snelheid-waarde van 0 naar een motor.  Als een motor volledig stoppen zou, zou het dan nemen te veel werk om de motor weer in beweging.

We vonden was het gemakkelijkste te plannen van de snelheidscontrole die in een tabel voor het schrijven van de if anders verklaringen.  Dit was onze tafel:
Motor A Motor B
lrValue analoog 3 analoge 11
-∞ →-120 225 100
-119 →-90 224 100
-89 →-60 193 100
-59 →-40 162 100
-39 →-25 131 100
-24 → 24 100 100
25 → 39 100 131
40 → 59 100 162
60 → 89 100 193
90 → 119 100 224
120 → ∞ 100 225

Gerelateerde Artikelen

DIY elektromyografie

DIY elektromyografie

Elektromyografie (EMG) is de meting van zenuwprikkels aan uw spieren. Waarschijnlijk de meest populaire consument apparaat met behulp van EMG is de Myo, die is een armband waarmee u gesture control – kijk op hun website om te zien wat coole demo's va
Waterdichte uw servomotoren

Waterdichte uw servomotoren

als u zijn met behulp van servomotoren voor onderwater activiteiten, hoewel deze hitec waterproof servo's zijn super mooi, u hoeft niet te besteden 50 dollar per servo. Here's how to waterproof servo's jezelf in een paar stappen. Ik heb dit niet gete
3D gedrukte slang robot

3D gedrukte slang robot

Toen ik mijn 3D-printer begon ik te denken wat kan ik maken met het. Ik drukte een heleboel dingen, maar ik wilde maken van een hele constructie met behulp van 3D printen. Toen ik dacht over het maken van de robot dier. Mijn eerste idee was om een ho
Zachte Robots: Maak een kunstmatige spier Arm en grijper

Zachte Robots: Maak een kunstmatige spier Arm en grijper

Met behulp van artificiële lucht spieren, kunnen een zeer flexibele robotarm en grijper worden gemaakt.Deze zachte robot wordt aangedreven door perslucht en elke één van de 11 spieren kan worden gecontroleerd door een standaard universele infrarood a
Rock'em Sock'em Robot kostuums

Rock'em Sock'em Robot kostuums

Hallo Instructoids. Ik ben blij om te delen ten slotte een kostuum te bouwen dat ik in 2012 afgerond. Ik gebruikte zoveel gerecycleerde materialen die ik kon en ik heb over $150 in totaal, vooral op warme lijm, plakband en batterijen. Een heleboel di
Child's Robot kostuum met geluidseffecten, Candy Detector en meer

Child's Robot kostuum met geluidseffecten, Candy Detector en meer

ik maakte mijn dochter deze robot kostuum voor halloween. Ik was geïnspireerd door Dit Kid Robot kostuum. Ik nam mij een beetje in een andere richting en toegevoegd een paar meer nieuwigheden zoals lichten in de antennes en oren, een grote knop pad m
ShakerBot: De Robot van een Snakeboard

ShakerBot: De Robot van een Snakeboard

als je van robot voortbewegen denkt, wat is het eerste ding dat komt te letten? Een Tweebenig? een op wielen mobiele robot? Een differentiële aandrijfsysteem?  Ik geloof oprecht zijn er veel meer interessante biologisch geïnspireerde motoriek mechani
Xbox 360 ROBOTIC ARM [ARDUINO]: AXIOM ARM

Xbox 360 ROBOTIC ARM [ARDUINO]: AXIOM ARM

AXIOM ARM werd ontworpen door Sergei Dines: Mechanical Engineer Senior op USF (Tampa).LinkedIN: http://www.linkedin.com/in/sergeidinesWebsite: http://www.surgerobotics.com/E-mail: sergeidinesNieuw!! : Verkorte versie bezoek: http://www.intorobotics.c
Zachte Robotic binnenzool

Zachte Robotic binnenzool

Zachte robotica is een opkomende technologie die veel real-world toepassingen te wijten aan het groot voor mens-fysieke interactie kan hebben. Het doel van dit project was een pneumatisch levensoffer schoen inlegzool die is veelzijdig en comfortabel
Eentraps zachte Robots met LEGOs

Eentraps zachte Robots met LEGOs

dit project is een vervolg op mijn Air-Powered zachte robot grijper project, op basis van onderzoek door de Whitesides groep aan de Harvard University. Ik heb veel positieve feedback gekregen op dit project, maar een herhaald vraag - "wat als ik geen
Arduino Robot Arm Mixologist

Arduino Robot Arm Mixologist

"Maar wacht," zou je zeggen, "Ik dacht dat RobotGeek al gepubliceerd een instructable over het gebruik van een robotarm voor het leveren van dranken!" Die we zeggen, "Ja, maar niet uitzien." Het laatste project kon schotel ui
Arduino Robot Arm barman

Arduino Robot Arm barman

Wilt u wel eens een robot die kan pop uit de schoten? De toekomst van feesten is hier met de Robot Arm barman! Serveren drankjes in stijl, en maak indruk op uw gasten met de druk op de knop! Dit project maakt gebruik van een RobotGeek Snapper Arm met
"Project lancering Platform Robot" deel 1 - het hoofd

"Project lancering Platform Robot" deel 1 - het hoofd

Inleiding;Ik ben in het proces van het bouwen van een robot dat ik kan sommige van mijn vele projecten om te hechten en functie off van de robot zelf hebben. In plaats van het maken van een plat bed op nummers, ik dacht dat het kon gebruiken sommige
Hand nabootsen van Robot

Hand nabootsen van Robot

Hallo mensen, dit is de diepgaande herziening van een hand nabootsen robot die ik heb gemaakt. Het idee kwam bij mij toen ik een robot die kon letterlijk sommige taken voor mij doen en wilde dus ik de menselijke hand als referentie voor mijn ontwerp