Stap 2: Beginnen met de Robot
Ik heb de onderstaande code bijgevoegd, maar als je niet met behulp van de Arduino software ik heb gepost hieronder. Dit is wat ik voor mijn rover robot gebruikt voor RobotShop.com. Ik nam een eenvoudige schets van de WASD en bewerkt zodat een programma om te controleren het "op afstand". Zodra u de code hebt gekopieerd kunt u het uploaden naar uw robot met behulp van een USB kabel of wat betekent dat u kunt uploaden naar uw robot.
//Setting motor variablesint motorSpeed = 6; int motor2Speed = 5; int motor1 = 8; int motor2 = 7;
void setup() { int i; for(i=5;i<=8;i++) pinMode(i, OUTPUT); Serial.begin(9600); //Start Serial Communication
}
void loop {//waiting voor seriële communicatie. Als er om het even welk wordt ontvangen voeren de instructie switch. gegevens char = Serial.read(); Snelheid instellen. 255 is max snelheid, kunt u de waarden hieronder om te vertragen als u wilt wijzigen. int leftspeed = 255; int rightspeed = 255; schakelaar (gegevens) {kast '0': //If de arduino ontvangt een 0 dan het zal het commando stoppen die hieronder wordt gedefinieerd. stoppen (); break; case '1': vooruit (leftspeed, rightspeed); break; case "2": omkeren (leftspeed, rightspeed); break; case '3': left (rightspeed, leftspeed); break; case "4": right (rightspeed, leftspeed); break; void loop() { //waiting for any serial communication. If any is received conduct the switch statement. char data = Serial.read(); //Setting speed. 255 is max speed, you can change the values below to slow it down if you want. int leftspeed = 255; int rightspeed = 255; switch (data) { case '0': //If the arduino receives a 0 then it will run the halt command which is defined below. halt (); break; case '1': forward (leftspeed, rightspeed); break; case '2': reverse (leftspeed, rightspeed); break; case '3': left (rightspeed, leftspeed); break; case '4': right (rightspeed, leftspeed); break; }
}
VOID halt(void) {digitalWrite (motorSpeed, laag); digitalWrite (motor2Speed, laag); void halt(void) { digitalWrite(motorSpeed, LOW); digitalWrite(motor2Speed, LOW); }
VOID vooruit (char a, char b) {analogWrite(motorSpeed, a); //releasing de digitalWrite van "rem" (motor1, laag); //Applying volledige vermogen voor de pin. Dit zou doorgaans hoog, maar, mijn draden zijn aangesloten achteruit dus ik ben net overgestapt van de opdracht. analogWrite (motor2Speed, b); digitalWrite (motor2, laag); void forward(char a, char b) { analogWrite(motorSpeed, a); //releasing the "brake" digitalWrite(motor1, LOW); //Applying full power to the pin. This would typically be HIGH but, my wires are hooked up backwards so I just switched the command. analogWrite(motor2Speed, b); digitalWrite(motor2, LOW); }
VOID omgekeerde (char a, char b) {analogWrite(motorSpeed, a); digitalWrite (motor1, hoge); analogWrite (motor2Speed, b); digitalWrite (motor2, hoge); void reverse (char a, char b) { analogWrite(motorSpeed, a); digitalWrite(motor1, HIGH); analogWrite(motor2Speed, b); digitalWrite(motor2, HIGH); } void left (char a,char b) { analogWrite (motorSpeed, a); digitalWrite(motor1, HIGH); analogWrite (motor2Speed, b); digitalWrite(motor2, LOW); } void right (char a,char b) { analogWrite (motorSpeed, a); digitalWrite(motor1, LOW); analogWrite (motor2Speed, b); digitalWrite(motor2, HIGH); } VOID links (a, char char b) {analogWrite (motorSpeed, een); digitalWrite (motor1, hoge); analogWrite (motor2Speed, b); digitalWrite (motor2, laag); using System;using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; using System.Speech; using System.Speech.Recognition; using System.Speech.Synthesis; VOID recht (char a, char b) {analogWrite (motorSpeed, een); digitalWrite (motor1, laag); analogWrite (motor2Speed, b); digitalWrite (motor2, hoge); namespace Voice_Controlled_Rover { public partial class Form1 : Form { private SerialPort myport;