Na podwozie do pierwszego samojezdnego robota wybrałem ten model. Jest w rozsądnej cenie i prezentuje się całkiem ładnie. poza tym ma wystarczającą liczbę otworów na mocowanie różnego rodzaju czujników. silniki można mocować na dwa różne sposoby albo jak na zdjęciu na dolnej lub na górnej płycie. Ja jak na razie wybrałem tą drugą opcję. Na górnej płycie zamontowałem Arduino, są tam odpowiednio wywiercone otwory do jego zamocowania.
W dolnej części zamontowałem czujniki dźwięku, czujnik odległości na podczerwień.
Projekt ROBOT
W tym blogu można znaleźć kilka ciekawych... przynajmniej tak myślę projektów z wykorzystaniem ARDUINO. Wszystkie projekty są z pewnością zainspirowane znaleziskami w sieci, niemniej jednak są zrobione i sprawdzone.
poniedziałek, 7 kwietnia 2014
piątek, 4 kwietnia 2014
Buzzer (SKU: DFR0032)
...
int
buzzPin = 10;
//Podłącz Buzzer do Digital Pin10
void
setup()
{
pinMode(buzzPin, OUTPUT);
}
void
loop()
{
digitalWrite(buzzPin, HIGH);
delay(1);
digitalWrite(buzzPin, LOW);
delay(1000);
}
buzer se światłomierzem
Odbiornik podczerwieni 38kHz
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
}
czwartek, 3 kwietnia 2014
Analogowy czujnik dźwięku (SKU: DFR0034)
...
void
setup()
{
Serial.begin(9600);
// open serial port, set the baud rate to 9600 bps
}
void
loop()
{
int
val;
val=analogRead(0);
//connect mic sensor to Analog 0
Serial.println(val,DEC);
//print the sound value to serial
delay(100);
}
...
Czujnik zbliżeniowy na podczerwień E18-D80NK
Pierwszy projekt jeżdżącego robota najłatwiej chyba zrobić z tym czujnikiem. Jego wadą to wąskie pole widzenia przy wykrywaniu przeszkody. Dlatego chyba najczęściej na zdjęciach widać roboty z przynajmniej 3 czujnikami boczne czujniki można zamontować np pod kontem 45* względem centralnego. Poniżej kod na 4 silniki. Po wykryciu przeszkody system losuje liczby "0" - obracamy się w lewo i "1" - obracamy się w prawo, w innym przypadku jedziemy prosto przed siebie.
kod
------------------------------
#include
const int IR = 13;
long RandNumber;
AF_DCMotor motor1(1, MOTOR12_64KHZ);
AF_DCMotor motor2(2, MOTOR12_64KHZ);
AF_DCMotor motor3(3, MOTOR12_64KHZ);
AF_DCMotor motor4(4, MOTOR12_64KHZ);
void setup()
{
pinMode(IR,INPUT);
motor1.setSpeed(255);
motor2.setSpeed(255);
motor3.setSpeed(255);
motor4.setSpeed(255);
}
void loop(){
if(digitalRead(IR) == LOW)
{RandNumber = random(0,2);}
if(RandNumber == 0)
{stopL();}
else if(RandNumber == 1)
{stopR();}
else
{naprzod();}
}
void stopL(){
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
delay(1000);
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
delay(500);
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
delay(650);
}
void stopR(){
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
delay(1000);
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
delay(500);
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
delay(650);
}
void naprzod(){
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
}
piątek, 21 marca 2014
Zabawa RGB z telefonem w systemie android
Projekt przygotowany przez Bee Project (Thailand)
Aplikacja na androida
kod:
//przypisujemy piny do RGB
const int redPin = 6;
const int greenPin = 5;
const int bluePin = 3;
#define REDPIN 6
#define GREENPIN 5
#define BLUEPIN 3
#define FADESPEED 5
void setup() {
// initialize serial:
Serial.begin(9600);
// make the pins outputs:
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
Serial.print("Arduino control RGB LEDs Connected OK ( Sent From Arduinno Board )");
Serial.print('\n');
}
void loop() {
// if there's any serial available, read it:
while (Serial.available() > 0) {
// look for the next valid integer in the incoming serial stream:
int red = Serial.parseInt();
// do it again:
int green = Serial.parseInt();
// do it again:
int blue = Serial.parseInt();
// look for the newline. That's the end of your
// sentence:
if (Serial.read() == '\n') {
// constrain the values to 0 - 255 and invert
// if you're using a common-cathode LED, just use "constrain(color, 0, 255);"
red = constrain(red, 0, 255);
green = constrain(green, 0, 255);
blue = constrain(blue, 0, 255);
// fade the red, green, and blue legs of the LED:
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
// print the three numbers in one string as hexadecimal:
Serial.print("Data Response : ");
Serial.print(red, HEX);
Serial.print(green, HEX);
Serial.println(blue, HEX);
}
}
}
Aplikacja na androida
kod:
//przypisujemy piny do RGB
const int redPin = 6;
const int greenPin = 5;
const int bluePin = 3;
#define REDPIN 6
#define GREENPIN 5
#define BLUEPIN 3
#define FADESPEED 5
void setup() {
// initialize serial:
Serial.begin(9600);
// make the pins outputs:
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
Serial.print("Arduino control RGB LEDs Connected OK ( Sent From Arduinno Board )");
Serial.print('\n');
}
void loop() {
// if there's any serial available, read it:
while (Serial.available() > 0) {
// look for the next valid integer in the incoming serial stream:
int red = Serial.parseInt();
// do it again:
int green = Serial.parseInt();
// do it again:
int blue = Serial.parseInt();
// look for the newline. That's the end of your
// sentence:
if (Serial.read() == '\n') {
// constrain the values to 0 - 255 and invert
// if you're using a common-cathode LED, just use "constrain(color, 0, 255);"
red = constrain(red, 0, 255);
green = constrain(green, 0, 255);
blue = constrain(blue, 0, 255);
// fade the red, green, and blue legs of the LED:
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
// print the three numbers in one string as hexadecimal:
Serial.print("Data Response : ");
Serial.print(red, HEX);
Serial.print(green, HEX);
Serial.println(blue, HEX);
}
}
}
robot, robotyka, arduino, projekty, budowa
android,
led,
projekt arduino,
rgb,
smarfon
Subskrybuj:
Posty (Atom)