Buggy rullstol Robot (9 / 10 steg)

Steg 9: hjärnor



jag har klistrat in en kopia av mitt program. Ja, jag använde Goto kommandon... Ja, jag vet att många av er hatar dem. De arbetade för vad jag behövde. Men jag är öppen för någon konstruktiv input på detta projekt.

Jag har skrivit ett program sedan GWbasic. Gamla skolan jag vet. Jag inser att detta program ser väldigt lik en grundläggande flashback. Det fungerar dock precis som jag ville.

/*
ROBOT DRIVE
Stephen J. Gardiner, CPS

Skapad 2012
Stephen J. Gardiner, CPS

*/
inkludera bibliotek-koden:
#include < LiquidCrystal.h >

initiera LCD-biblioteket
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

CONST int ledPin = 16. DRIVE SYSTEM POWER pin
CONST int lCdPin = 13. lCdPin
CONST int redPin = 8; FÖRBIGÅ ENGAGERAD
CONST int FASTPin = 14. Snabba upp
CONST int SLOWPin = 15. Hastighet ner
CONST int pwm1Pin = 9; PWM stift 1
CONST int pwm2Pin = 10; PWM Pin2
int incomingByte; en variabel att läsa inkommande seriella data i
int OVERRIDEOFF;

void setup() {

Serial.BEGIN(9600); initiera seriell kommunikation:
initiera kontroll stiften som ett resultat:
pinMode (ledPin, produktionen);
pinMode (lCdPin, produktionen);
pinMode (redPin, produktionen);
pinMode (FASTPin, OUTPUT);
pinMode (SLOWPin, OUTPUT);
pinMode (pwm1Pin, produktionen);
pinMode (pwm2Pin, produktionen);

LCD.BEGIN(16,4); Ange den LCD antal kolumner och rader:

lcd.setCursor (0, 0); Skriv ut ett meddelande till LCD-skärmen.
digitalWrite (lCdPin, hög);
LCD.Print ("online").
Serial.Print ("Robot kontroll v6.1");
Serial.Print("\r");
Serial.Print("on-line");
Serial.Print("\r");
Delay(1000);
digitalWrite (lCdPin, låg);
}

