Arduino Labyrinth (4 / 4 schritt)

Schritt 4: Arduino Code


Der Code kann geändert werden, so dass der Steuerknüppel oder Beschleunigungsmesser Standard sein kann!
Der Code hat ein paar un-nötig Elemente, die zu vernachlässigen sind!

#include / / Arduino Library Wire.h
#include / / Arduino Bibliothek string.h
#include / / Arduino Bibliothek Stdio.h
#include / / Arduino Library Servo.h

Servo Myservo;  Erstellen Sie Servo-Objekt um Trigger Servo Steuern

Int pos = 90;    Variable, die Trigger-Servo-Position speichern

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;

lange LastPulse = 0;
lange lastPulse2 = 0;

Int Z_button = 0;
Int C_button = 0;

Int RefreshTime = 20;  optimiert für High-Tech-servos

Int MinPulse = 300;  optimiert für Hi-Tech-3-11-servos
Int minPulse2 = 300;  optimiert für Hi-Tech-3-11-servos
Int MaxPulse = 2500; maximale Servoposition
Int maxPuls2e = 2500; maximale Servoposition

Int Dtime = 10;

#define Pwbuffsize 10
lange Pwbuff [Pwbuffsize];
lange Pwbuffpos = 0;
lange pwbuff2 [Pwbuffsize];
lange pwbuffpos2 = 0;

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

Serial.Begin (9600);
(Wire.Begin);
(Nunchuck_init);
PinMode (ServoPin, Ausgang);
PinMode (servoPin2, Ausgang);

PulseWidth = MinPulse;
pulseWidth2 = minPulse2;

Serial.Print ("fertige Setup\n");
}

void nunchuck_init() / / Wii Nonne-Futter-Handshaking
{
Wire.beginTransmission (0x52);
Wire.Send (0 x 40);
Wire.Send (0 x 00);
(Wire.endTransmission);
}

void send_zero() / / Wii Nonne-Futter-Handshaking
{
Wire.beginTransmission (0x52);
Wire.Send (0 x 00);
(Wire.endTransmission);
}

Int t = 0;

void loop()
{
PinMode (ledPin12, Ausgang); Sätze pin 12 als Ausgang, so dass das Magnetventil von der Wii Nunchuck Z-Taste kontrolliert werden können
t ++;
endlich = millis();

Wenn (t == 1) {}

t = 0;

Wire.requestFrom (0x52, 6);

während (Wire.available ()) {}
Outbuf [Cnt] = Nunchuk_decode_byte (Wire.receive ());
DigitalWrite (LedPin, HIGH);
CNT ++;
}

Wenn (Cnt > = 5) {}

Int Z_button = 0; Z initialisiert auf Null
Int C_button = 0; C initialisiert auf Null

Wenn ((Outbuf [5] >> 0) & 1) / / prüft Byte 5 aus der Wii-Nunchuck für die Position der Z-Taste
Z_button = 1; Z festgelegt auf 1
Wenn ((Outbuf [5] >> 1) & 1) / / prüft Byte 5 aus der Wii-Nunchuck für die Position der Z-Taste
C_button = 1; C festgelegt auf 1

Schalter (C_button) {/ / Case Anweisung für C Schaltflächenstatus
Fall 1:

Muovi (Outbuf [1] / 2 + 0x3E, Outbuf [0] / 2 + 0x3E); Aktiviert Accelromiter Steuerelement für Wii Nunchuck
zu brechen;
Fall 0:
Muovi (Outbuf [3], Outbuf [2]); Vorgabe Joystick-Steuerung für die Wii nunchuck
zu brechen;
}

Schalter (Z_button) {/ / Case Anweisung für Z Schaltflächenstatus
Fall 1: {}
DigitalWrite (ledPin12, LOW);   Magnetventil Standard ist off
Z_trig = 0;}
zu brechen;
Fall 0: {}
Wenn (Z_trig == 0) {}
DigitalWrite (ledPin12, HIGH);  Aktiviert das Magnetventil
Verzögerung (20);
DigitalWrite (ledPin12, LOW); das Magnetventil wird deaktiviert, wenn Z Taste gehalten, vor Bruch zu schützen
Z_trig = 1 ;}}

