Arduino labyrint (4 / 4 steg)

Steg 4: Arduino kod



Koden kan ändras så att den joystick eller accelerometer kan vara standard!
Koden har några un-behövs element som är försumbar!

#include / / Arduino bibliotek Wire.h
#include / / Arduino bibliotek string.h
#include / / Arduino bibliotek Stdio.h
#include / / Arduino bibliotek Servo.h

Servo myservo; skapa objekt för att styra trigger servo servo

int pos = 90. variabel att lagra trigger servo position

uint8_t outbuf [6].

int cnt = 0;
int ledPin = 13.
int ledPin12 = 12;
int Z_trig;

int servoPin = 7.
int servoPin2 = 6;

int pulseWidth = 0;
int pulseWidth2 = 0;

lång lastPulse = 0;
lång lastPulse2 = 0;

int z_button = 0;
int c_button = 0;

int refreshTime = 20; tweaked för Hi-tech servon

int minPulse = 300; tweaked för Hi-tech 3-11 servon
int minPulse2 = 300; tweaked för Hi-tech 3-11 servon
int maxPulse = 2500; maximal servo position
int maxPuls2e = 2500; maximal servo position

int dtime = 10;

#define pwbuffsize 10
lång pwbuff [pwbuffsize];
lång pwbuffpos = 0;
lång pwbuff2 [pwbuffsize];
lång pwbuffpos2 = 0;

void setup()
{
myservo.attach(8);

Serial.BEGIN (9600);
Wire.BEGIN ();
nunchuck_init ();
pinMode (servoPin, produktionen);
pinMode (servoPin2, produktionen);

pulseWidth = minPulse;
pulseWidth2 = minPulse2;

Serial.Print ("färdiga setup\n");
}

void nunchuck_init() / / Wii Nun-chuck handskakning
{
Wire.beginTransmission (0x52);
Wire.send (0x40);
Wire.send (0x00);
Wire.endTransmission ();
}

void send_zero() / / Wii Nun-chuck handskakning
{
Wire.beginTransmission (0x52);
Wire.send (0x00);
Wire.endTransmission ();
}

int t = 0;

void loop()
{
pinMode (ledPin12, produktionen); uppsättningar pin 12 som en utgång så att nödsänkningssolenoiden kan kontrolleras av Wii Nunchuck Z-knappen
t ++;
äntligen = millis();

om (t == 1) {

t = 0;

Wire.requestFrom (0x52, 6);

medan (Wire.available ()) {
outbuf [cnt] = nunchuk_decode_byte (Wire.receive ());
digitalWrite (ledPin, hög);
CNT ++;
}

om (cnt > = 5) {

int z_button = 0; initierar Z till noll
int c_button = 0; initierar C till noll

om ((outbuf [5] >> 0) & 1) / / undersöker Byte fem från the Wii-Nunchuck för position i Z-knappen
z_button = 1; uppsättningar Z 1
om ((outbuf [5] >> 1) & 1) / / undersöker Byte fem från the Wii-Nunchuck för position i Z-knappen
c_button = 1; anger C till 1

växel (c_button) {/ / mål uttalande för C knappen tillstånd
fall 1:

muovi (outbuf [1] / 2 + 0x3E, outbuf [0] / 2 + 0x3E); Aktiverar Accelromiter deadlinekontroll för Wii Nunchuck
bryta;
fall 0:
muovi (outbuf [3], outbuf [2]); underslag Styrspaksreglage för Wii nunchuck
bryta;
}

växel (z_button) {/ / mål uttalande för Z-knappen stat
fall 1: {
digitalWrite (ledPin12, låg); standard magnetventil är avstängd
Z_trig = 0;}
bryta;
fall 0: {
om (Z_trig == 0) {
digitalWrite (ledPin12, hög); Aktiverar nödsänkningssolenoiden
fördröjning (20);
digitalWrite (ledPin12, låg); deaktiverar nödsänkningssolenoiden om Z-knappen hålls för att skydda från att bryta
Z_trig = 1 ;}}

bryta;
}

}

CNT = 0;
send_zero();

}

updateServo();

Delay(dtime);
}

