Doolhof van Oplosser Robot, met behulp van kunstmatige intelligentie met Arduino (3 / 10 stap)

Stap 3: Installeren en testen van de nieuwe sensoren


De nieuwe matrix van nu 7 sensoren, is gemonteerd op een manier dat de 5 originele die uitsluitend worden gebruikt voor PID controle (en detectie van de "volledige lijn", later uitgelegd) en nieuwe 2 links om te worden gebruikt voor alleen links en rechts de detectie van doorsnede.

Als een snel overzicht, laten we niet vergeten hoe de 5 originele "digitale" sensoren werken:

Als een sensor is gecentreerd met betrekking tot de zwarte lijn, zal alleen dat specifieke sensor produceren een hoog. Door de andere kant, moet de ruimte tussen sensoren toe dat 2 sensoren kunnen dekken de volledige breedte van de zwarte lijn tegelijkertijd ook het produceren van een hoge signaal op beide sensoren worden berekend.

De werking van de 2 nieuwe "analoge" sensoren:

Als een van de sensoren is gecentreerd met betrekking tot de zwarte lijn, de uitvoer een analoge waarde, meestal produceren een output op Arduino ADC balg "100" zal worden (Vergeet niet dat de ADC een uitgang van 0 tot 1023 produceert). Met lichtere oppervlakken, de output waarde hoger zal zijn (Ik testte 500 tot 600 over het Witboek, bijvoorbeeld). Deze waarde moet worden getest op verschillende situaties van licht en oppervlakte materialen te bepalen van de juiste constante van de drempel moet worden gebruikt in uw geval (Zie de afbeelding hier).

De Arduino code bekijkt, elk een van de sensoren wordt vastgesteld met een specifieke naam (denk dat de oorspronkelijke lijn volgen Sensor meer naar links moet worden toegewezen met een label "0"):

Const int lineFollowSensor0 = 12; Via de digitale ingang

Const int lineFollowSensor1 = 18; Met behulp van analoge Pin A4 als digitale ingang

Const int lineFollowSensor2 = 17; Met behulp van analoge Pin A3 als digitale ingang

Const int lineFollowSensor3 = 16; Met behulp van analoge Pin A2 als digitale ingang

Const int lineFollowSensor4 = 19; Met behulp van analoge Pin A5 als digitale ingang

Const int farRightSensorPin = 0; Analoge Pin A0

Const int farLeftSensorPin = 1; Analoge Pin A1

Om te onthouden, zijn de mogelijke 5 originele sensor-array output als volgt op een regel:

  • 1 1 1 1 1
  • 0 0 0 0 0
  • 0 0 0 0 1
  • 0 0 0 1 1
  • 0 0 0 1 0
  • 0 0 1 1 0
  • 0 0 1 0 0
  • 0 1 1 0 0
  • 0 1 0 0 0
  • 1 1 0 0 0
  • 1 0 0 0 0

Met de toevoeging van de 2 nieuwe zijn hun mogelijke uitgangen:

  • Uiterst links Sensor: Analoge uitgang hoger of lager zijn dan een drempel
  • Uiterst rechts Sensor: Analoge uitgang hoger of lager zijn dan een drempel

Opslag om de waarden van elke sensor een array variabele is gemaakt voor de oorspronkelijke 5 digitale sensoren:

int LFSensor [5] = {0, 0, 0, 0, 0};

En twee integer variabelen voor de 2 nieuwe analoge sensoren:

int farRightSensor = 0;
int farLeftSensor = 0;

Elke positie van de matrix en de variabelen zal voortdurend worden bijgewerkt met de output van elk van de sensoren:

LFSensor [0] = digitalRead(lineFollowSensor0);

LFSensor [1] = digitalRead(lineFollowSensor1);

LFSensor [2] = digitalRead(lineFollowSensor2);

LFSensor [3] = digitalRead(lineFollowSensor3);

LFSensor [4] = digitalRead(lineFollowSensor4);

farRightSensor = analogRead(farRightSensorPin);

farLeftSensor = analogRead(farLeftSensorPin);

Met 5 sensoren, staat zoals gezien in de volgeling lijn Robot project, het genereren van een "fout-variabele", die helpen zal om controle van de robot de positie over de lijn. Ook zal een variabele met de naam "modus" worden gebruikt voor de definitie als de robot een lijn, over een doorlopende lijn, een snijpunt of geen lijn helemaal volgt.

