Lijn volgeling Android Robot - PID Control - Setup (6 / 12 stap)

Stap 6: Uitvoering van de logica van de Sensor


De IR-sensor bestaat uit een individuele IR-LED en een fotodiode IR. De IR-licht dat wordt uitgestraald door de LED lijkt het oppervlak en is teruggekaatst naar de IR fotodiode. De fotodiode geeft dan een uitgangsspanning evenredig aan de reflectie van de oppervlakte (hoge waarde voor lichte ondergrond) en laag voor zwart/donker oppervlak. In het geval van de sensoren gebruikt, een geïntegreerde schakeling op de module gegenereerd als output een eenvoudig digitaal signaal (hoge: donker; LAAG: Licht). Een potentiometer geïnstalleerd op de module (zie foto) past het juiste niveau van licht te worden beschouwd "dark" of niet. Het werkt op een manier dat wanneer de gereflecteerde licht kleur zwart/donker is, een hoog niveau van de ("1") wordt gegenereerd bij de uitvoer en een laag ("0") voor een ander lichtere kleur. Ik gebruikte hier een geïntegreerde module met 4 sensoren en en extra module met een eigen sensor (andere vorm, maar dezelfde logica). De combinatie is een array van 5 sensoren die ik denk dat is goed voor een mooie besturingselement zoals uitgelegd balg.

De array van 5 sensoren is gemonteerd op een manier dat als er slechts één sensor is gecentreerd met betrekking tot de zwarte lijn, alleen dat specifieke sensor een hoog zal opleveren. Door de andere kant, moet de ruimte tussen sensoren toe dat 2 sensoren de volledige breedte van de zwarte lijn tegelijkertijd produceren ook een hoog op beide sensoren dekken kunnen (Zie de foto's hier) worden berekend.

De mogelijke sensor-array output als volgt op een regel zijn:

  • 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 5 sensoren, staat een generatie van een "fout-variabele", die helpen zal om controle van de robot de positie op de lijn, als getoond balg.

Laten we van mening dat de optimale conditie is als de robot is gecentreerd, hebben de lijn gewoon bulken de "middelste sensor" (Sensor 2). De output van de array zal zijn: 0 0 1 0 0 en in deze situatie, de "fout" zal worden "nul". Als de robot tot gedreven naar links (de regel "lijkt beweging" rechts") begint moet de fout verhogen met een positief signaal. Als de robot begint te verplaatsen naar de rechterzijde (lijn "lijkt beweging" links"), op dezelfde manier, moet de fout verhogen, maar nu met een negatief signaal.

De variabele fout gerelateerde met de sensor status zal worden:

  • 0 0 0 0 1 == > fout = 4
  • 0 0 0 1 1 == > fout = 3
  • 0 0 0 1 0 == > error = 2
  • 0 0 1 1 0 == > fout = 1
  • 0 0 1 0 0 == > fout = 0
  • 0 1 1 0 0 == > fout = -1
  • 0 1 0 0 0 == > fout = -2
  • 1 1 0 0 0 == > fout -3 =
  • 1 0 0 0 0 == > fout = -4

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

Const int lineFollowSensor0 = 12;

Const int lineFollowSensor1 = 18;

Const int lineFollowSensor2 = 17;

Const int lineFollowSensor3 = 16;

Const int lineFollowSensor4 = 19;

Opslag om de waarden van elke sensor een array variabele aangemaakt:

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

Elke positie van de matrix 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);

Met de waarde van elk van de sensoren, moet een logica worden uitgevoerd voor het genereren van de fout-variabele:

Als ((LFSensor [0] == 0) & & (LFSensor [1] == 0) & & (LFSensor [2] == 0) & & (LFSensor [3] == 0) & & (LFSensor [4] == 1)) fout = 4;

anders als ((LFSensor [0] == 0) & & (LFSensor [1] == 0) & & (LFSensor [2] == 0) & & (LFSensor [3] == 1) & & (LFSensor [4] == 1)) fout = 3;

anders als ((LFSensor [0] == 0) & & (LFSensor [1] == 0) & & (LFSensor [2] == 0) & & (LFSensor [3] == 1) & & (LFSensor [4] == 0)) fout = 2;

anders als ((LFSensor [0] == 0) & & (LFSensor [1] == 0) & & (LFSensor [2] == 1) & & (LFSensor [3] == 1) & & (LFSensor [4] == 0)) fout = 1;

anders als ((LFSensor [0] == 0) & & (LFSensor [1] == 0) & & (LFSensor [2] == 1) & & (LFSensor [3] == 0) & & (LFSensor [4] == 0)) fout = 0;

anders als ((LFSensor [0] == 0) & & (LFSensor [1] == 1) & & (LFSensor [2] == 1) & & (LFSensor [3] == 0) & & (LFSensor [4] == 0)) fout =-1;

anders als ((LFSensor [0] == 0) & & (LFSensor [1] == 1) & & (LFSensor [2] == 0) & & (LFSensor [3] == 0) & & (LFSensor [4] == 0)) fout = -2;

anders als ((LFSensor [0] == 1) & & (LFSensor [1] == 1) & & (LFSensor [2] == 0) & & (LFSensor [3] == 0) & & (LFSensor [4] == 0)) fout = -3;

anders als ((LFSensor [0] == 1) & & (LFSensor [1] == 0) & & (LFSensor [2] == 0) & & (LFSensor [3] == 0) & & (LFSensor [4] == 0)) fout = -4;

Gerelateerde Artikelen