void updateServo()
{

om (millis() - lastPulse > = refreshTime) {

digitalWrite (servoPin, hög);
delayMicroseconds(pulseWidth);
digitalWrite (servoPin, låg);

digitalWrite (servoPin2, hög);
delayMicroseconds(pulseWidth2);
digitalWrite (servoPin2, låg);

lastPulse = millis();
}
}

int jag = 0;

char nunchuk_decode_byte (char x)
{
x = (x ^ 0x17) + 0x17;
återvändande x;
}

void muovi (uint8_t x, uint8_t y) {
flyta tilt = (700 - x * 2 * 2);
flyta tilt2 = (0x7E - y + 0x7E) * 2 * 2.

lutning = (lutning);
pulseWidth = (luta * 5) + minPulse;

Tilt2 = (tilt2-288);
pulseWidth2 = (tilt2 * 5) + minPulse2;

pwbuff [pwbuffpos] = pulseWidth;
pwbuff2 [pwbuffpos2] = pulseWidth2;

om (++ pwbuffpos == pwbuffsize) pwbuffpos = 0;
om (++ pwbuffpos2 == pwbuffsize) pwbuffpos2 = 0;

pulseWidth = 0;
pulseWidth2 = 0;

för (int p = 0, p pulseWidth += pwbuff [p];
pulseWidth2 += pwbuff2 [p];
}

pulseWidth = pwbuffsize;
pulseWidth2 = pwbuffsize;
}

Se Steg
Relaterade Ämnen

Arduino kontrollerade marmor labyrint

detta är en enkel Arduino projekt att styra en marmor labyrint. Marmor labyrint (du kan styra det online) kommer från ett projekt på TeleToylandoch bygga instruktionerna på den här Instructable. För en ny show behövde jag för att tillåta barnen att s...

Labyrint Problemlösaren Robot, med artificiell intelligens med Arduino

(Om du gillar detta Instructable, glöm inte att rösta på det (ovan: högra hörnet flaggan). Rex, roboten tävlar på ROBOTICS och sensorer tävlingar. Tack så mycket! ;-)Detta Instructable utvecklades på mitt senaste projekt: rad efterföljare Robot - PID...

Labyrint Problemlösaren med Arduino och ArduMoto(Micromouse) V:1.2

Här '' Instructables'' syftar till att hjälpa någon maker, entusiast att göra sin egen labyrint Problemlösaren (Micromouse). Förekomsten av Micromouses har dateras tillbaka till 1950-talet och tävlingar hålls sedan dess. Även dessa tävlingar kan kräv...

Grundläggande raden efter Robot med Arduino

09/07/2015Det har varit några år eftersom vi Ursprungligen postat denna grundläggande linje följande Robot med Arduino handledning, och det verkar så många människor tyckte att det bra att vi ska skicka en uppdatering som löper nuvarande Arduino bibl...

Rörelse, reaktiv Shake-the-labyrint spel

Levandegöra magi med en automatiserad, rörelse reaktiv shake-the-labyrint spel! Med hjälp av komponenter från en Arduino startpaket och vanliga material runt huset, är detta ett anpassningsbart spel att du känner en guide för att lära sig hur servomo...

Laser labyrint säkerhetssystemet

detta är en Instructable som talar om hur man gör en laser tripwire eller laser labyrint, precis som i filmerna!Allt du behöver:* Arduino* Summer/larm/Led* Led (valfritt)* 1 motstånd (något värde)* 1 LDR* Laser penna* En låda att hysa hela uppsättnin...

Servo kontrollerad marmor labyrint

Detta är version av den klassiska marmor labyrint (det finns val i sökvägen), där pan och tilt styrs av hobby servon. Med servon, kan du arbeta i labyrinten med en R/C-styrenhet eller en PC etc.Vi byggde en för att användas med TeleToyland, och du ka...

