Na het ontwerpen van deze line follower robot met arduino uno, heb ik deze computergestuurde robot ontwikkeld. Het kan worden bediend via de computer en we kunnen specifieke toetsenbordtoetsen gebruiken om het te verplaatsen. Het loopt over seriële communicatie die we al hebben besproken in ons vorige project - pc-gestuurde huisautomatisering.
Componenten vereist
- Arduino UNO
- DC-motor
- Laptop
- Motorbesturing L293D
- 9 volt batterij
- Batterijconnector
- USB-kabel
- Robot Chasis
Concepten en details
We kunnen dit pc-gestuurde robotcircuit opdelen in verschillende segmenten en dat zijn ze - sensorsectie, besturingssectie en driversectie. Laten we ze afzonderlijk bekijken.
Commando of pc-sectie: deze sectie heeft een serieel communicatieapparaat zoals pc, laptop enz. Hier in dit project hebben we een laptop gebruikt voor demonstraties. We sturen een commando naar Arduino door een karakter te typen op de hyperterminal of een andere seriële terminal zoals hyperterminal, Hercules, stopverf, Arduino's seriële terminal enz.
Besturingsgedeelte: Arduino UNO wordt gebruikt voor het besturen van het hele proces van robot. Arduino leest opdrachten die door laptop zijn verzonden en vergelijkt deze met gedefinieerde tekens of opdrachten. Als de opdrachten overeenkomen, stuurt arduino de juiste opdracht naar het stuurprogramma.
Driver sectie: driver sectie bestaat uit een L293D motor driver IC en twee DC motoren. De motordriver wordt gebruikt voor het aandrijven van motoren omdat de arduino niet genoeg spanning en stroom levert aan de motor. Dus we voegen een motorstuurcircuit toe om voldoende spanning en stroom voor de motor te krijgen. Door opdrachten van arduino te verzamelen, drijft de motorbesturing motoren aan volgens opdrachten.
Werken
We hebben de pc-gestuurde robot zo geprogrammeerd dat hij wordt uitgevoerd door een aantal commando's die via seriële communicatie vanaf de pc naar Arduino worden gestuurd. (zie programmering hieronder)
Wanneer we op 'f' of 'F' drukken, begint de robot vooruit te gaan en gaat hij door totdat het volgende commando wordt gegeven.
Wanneer we op 'b' of 'B' drukken, verandert de robot zijn toestand en begint hij achteruit te bewegen totdat een ander commando wordt gegeven.
Als we op 'l' of 'L' drukken, draait de robot naar links tot het volgende commando.
Als we op 'r' of 'R' drukken, draait de robot naar rechts.
En voor het stoppen van de robot geven we een 's' of 'S' commando aan arduino.
Schakelschema en uitleg
Het schakelschema voor op Arduino gebaseerde pc-gestuurde robot wordt weergegeven in het bovenstaande diagram. Alleen een motorstuurprogramma-IC is verbonden met arduino om de robot te laten draaien. Voor het verzenden van de opdracht naar de robot hebben we een ingebouwde seriële gegevensconvertor gebruikt met behulp van een USB-kabel met laptop. De ingangspen 2, 7, 10 en 15 van de motordriver zijn respectievelijk verbonden met de digitale pennen 6, 5, 4 en 3 van Arduino. Hier hebben we twee gelijkstroommotoren gebruikt om de robot aan te sturen, waarbij één motor is aangesloten op de uitgangspen van motoraandrijving 3 en 6 en een andere motor is aangesloten op 11 en 14. Een 9 volt batterij wordt gebruikt om de motoraandrijving van stroom te voorzien voor het aandrijven van motoren.
Programma-uitleg
Bij de programmering hebben we allereerst uitgangspennen voor motoren gedefinieerd.
En dan hebben we in de installatie instructies gegeven om te pinnen en seriële communicatie te starten.
Daarna lezen we de seriële buffer door de functie "serial.read ()" te lezen en de waarde ervan in een tijdelijke variabele te krijgen. En match het vervolgens met gedefinieerde commando's door de “if” -instructie te gebruiken om de robot te bedienen.
Er zijn vier voorwaarden om deze pc-gestuurde robot te verplaatsen die in onderstaande tabel worden gegeven.
Invoeropdrachten |
Uitvoer |
Beweging van de robot |
||||
Linkermotor |
Rechter motor |
|||||
|
|
|
|
|||
S. |
|
|
|
|
|
Hou op |
|
|
|
|
|
|
Rechts afslaan |
|
|
|
|
|
|
Sla linksaf |
|
|
|
|
|
|
Achteruit |
|
|
|
|
|
|
Vooruit |
We hebben het programma geschreven volgens bovenstaande tabelcondities. De volledige code wordt hieronder gegeven.