zu brechen;
}

}

CNT = 0;
send_zero();

}

updateServo();

Delay(dtime);
}


void updateServo()
{

Wenn (millis() - LastPulse > = RefreshTime) {}

DigitalWrite (ServoPin, HIGH);
delayMicroseconds(pulseWidth);
DigitalWrite (ServoPin, LOW);

DigitalWrite (servoPin2, HIGH);
delayMicroseconds(pulseWidth2);
DigitalWrite (servoPin2, LOW);

LastPulse = millis();
}
}

Int ich = 0;

Char Nunchuk_decode_byte (Char X)
{
x = (X ^ 0x17) + 0x17;
Return x;
}

void Muovi (uint8_t x uint8_t y) {}
Neigung zu schweben = (700 - X * 2 * 2);
tilt2 schweben = (0x7E - y + 0x7E) * 2 * 2;

Neigung (Tilt) =;
PulseWidth = (kippen * 5) + MinPulse;

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

Pwbuff [Pwbuffpos] = PulseWidth;
pwbuff2 [pwbuffpos2] = pulseWidth2;

Wenn (++ Pwbuffpos == Pwbuffsize) Pwbuffpos = 0;
Wenn (++ pwbuffpos2 == Pwbuffsize) pwbuffpos2 = 0;


PulseWidth = 0;
pulseWidth2 = 0;

für (Int p = 0; p PulseWidth += Pwbuff [p];
pulseWidth2 += pwbuff2 [p];
}

PulseWidth / = Pwbuffsize;
pulseWidth2 / = Pwbuffsize;
}

In Verbindung stehende Artikel

Labyrinth der Solver-Roboter mit künstlicher Intelligenz mit Arduino

Labyrinth der Solver-Roboter mit künstlicher Intelligenz mit Arduino

(Wer gerne diese Instructable, vergessen Sie bitte nicht darüber abstimmen (oben: rechten Eckfahne). Rex, ist der Roboter auf Robotik und Sensorik Wettbewerben konkurrieren. Vielen Dank! ;-)Diese Instructable entstand bei meinem letzten Projekt: Line
Labyrinth der Solver mit Arduino und ArduMoto(Micromouse) V:1.1

Labyrinth der Solver mit Arduino und ArduMoto(Micromouse) V:1.1

Diese '' Instructables'' soll jedem Hersteller, Enthusiasten ihre eigenen Labyrinth Solver (Micromouse) zu helfen. Die Existenz des Micromouse hat zurück in die 1950er Jahre datiert und Wettbewerbe werden seitdem gehalten. Obwohl diese Wettbewerbe ei
Android + Arduino Labyrith Spiel

Android + Arduino Labyrith Spiel

Hie Jungs...Sie haben überhaupt gewandert, um ein Labyrinth Board die gesteuert werden können aus Ihrem Android-Smartphone zu machen!Nun sind Sie an der richtigen Stelle. Ich baute einen für mich mit Arduino und Android.Don "t Sorge sein einfaches...
Guard Dog und Mailman-Szenario mit Arduino

Guard Dog und Mailman-Szenario mit Arduino

Das Ziel dieses Projektes ist es, zwei Roboter erfolgreich miteinander interagieren ausleben einer Wache Hund-Briefträger Szenario zu programmieren. Das Szenario ist, dass der Wachhund-Roboter schützt seine Haus (aka Lichtquelle) von etwas, das in se
LED-Arduino-Bier-Pong-Tisch

LED-Arduino-Bier-Pong-Tisch

Unser Projekt ist eine LED-Leuchte Unterhaltung Tabelle, oder umgangssprachlich, ein Bier-Pong-Tisch. Wir haben die Idee von einer Gruppe von Studenten letztes Jahr baute auch einen Bier-Pong-Tisch für ihre Abschlussarbeit, und wir lernten ihr Design
Gedruckte 3D-Labyrinth gesteuert von Ihrem Android-Gerät