Servo kontrollerad marmor labyrint bygga 2

Detta är en uppdaterad bygga baserat på en tidigare Instructable. Här är lättare att göra och ser lite bättre ut. Dessutom är några nya byggteknik som att använda magneter för att fästa Lego labyrinten typ av cool.Projektet är en webbplats som låter...

Marmor sjukdom - en marmor labyrint simulator med luta växlar

marmor sjukdom är ett gränsfall av Marble Madness :)Den simulerar en marmor labyrint av avkänning i rutan orientering med 2 tilt växlar.Avsluta Tryck på: det finns en ny och mer intuitiv version som inte kräver spin vredet (se video).Jag hålla dokume...

Elektriska labyrint: En DIY Arcade spel

Marmor labyrinter (eller labyrinter) ger en rolig utmaning. Deras många vändningar och fallgropar testa spelarens hastighet, kontroll och precision. I slutet av detta instructable du kommer har konstruerat en labyrint som skulle ha imponerat Daedalus...

Arduino RPG Simulator

Vi hade i min ungdom, arkader och bowlingbanor spela spel något bättre än Atari hem spelsystemet. VIC-20 hemdator systemet var föregångaren till Commodore-64. Växer upp under en tid innan trådlösa telefoner och grafik bättre än Atari, gillade jag ver...

LASER labyrint 2012 - Halloween Haunted House

en ny version av LASER labyrinten för 2012!(den gamla versionen här: LASER labyrint 2011)Se bilderna på steg 7!Se videor på steg 8!Vad är det?LASER labyrinten 2012 är ett film-stil laser "trygghetssystem" som ställs in i den främre halvan av mit...

Roboten labyrint Problemlösaren

Denna handledning hjälper dig skapa en Arduino baserad robot som kan lösa grundläggande linje labyrinter som inte har slutna slingor.Hur det fungerar:Roboten är programmerad att köra över de svarta linjerna av labyrinten och använda optiska sensorer...

Arduino-baserad rad efterföljare robot med hjälp av Pololu kvart-8RC line sensor

uppdatering FEB 2012: denna guide är med på Adafruits blogghttp://www.adafruit.com/blog/2012/02/14/Arduino-based-line-Follower-robot/Detta är Faz3a II, min första linje-efter roboten, vilket jag hoppas också att använda för labyrint-lösa. Jag använde...

Labyrint lösa Robot

detta är en labyrint lösa robot som jag har jobbat på för vår årliga robotic tävling. Vissa delar är köpt och vissa delar liggande samlar damm. Så är här min instructables att göra en anständig labyrint lösa robot. Jag kommer att lägga steg som jag g...

Arduino: känsliga robot

Hej.Jag vill visa dig hur du kan bygga en robot med en Arduino och några andra delar. Så vad behöver vi?Arduino. Jag har leonardo men det är inte viktigtH bro TB6612FNG eller andrachassi för robot till exempel DAGU DG012-SV eller handgjordaUltrasonic...

Vakta hunden och Mailman Scenario med Arduino

Syftet med detta projekt är att programmera två robotar att samverka framgångsrikt med varandra, agerar ut en vakt hund-mailman scenario. Scenariot är att vakthund roboten skyddar dess hus (aka ljuskälla) från allt som kommer inom dess räckvidd. Om d...

Android + Arduino Labyrith spel

Hie killar...Du har någonsin vandrat för att göra en labyrint som kan styras från din Android Smartphone...!Tja är du på rätt plats. Jag byggde en för mig själv med Arduino och android.Don "t oroa dig dess lätt... I detta projekt kommer jag visa dig...

3D tryckta labyrint kontrolleras av din Android-enhet

Detta projekt startade som en demonstration av HC-05 bluetooth styrelsen för vår Tonåring Imagineering Club . Vi ville visa hur vi kan använda det för att ansluta en Arduino till en Android-enhet. Vi tittade runt på nätet för idéer och detta projekt...