Deze variabele "modus" zal ook worden gebruikt met de "veel links/rechts" sensoren. Voor vertegenwoordiging, laten we de ver links en rechts sensoren hebben 3 mogelijke statussen: H (hoger dan de drempel), L (kleiner dan de drempel) en X (onbelangrijk). Voor de digitale uitgangen, zal de gebruikelijke 0, 1 en wij zullen ook introduceren de X:

  • X 1 1 1 1 1 X == > modus = CONT_LINE; fout = 0;
  • 0 H X X X X L == > modus = RIGHT_TURN; fout = 0; (Zie het voorbeeld in de afbeelding hierboven)
  • L X X X X 0 H == > modus = LEFT_TURN; fout = 0;
  • X 0 0 0 0 0 X == > modus = NO_LINE; fout = 0;
  • H 0 0 0 0 1 H == > modus = FOLLOWING_LINE; fout = 4;
  • H 0 0 0 1 1 H == > modus = FOLLOWING_LINE; fout = 3;
  • H 0 0 0 1 0 H == > modus = FOLLOWING_LINE; fout = 2;
  • H 0 0 1 1 0 H == > modus = FOLLOWING_LINE; fout = 1;
  • H 0 0 1 0 0 H == > modus = FOLLOWING_LINE; fout = 0;
  • H 0 1 1 0 0 H == > modus = FOLLOWING_LINE; fout = -1;
  • H 0 1 0 0 0 H == > modus = FOLLOWING_LINE; fout = -2
  • H 1 1 0 0 0 H == > modus = FOLLOWING_LINE; fout = -3;
  • H 1 0 0 0 0 H == > modus = FOLLOWING_LINE; fout = -4;

Dus, ter uitvoering van de bovenstaande logica in de functie:

VOID readLFSsensors()

keert de variabelen "-modus" en "fout", die zal worden gebruikt op de programmalogica.

Het is belangrijk om te testen van de logica van de sensoren voor volgen met het project. De balg-functie is opgenomen in de code en kan worden gebruikt voor test doeleinden:

VOID testSensorLogic(void)
{

Serial.Print (farLeftSensor);

Serial.Print ("< links RIGH == == >");

Serial.Print (farRightSensor);

Serial.Print ("modus:");

Serial.Print (mode);

Serial.Print ("fout:");

Serial.println (fout);

}


Gerelateerde Artikelen

Arduino Robot praten op basis van kunstmatige intelligentie

Arduino Robot praten op basis van kunstmatige intelligentie

Dit project zal doen onze pratende robot met kunstmatige intelligentie gebaseerde Arduino.Dan wij in onze vorige project onze robot die we in de spraakopdrachten van de telefoon ingecheckt gemaakt.U kunt hier zien.Dit project dat we onze robot, spraa
Basic Line Na Robot met Arduino

Basic Line Na Robot met Arduino

09/07/2015Een paar jaar geleden dat we aanvankelijk gepost deze elementaire regel volgende Robot met Arduino tutorial, en lijkt zo veel mensen vonden het nuttig dat we een update die loopt van de huidige Arduino Bibliotheken, moet post bevat de nieuw
Maken van een Robot met Arduino voor Beginners

Maken van een Robot met Arduino voor Beginners