Gedruckte 3D-Labyrinth gesteuert von Ihrem Android-Gerät

Dieses Projekt begann als eine Demonstration des HC-05 Bluetooth Board für unsere Teen Imagineering Club . Wir wollten zeigen, wie wir sie verwenden können, um ein Arduino mit einem Android-Gerät zu verbinden. Wir schauten uns um im Internet nach Ide
Arduino-basierte Linie Anhänger Roboter mit Zeilensensor Pololu QTR-8RC

Arduino-basierte Linie Anhänger Roboter mit Zeilensensor Pololu QTR-8RC

UPDATE FEB 2012: Diese Anleitung ist auf Adafruit Blog vorgestellthttp://www.Adafruit.com/Blog/2012/02/14/Arduino-based-Line-Follower-Robot/Dies ist Faz3a II, meine erste Zeile-nach-Roboter, die hoffentlich auch für die Labyrinth-Lösung verwenden. Fr
Arduino: sensible Roboter

Arduino: sensible Roboter

Hallo.Ich möchte Ihnen zeigen, wie Sie einen Roboter mit einem Arduino und ein paar andere Teile zu bauen. Was brauchen wir?Arduino. Ich habe Leonardo aber es ist nicht wichtigH-Brücke TB6612FNG oder andereChassis für Roboter zum Beispiel DAGU DG012-
Labyrinth lösen Roboter

Labyrinth lösen Roboter

Dies ist ein Labyrinth, Roboter, ich arbeite für unsere jährliche Roboter-Wettbewerb auf, zu lösen. Einige Teile sind gekauft und einige Teile lagen um das Sammeln von Staub. Hier also meine Instructables, ein anständiges Labyrinth lösen Roboter zu m
Roboter Labyrinth Solver

Roboter Labyrinth Solver

Dieses Tutorial wird Ihnen einen Arduino basierend Roboter zu schaffen, der basic-Line Labyrinthe lösen können, die keinen geschlossene Schleifen.Wie es funktioniert:Der Roboter ist so programmiert, fahren Sie über die schwarzen Linien des Labyrinths
Basic Line nach Roboter mit Arduino

Basic Line nach Roboter mit Arduino

07.09.2015Es wurde ein paar Jahre, da wir diese grundlegenden Linie folgende Roboter mit Arduino Tutorial ursprünglich gebucht, und es so viele Leute finden es hilfreich scheint, dass wir nach einem Update sollte die aktuelle Arduino Bibliotheken läu
Arduino gesteuert Marble Maze

Arduino gesteuert Marble Maze

Dies ist ein einfaches Arduino-Projekt, eine Kugelbahn zu kontrollieren.  Marble Maze (Sie können es online Steuern) kommt aus einem Projekt in TeleToyland, und die Bauanleitung sind in diesem Instructable.  Für eine neue Show musste ich Kinder zum s
LASER-Labyrinth 2012 - Halloween Haunted House

LASER-Labyrinth 2012 - Halloween Haunted House

eine neue Version des LASER-Labyrinth für 2012!(die alte Version hier zu finden: LASER Labyrinth 2011)Sehen Sie die Fotos auf Schritt 7!Sehen Sie die VIDEOs auf Stufe 8!Was ist es?Das LASER-Labyrinth 2012 ist eine cineastische Laser "Sicherheitssyste
Laser-Labyrinth Sicherheitssystem

Laser-Labyrinth Sicherheitssystem

Dies ist ein Instructable, die Ihnen sagt, wie man einen Laser Tripwire oder Laser-Labyrinth, genau wie in den Filmen!Alles was, die Sie brauchen:* Arduino* Summer/Alarm/Led* Led (optional)* 1 Widerstand (beliebiger Wert)* 1 LDR* Laser-Feder* Eine Fe