void loop() {
ställa markören till kolumn 0, linje 1
(Obs: linje 1 är den andra raden, sedan räknar börjar med 0):
lcd.setCursor(0,0);
lcd.setCursor(0,3);
int värde1 = 100; variabel att lagra DUTY CYCLE F + B
int värde2 = 100; variabel att lagra DUTY CYCLE L + R
analogWrite(pwm1Pin,val1); ANGE ENHET-SPÄNNING TILL 2.5 (+/-)
analogWrite(pwm2Pin,val2); ANGE ENHET-SPÄNNING TILL 2.5 (+/-)

om det finns inkommande seriella data:
om (Serial.available() > 0) {

Läs den äldsta byten i följetong buffert:
Ja jag vet Goto kommandon, Ya'll hatem "Jag fungerar för mig
incomingByte = Serial.read();
om (incomingByte == ' o ') {goto DRIVEPOWER;}
om (incomingByte == 'T') {goto OVERRIDEON;}
om (incomingByte == "C") {goto OVERRIDEOFF;}
om (incomingByte == "I") {goto snabbare;}
om (incomingByte == hade ") {goto långsammare;}
om (incomingByte == "F") {goto fram;}
om (incomingByte == "B") {goto BAKÅTRIKTADE;}
om (incomingByte == "L") {gå till vänster;}
om (incomingByte == "R") {goto rättighet.}
Serial.Print ("Robot kontroll v6.1");
LCD.Print ("redo");
Serial.Print("\r");
hemkomst.

om det är en huvudstad O slå på enheten:
{DRIVEPOWER:
digitalWrite (ledPin, hög);
digitalWrite (lCdPin, hög);
LCD.Print ("DRIVE SYSTEM POWER");
Serial.Print ("DRIVE SYSTEM POWER");
Delay(500);
lcd.setCursor(0,0);
digitalWrite (ledPin, låg);
Delay(500);
digitalWrite (lCdPin, låg);
int val = 169;
LCD.Clear();
Serial.Print("\r");
Serial.flush();
hemkomst.

}

{OVERRIDEON:
om det är en T åsidosätta på:
digitalWrite (redPin, hög);
digitalWrite (lCdPin, hög);
LCD.Print ("över RIDE engagerad");
Serial.Print ("över RIDE engagerade");
Delay(500);
lcd.setCursor(0,0);
LCD.Clear();
Serial.flush();
Serial.Print("\r");
hemkomst.
}
om det är ett C åsidosätta:
{OVERRIDEOFF:
digitalWrite (redPin, låg);
digitalWrite (lCdPin, hög);
LCD.Print ("över RIDE dis engagerade");
Serial.Print ("över RIDE dis engagerade");
Delay(1000);
lcd.setCursor(0,0);
digitalWrite (lCdPin, låg);
LCD.Clear();
Serial.Print("\r");
Serial.flush();
hemkomst.
}
om det är en F att höja HASTIGHETEN
{SNABBARE:
digitalWrite (FASTPin, hög);
digitalWrite (lCdPin, hög);
LCD.Print ("snabbare");
Serial.Print ("snabbare");
Delay(500);
lcd.setCursor(0,0);
digitalWrite (FASTPin, låg);
Delay(500);
digitalWrite (lCdPin, låg);
LCD.Clear();
Serial.flush();
Serial.Print("\r");
hemkomst.
}
om det är en huvudstad S till lägre hastighet
{LÅNGSAMMARE:
digitalWrite (SLOWPin, hög);
digitalWrite (lCdPin, hög);
LCD.Print ("långsammare");
Serial.Print ("långsammare");
Delay(500);
lcd.setCursor(0,0);
digitalWrite (SLOWPin, låg);
Delay(500);
digitalWrite (lCdPin, låg);
LCD.Clear();
Serial.flush();
Serial.Print("\r");
hemkomst.
}
{FRAM:
digitalWrite (lCdPin, hög);
LCD.Print ("framåt");
Serial.Print ("framåt");

int värde2 = 200. variabel @ 200 DUTY CYCLE = framåt
analogWrite(pwm2Pin,val2); ANGE ENHET-SPÄNNING TILL FRAMÅT
Delay(1000);
lcd.setCursor(0,0);
digitalWrite (lCdPin, låg);
LCD.Clear();
Serial.flush();
Serial.Print("\r");
hemkomst.
}
{BAKÅT:
digitalWrite (lCdPin, hög);
LCD.Print ("bakåt");
Serial.Print ("bakåt");
int värde2 = 50; variabel @ 75 DUTY CYCLE = bakåt
analogWrite(pwm2Pin,val2); ANGE ENHET-SPÄNNINGEN TILL BAKÅT
Delay(1000);
lcd.setCursor(0,0);
digitalWrite (lCdPin, låg);
LCD.Clear();
Serial.flush();
Serial.Print("\r");
hemkomst.
}
{VÄNSTER:
digitalWrite (lCdPin, hög);
LCD.Print ("vänster");
Serial.Print ("vänster");
int värde1 = 50; variabel @ 100 DUTY CYCLE = vänster
analogWrite(pwm1Pin,val1); ANGE ENHET-SPÄNNING TILL VÄNSTER
Delay(1000);
lcd.setCursor(0,0);
digitalWrite (lCdPin, låg);
LCD.Clear();
Serial.flush();
Serial.Print("\r");
hemkomst.
}
{RÄTT:
digitalWrite (lCdPin, hög);
LCD.Print ("höger");
Serial.Print ("höger");
int värde1 = 220; variabel @ 200 DUTY CYCLE = höger
analogWrite(pwm1Pin,val1); ANGE ENHET-SPÄNNING TILL HÖGER
Delay(1000);
lcd.setCursor(0,0);
digitalWrite (lCdPin, låg);
LCD.Clear();
Serial.flush();
Serial.Print("\r");
hemkomst.
}
}
}

Se Steg
Relaterade Ämnen

Ultimate UpCycling: $40 rullstol Robot

jag behövde för att göra en del efterforskningar på Smart rullstol teknik, och vad bättre sätt för att göra det än på en faktisk rullstol?Tja, var ett bättre sätt upcycling 3 brutna rullstolar till en fungerande rullstol-baserad robot. Total kostnad...

Hjärnan-kontrollerade rullstol Robot

vår oberoende projekt är att utöka våra tidigare Brain-Controlled rullstol projektera (1: a pristagare av den Humana hälsa utmaningen i samordning med jerkey) in i en ny design som använder en revolutionerande kombination av EEG-baserad P300 upptäckt...

6 hjul R/C skottkärra med pneumatiska dumpa

Detta projekt startade ut liv kommer för att bli en r/c gräsklippare. Det har nu gått till denna sex hjul skapelse. Om du inte kan se ovan video klicka här.Steg 1: uppdatering! SE VIDEON NEDAN. Tack.Steg 2: Robot: material & verktygMaterial: Elektris...

Grundläggande tank-drive robot kontroll över Bluetooth med mbed med Freescale K64F

Detta Instructable är baserad på detta tidigare arbete som visar hur man styr en typisk tank-drive stil robot med hjälp av Arduino och en Android app, som visas i denna RC bil för Android Instructable.Jag har använt detta arbete som grund för många r...

Hur man gör en låg kostnad Mobile Robot plattform

Detta Instructable handlar om att bygga en robot bas för att stödja dina experiment.Detta Instructable är avsedd för alla att komma igång på en mobil plattform för låg spänning. Andra läsare kan hitta något intressant här också, din antall Maj varier...

Hexabot: Bygga en tunga sex ben robot!

Detta Instructable kommer att visa dig hur man bygger Hexabot, en stor sex ben robot plattform som kan bära en mänsklig passagerare! Roboten kan också göras helt självständigt med tillägg av några sensorer och lite omprogrammering.Jag konstruerade de...

Strid Robot - Lil' Timmy, vännen 300lb!

low and behold Lil' Timmy. spawn av att dricka riktigt, riktigt gamla hamn och spelar Halo till 3 på morgonen med min kompis Paul. Efter våra tummar trångt upp, vi vänt till kabel och låg en se ett avsnitt av Robo-krig var på. Lutad över till Paul, s...

Bygga din egen Butler Robot! -Handledning, foton och Video

redigera: mer information om mina projekt kolla min nJag gör även konsulttjänster för robotics, mekatronik och specialeffekter projekt/produkter. Kolla in min hemsida - narobo.com för mer information.Någonsin ville ha en butler robot som talar till d...

Ansluta robotic hjul till din gamla laptop

har du en gammal bärbar dator bara liggandes, medan du använder din skinande nya en att spela WoW och surfa interweb? Har du någonsin tänkt "Jag skulle vilja bult några hjul på det gamla laptop och kör det runt"? Kanske vill du bara en mobil låg...

Hur man gör din telefon till en robot

det är fantastiskt vad dyker in i ditt huvud när du är på en lösa änden...Jag tänkte på att göra en vibrobot, undrat om att få en vibrerande motor och mina tankar vandrade till motorn i min mobiltelefon...Nej, jag kunde inte, jag behöver telefonen.Me...

K-9 2.0. WiFi kontrollerade och autonom Robot hund.

OBS:I steg 22, har jag postat en uppdatering, förklarar några senaste förändringar/förbättringar som jag har gjort, främst på K-9's elsystem och sensor array som du kan ha nytta.FunktionerRobust trä (MDF) och akryl designHelt mikroprocessorstyrda anv...

Stora dansande Robot

bygga en stor dansande robot. Detta var tänkt för att vara en vandrande robot, men det mer kinda beebopped runt.video på sista steget.Steg 1: Skapa en prototyp Första, _Prototype_:Innan du gör en stor, hög effekt robot, det är bra att göra en mindre...

Modulär Robot plattform eller "Thrift Shop Johnny fem"

Jag visste från början att jag ville ha designen för att vara både roligt och modulära. Jag ville kunna byta ut en arm för en annan, eller att kunna göra ett nytt huvud och bara kasta det på med lätthet.Temat för denna plattform är verkligen mångsidi...

Steampunk style demi-droid EZ-Robot controlled

FRED (vänlig robot Entertainment Droid) är en Instructable inspirerade "Steampunk" stil demi-droid gjorda av återvunna metaller och skogen. Huvudet är en inspiration från olika YT exempel. Ögonen är handgjorda från epoxiharts och är utbytbara me...

USB-Robot

detta är min post för Robot tävling (åldersgruppen 13-18 år)Vi har nyligen lagt till en enkel, låg kostnad robotarm till roboten och skrivit programvara som gör att fjärrkontrollen i arm och robot själv via WiiMote. Detta kommer att publiceras när de...

R/C LEGO® "The Bull" Buggy

det finns mer än 20 modeller av LEGO®'s Dune Buggy typ bil, ännu mer än modellerna i LEGO® racerbil kategori.Dune paraplyvagn är vanligtvis fyra hjul enhet off road fordon, som inte skulle användas på vägen.Nu när jag blev upphetsad på "dune buggy&qu...

VersaBot - Material Custimaziton Robot

denna robot var konstruerad med Invetor 2012 och 2013. Instruktionerna ensam är ett verktyg för att låta folk få en bas att utgå från, men fortsätta lägga till sina egna unika personliga egenskaper. Roboten är att tittade på göras autonymous och mind...

3D-utskrifter: Zizzy-A Robot assistent

Zizzy är en personlig robot prototyp för personer med begränsad rörlighet. Huvudet, kropp, armar, fästen, luftventiler och konstgjorda musklerna att ansätta den, är alla 3d tryckt. Även om ingen är sannolikt att försöka kopiera denna robot exakt, kan...

PulleyBot: En remskiva Driven Robot

PulleyBot är en enkel, enhetlig manöverdonet 3D tryckta leksak med en växellåda som helt består av trissa system. Detta instructable är en handledning om hur man monterar PulleyBot, men om du är intresserad av remskiva, kabel och kedjan mekanismer, d...