Stap 1: Materialen die nodig zijn Tamiya Track en wiel instellen vergadering ($7.95 op Pololu)Tamiya 70168 dubbele versnellingsbak Kit ($9.25 op Pololu)L298N Dual H Bridge ($3.65 bij Amazon en misschien wel veel lager bij ebay)4AA batterijhouder (geb
Hoe maak je een mobiele telefoon en Computer gecontroleerd 3D gedrukte Robot met Arduino - IoBot.

Hoe maak je een mobiele telefoon en Computer gecontroleerd 3D gedrukte Robot met Arduino - IoBot.

Als u op zoek bent naar een manier om een Arduino gebaseerde apparaten te controleren, zal deze instructie u tonen hoe om het te doen door het bouwen van eenvoudige robot.De IoBot kan worden gecontroleerd door mobiel en computer toepassing via LAN of
Obstakel te vermijden Robot met arduino

Obstakel te vermijden Robot met arduino

OBSTAKEL - VERMIJDEN ROBOTEen obstakel te vermijden ROBOT is een die kan een obstakel te vermijden met behulp van ultrasone sensor en navigeren in haar eigen pad. Met een breadboard gekoppeld aan de robot kunt u plezier spelen binnen een korte period
Real Time ' Face-Tracking Robot met Arduino en Matlab

Real Time ' Face-Tracking Robot met Arduino en Matlab

Real time ' face-tracking verwijst naar de taak van het opsporen van menselijke gezichten in een video-stream en bijhouden van de gedetecteerde of herkende gezichten. Er zijn tegenwoordig veel echte wereld toepassingen van gezichtsherkenning en ander
Externe gecontroleerde robot met Arduino en T.V. afstandsbediening

Externe gecontroleerde robot met Arduino en T.V. afstandsbediening

Deze externe gecontroleerde auto kan worden verplaatst met behulp van vrijwel elk soort ras zoals TV, AC enz.Het maakt gebruik van het feit dat de afstandsbediening IR(infrared) uitzendt.Deze eigenschap is gemaakt met behulp van een IR-ontvanger, die
2WD stem gecontroleerde Robot met Arduino en BitVoicer Server

2WD stem gecontroleerde Robot met Arduino en BitVoicer Server

In dit Instructable ga ik tonen hoe te om een 2WD spraakgestuurde robot te bouwen. Hoewel ik ben alleen gelijkstroommotoren als wilt verplaatsen de robot controle, dezelfde aanpak kan worden gebruikt voor de controle van de stem stappenmotoren en ser
Maak een zelfbalancerende Robot met Arduino UNO

Maak een zelfbalancerende Robot met Arduino UNO

Self balancing Robot is zeer interessant. Veel vrienden om ons heen wilden maken een, maar ze encounted alot van chanllenges met inbegrip van het ontbreken van de gemakkelijk-aan-de vergadering van structuren, de geschikte elektronische schakelingen
Gesture control car(robot) met Arduino en Android(bluetooth)

Gesture control car(robot) met Arduino en Android(bluetooth)

Hallo mensen,Hier is een interessant project voor alles wat je daar creatieve geesten. We gaan om een android telefoon gecontroleerde RC auto te bouwen.Niets zou zijn meer fascinerend dan extern gecontroleerde auto. Deze maakt gebruik van Bluetooth v
SainSmart InstaBots rechtop Rover (Self Balancing Robot met Arduino)

SainSmart InstaBots rechtop Rover (Self Balancing Robot met Arduino)

Rechtop Rover is een zelfbalancerende robot die werd ontworpen door SainSmart. Ze maakten het echt eenvoudig. Zoals u zien kunt, zijn er slechts 8 draden op de robot en 8 draden op de controller. Dus laten we het weten hoe het werkt!ONDERDELEN IN HET
Goedkope Robot met Arduino

Goedkope Robot met Arduino

ik wilde leren elektronika, Arduino, programmering, en het solderen dus ik dacht dat ik zou halen een van Randy's projecten en kopiëren.Ik beëindigde omhoog met een andere motor configuratie. Mijn voorste motor omlaag wijst en verandert een beetje kw
Uiterst eenvoudig Line Na Robot met Arduino

Uiterst eenvoudig Line Na Robot met Arduino

In dit Instructable gaan we om te bouwen van een eenvoudige generische lijn na arduinobot. Er zullen veel ruimte voor creativiteit in dit Instructable.De robot, in deze tutorial wordt gevoed off van 4 AA batterijen en kan volgen van zwarte isolatieta
Maak een eenvoudige draadloze RF robot met behulp van Arduino!

Maak een eenvoudige draadloze RF robot met behulp van Arduino!

UPDATE: IK HEB JOYSTICK-CONTROLE TOEGEVOEGD AAN DEZE ROBOT. GELIEVE TE VERWIJZEN NAAR DE STAP 7, ALS U WILT BEPALEN UW ROBOT VIA JOYSTICK.HalloDit is mijn eerste instructable en in deze tutorial, I 'm gonna Toon u hoe te bouwen van een eenvoudige dra