2pi lijn volgeling

2pi lijn volgeling

Ik heb onlangs mijn eerste robot gebouwd en dacht dat ik zou delen de stappen en resultaten. Het is een eenvoudige regel-follower gebouwd op het platform van de PlastoBot in Gordon McComb de Robot bouwer Bonanza en gedreven door een ATmega328 chip aa
LINUSBot - lijn volgeling Robot - met PID controle

LINUSBot - lijn volgeling Robot - met PID controle

LINUSBot - lijn volgeling Robot - met PID controleLINUSBot - PID controleDit is een aanvulling op de eerste "instructables" van de LINUSBot (lijn na robot).Nu de robot de controle van verplaatsingen gedaan door een PID-regelaar heeft, evenredige
PID lijn volgeling Atmega328P

PID lijn volgeling Atmega328P

INTRODUCTIEHi guys, ben een 3e jaars Student van de Universiteit van Lovely Professional Universiteit, India, momenteel het nastreven van elektronica en communicatie Engineering.Youtube-kanaal::: https://www.youtube.com/channel/UC6ck0xanIUl14OorqW06V
Lijn volgeling Robot met behulp van Camera Shield in 1Sheeld & Arduino

Lijn volgeling Robot met behulp van Camera Shield in 1Sheeld & Arduino

Het was zo lang omdat mijn laatst Instructables gepubliceerde. Eigenlijk, ik probeerde te doen van de zeer populaire project, maar met een nieuwe tools en een gemakkelijke manier vooral in codering. Ik heb gewerkt op een lijn volgeling robot die het
Hoge prestaties lijn volgeling Robot

Hoge prestaties lijn volgeling Robot

Hallo! Ik zal proberen om u kennismaken met de wereld van lijn volgeling robots. Velen van ons hebben ooit gehoord over dit soort rare bots, die bestaat in een breed scala aan versies echt traag en zwaar degenen, die meestal zelfs met alleen afzonder
Hoe maak je's werelds kleinste lijn volgeling robot (robo Rizeh)

Hoe maak je's werelds kleinste lijn volgeling robot (robo Rizeh)

Hoe maak je's werelds kleinste lijn volgeling robot (vibrobot)"roboRizeh"gewicht: 5gr grootte: 19 x 16 x 10 mmdoor: Naghi Sotoudehwww.roborizeh.IRHet woord "Rizeh" is een Perzisch woord dat 'piepklein' betekent. Rizeh is een zeer klein
Lijn volgeling Robot

Lijn volgeling Robot

dit is mijn tweede lijn volgeling Robot en zoals de naam doet vermoeden, het is een robot waarvan het doel is een lijn te volgen. Deze robot kan worden gebruikt in wedstrijden waar een robot moet het volgen van een route in de kortst mogelijke tijd v
Robot - lijn volgeling

Robot - lijn volgeling

Ik begon te werken op mijn eerste robot ongeveer twee jaar geleden. Zonder bijzondere reden, heb ik besloten om te beginnen met een lijn volgende robot en de waarheid wordt verteld, mijn eerste poging om het gebouw werd een complete mislukking. Terug
ZWARTE lijn VOLGELING ROBOT

ZWARTE lijn VOLGELING ROBOT

is een zwarte lijn volgeling robot met Ir-sensoren en micro-controller 8051. Zijn een kosteneffectieve model en heeft perfecte uitgang in bijna alle terreinen.De volgende regel robot is er een die een zwarte pad detecteertover een wit oppervlak en vi
Lijn volgeling Robot zonder Arduino of Microcontroller

Lijn volgeling Robot zonder Arduino of Microcontroller

hier heb ik een lijn volgeling robot zonder microcontroller of Arduino uitgelegd. Dit is zeer eenvoudig project voor beginners. Hier hoef je niet te gebruiken op enige kennis van programmeren. Dus laten we proberen...Stap 1: Verzamelen van het materi
Kaart met kartonnen viaduct voor lijn volgeling robot

Kaart met kartonnen viaduct voor lijn volgeling robot

Ik heb om een beetje meer plezier met mijn Makeblock mBot in lijn volgeling modus, deze aangepaste kaart gemaakt met een kartonnen viaduct.Een kaart voor een lijn volgeling robot is eigenlijk vrij eenvoudig te maken. Wat zal ik u tonen hier is hoe ik
Arduino gebaseerd Desktop lijn volgeling - jolliBot

Arduino gebaseerd Desktop lijn volgeling - jolliBot

Een van de klassieke projecten die vermelding niveau robotica hobbyist kunnen interesseren is de regel die volgt robot die is meer algemeen bekend als een volgeling van de lijn. Er zijn veel kit beschikbaar om te bouwen van volgelingen van de lijn in
DIY lijn volgeling Sensor Array

DIY lijn volgeling Sensor Array

In dit Instructable leert u hoe u uw zeer eigen lijn volgeling sensor-array!!Het bestaat uit twee delen:De IR LED-bestuur.Het bestuur van de opamp.Het bestuur van de IR LED bestaat uit een matrix van 5 paren van IR LEDs en fotodiodes. Het leuke deel
Analoge lijn volgeling upgraden naar Arduino met Attiny85

Analoge lijn volgeling upgraden naar Arduino met Attiny85

SamenvattingIn dit Instructable zullen wij tonen u hoe om te upgraden een goedkope analog lijn volgeling in een intelligente Arduino lijn volgeling door de LM393 comparator IC te vervangen door een intelligente Attiny85 en Arduino sketch.IntroductieL