BOB: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
Bez shrnutí editace |
Bez shrnutí editace |
||
(Nejsou zobrazeny 2 mezilehlé verze od stejného uživatele.) | |||
Řádek 12: | Řádek 12: | ||
== Piezospeaker == | == Piezospeaker == | ||
http://learn.parallax.com/node/206 | |||
[[Soubor:BOB-arduino-buzzer.png|right]] | [[Soubor:BOB-arduino-buzzer.png|right]] | ||
Řádek 34: | Řádek 35: | ||
</source> | </source> | ||
== servo == | == servo == | ||
http://learn.parallax.com/node/187 | |||
[[Soubor:BOB-arduino-servp.png|right]] | [[Soubor:BOB-arduino-servp.png|right]] | ||
Řádek 60: | Řádek 63: | ||
void loop() // | void loop() // | ||
{ // | { // | ||
} | |||
</source> | |||
== Put Maneuvers Into Functions == | |||
http://learn.parallax.com/node/226 | |||
[[Soubor:BOB-arduino-Put_Maneuvers_Into_Functions.png|right]] | |||
<source lang="Cpp"> | |||
#include <Servo.h> // | |||
Servo servoLeft; // | |||
Servo servoRight; | |||
void setup() // | |||
{ | |||
tone(4, 3000, 1000); // | |||
delay(1000); // | |||
servoLeft.attach(13); // | |||
servoRight.attach(12); // | |||
forward(2000); // | |||
turnLeft(600); // | |||
turnRight(600); // | |||
backward(2000); // | |||
disableServos(); // | |||
} | |||
void loop() // | |||
{ // | |||
} | |||
void forward(int time) // Forward function | |||
{ | |||
servoLeft.writeMicroseconds(1700); // | |||
servoRight.writeMicroseconds(1300); // | |||
delay(time); // | |||
} | |||
void turnLeft(int time) // Left turn function | |||
{ | |||
servoLeft.writeMicroseconds(1300); // | |||
servoRight.writeMicroseconds(1300); // | |||
delay(time); // | |||
} | |||
void turnRight(int time) // | |||
{ | |||
servoLeft.writeMicroseconds(1700); // | |||
servoRight.writeMicroseconds(1700); // | |||
delay(time); // | |||
} | |||
void backward(int time) // Backward function | |||
{ | |||
servoLeft.writeMicroseconds(1300); // | |||
servoRight.writeMicroseconds(1700); // | |||
delay(time); // | |||
} | |||
void disableServos() // STOP | |||
{ | |||
servoLeft.detach(); // | |||
servoRight.detach(); | |||
} | |||
</source> | |||
== Line Follower == | |||
<source lang="Cpp"> | |||
void loop() | |||
{ | |||
motion = digitalRead(5) + digitalRead(6)*2 + digitalRead(7)*4; | |||
switch(motion) | |||
{ | |||
case 0b010: servoLeft.writeMicroseconds(1300); servoRight.writeMicroseconds(1700); break; // forward | |||
case 0b011: servoLeft.writeMicroseconds(1300); servoRight.writeMicroseconds(1500); break; // slightly to the right | |||
case 0b001: servoLeft.writeMicroseconds(1300); servoRight.writeMicroseconds(1300); break; // turn right | |||
case 0b110: servoLeft.writeMicroseconds(1500); servoRight.writeMicroseconds(1300); break; // slightly to the left | |||
case 0b100: servoLeft.writeMicroseconds(1700); servoRight.writeMicroseconds(1300); break; // turn left | |||
} | |||
} | } | ||
</source> | </source> |
Aktuální verze z 6. 12. 2015, 20:58
NEW !!! - BOB with Arduino | |
== NEW !!! == Robotics with the BOE Shield for Arduino |
Piezospeaker
http://learn.parallax.com/node/206
void setup() //
{
Serial.begin(9600);
Serial.println("Beep!");
tone(4, 3000, 1000); // Play tone for 1 second
delay(1000); //
}
void loop() //
{
Serial.println("Waiting for reset...");
delay(1000);
}
servo
http://learn.parallax.com/node/187
#include <Servo.h> //
Servo servoLeft; //
Servo servoRight; //
void setup() //
{
servoLeft.attach(13); //
servoRight.attach(12); //
servoLeft.writeMicroseconds(1300); //
servoRight.writeMicroseconds(1700); //
delay(5000); //
servoLeft.detach(); // Stop
servoRight.detach();
}
void loop() //
{ //
}
Put Maneuvers Into Functions
http://learn.parallax.com/node/226
#include <Servo.h> //
Servo servoLeft; //
Servo servoRight;
void setup() //
{
tone(4, 3000, 1000); //
delay(1000); //
servoLeft.attach(13); //
servoRight.attach(12); //
forward(2000); //
turnLeft(600); //
turnRight(600); //
backward(2000); //
disableServos(); //
}
void loop() //
{ //
}
void forward(int time) // Forward function
{
servoLeft.writeMicroseconds(1700); //
servoRight.writeMicroseconds(1300); //
delay(time); //
}
void turnLeft(int time) // Left turn function
{
servoLeft.writeMicroseconds(1300); //
servoRight.writeMicroseconds(1300); //
delay(time); //
}
void turnRight(int time) //
{
servoLeft.writeMicroseconds(1700); //
servoRight.writeMicroseconds(1700); //
delay(time); //
}
void backward(int time) // Backward function
{
servoLeft.writeMicroseconds(1300); //
servoRight.writeMicroseconds(1700); //
delay(time); //
}
void disableServos() // STOP
{
servoLeft.detach(); //
servoRight.detach();
}
Line Follower
void loop()
{
motion = digitalRead(5) + digitalRead(6)*2 + digitalRead(7)*4;
switch(motion)
{
case 0b010: servoLeft.writeMicroseconds(1300); servoRight.writeMicroseconds(1700); break; // forward
case 0b011: servoLeft.writeMicroseconds(1300); servoRight.writeMicroseconds(1500); break; // slightly to the right
case 0b001: servoLeft.writeMicroseconds(1300); servoRight.writeMicroseconds(1300); break; // turn right
case 0b110: servoLeft.writeMicroseconds(1500); servoRight.writeMicroseconds(1300); break; // slightly to the left
case 0b100: servoLeft.writeMicroseconds(1700); servoRight.writeMicroseconds(1300); break; // turn left
}
}
Popis
Boe - Bot robot (5 ks z projektu Aplikovaná robotika + 1 ks z projektu OPVK 2009
Je vytvořeno 6 pracovišť s výukovým robotem Boe-Bot Full Kit (5ks s COM, 1ks s USB)
- BOB má jednoduchou konstrukci
- Pohon zabezpečují dva upravené modelářské servomotory.
- Napájený je čtyřmi 1,2 V akumulátory typu AA.
- Řízení zabezpečuje speciální mikroprocesor BasicStamp2 firmy Parallax.
Výukové materiály:
na školní síti: N:\Janousek\mikroLAB\63_BOB_Robot Boe-Bot
Úkoly na cvičení:
- BOB25_Komunikace s Boe-Bot na síti
- BOB29 Testujeme servopohony BOB29a BOB29b BOB29C
- BOB32_Sestava robota Boe-Bot
- BOB33_Prvni pohyby robota Boe-Bot
- BOB34_Navigace robota Boe-Bot
- BOB44_Whiskers_dotykova cidla
- BOB50_Sleduj linku
- BOB55_Navigating with Infrared Headlights
- BOB60_PING- Ultrazvukove cidlo
- BOB70_IR Remote for the Boe-Bot
- BOB75_Kompas
Vývoj aplikace s robotem BOB
- Jízda rovně
- Jízda ve čtverci
- Jízda podle čáry
- Jízda s detekcí nárazu
- Jízda s čidlem ultrazvuku
- Jízda bludištěm
- Jízda v uzavřeném prostoru černou čarou
- Hledání černé čáry s následnou jízdou po ní
- Jízda po čáře s objížděním překážek
- Corridor Sensing
Otázky k opakování:
Užitečné odkazy:
- na školní síti: N:\Janousek\mikroLAB\63_BOB_Robot Boe-Bot
- Prezentace robota Boe-Bot
- Boe-Bot na www.parallax.com
- Robotics with the Boe-Bot
- BASIC Stamp Syntax and Referenc Manual v2.2
- source code
Sada čidel:
Sensor Sampler Kit, ( Hitachi HM55B Compass Module, ......)
SW: STAMP
- na školní síti: uP_UCB-PIC- Basic Stamp
- officiální stránky: Parallax.com - download
- USB Drivers Parallax for Boe-Bot
Syntaxe jazyka:
Příklad:
' {$STAMP BS2}
' {$PBASIC 2.5}
start:
HIGH 3 'nastaví linku (0 až 15) číslo 3 jako výstup s úrovní logické "1"
LOW 2 'nastaví linku číslo 2 jako výstup s úrovní log. "0"
goto start 'skok v programu do místa označeného parametrem návěští.
' {$STAMP BS2}
' {$PBASIC 2.5}
Main:
FREQOUT 7, 10, 25000 ‘generate 25khz tone for 10ms
FREQOUT 7, 1000, 38500 ‘generate 38.5khz tone for 1sec
FREQOUT 7, 2000, 4000, 6000 ‘generate 4khz and 6khz tones for 2sec (at most 2 tones allowed)
END