BOB: Porovnání verzí

Z MediaWiki SPŠ a VOŠ Písek
Skočit na navigaci Skočit na vyhledávání
Bez shrnutí editace
Bez shrnutí editace
 
(Není zobrazeno 12 mezilehlých verzí od stejného uživatele.)
Řádek 1: Řádek 1:
'''Boe - Bot robot (5 ks z projektu [[Robotika|Aplikovaná robotika]] + 1 ks z projektu [[OPVK]] 2009'''
{| class="toccolours" cellpadding="5" style="float: left; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 35em"
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''NEW !!! - BOB with Arduino'''''
|-
|
''' == NEW !!! == '''
[http://learn.parallax.com/ShieldRobot Robotics with the BOE Shield for Arduino]
 
[[Soubor:BOB-Arduino_1.png‎|link=http://learn.parallax.com/ShieldRobot]]
|}
 
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 
== Piezospeaker ==
http://learn.parallax.com/node/206
 
[[Soubor:BOB-arduino-buzzer.png‎|right]]
 
<source lang="Cpp">
 
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);
}
 
</source>
 
== servo ==
http://learn.parallax.com/node/187
 
[[Soubor:BOB-arduino-servp.png‎|right]]
 
<source lang="Cpp">
 
#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()                                  //
{                                            //
}
</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>
 
== Popis ==


Je vytvořeno 6 pracovišť s výukovým robotem Boe-Bot Full Kit
[[Soubor:BOB1.jpg‎|right]]
[[Soubor:BOB1.jpg‎|right]]
[[Soubor:Stamp_01.jpg|thumb]]
[[Soubor:Stamp_02.jpg|thumb]]
[[Soubor:Stamp_03.jpg|thumb]]
[[Soubor:Stamp_04.jpg|thumb]]
[[Soubor:Stamp_05.jpg|thumb]]
[[Soubor:Stamp_06.jpg|thumb]]
[[Soubor:Stamp_07.jpg| thumb ]]
[[Soubor:Stamp_08.jpg| thumb ]]
[[Soubor:Stamp_09.jpg| thumb ]]
[[Soubor:Stamp_10.jpg| thumb ]]
[[Soubor:Stamp_11.jpg| thumb ]]
[[Soubor:Stamp_12.jpg| thumb ]]


'''Boe - Bot  robot (5 ks z projektu [[Robotika|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
* BOB má jednoduchou konstrukci
* Pohon zabezpečují dva upravené modelářské servomotory.  
* Pohon zabezpečují dva upravené modelářské servomotory.  
Řádek 13: Řádek 182:
== Výukové materiály: ==
== Výukové materiály: ==


na školní síti: [ftp://obelix.sps-pi.cz/n/Janousek/mikroLAB/63_BOB_Robot%20Boe-Bot/ N:\Janousek\mikroLAB\63_BOB_Robot Boe-Bot]


==Úkoly na cvičení:==
# [[Image:Icon-pdf.gif]] [ftp://obelix.sps-pi.cz/n/Janousek/mikroLAB/63_BOB_Robot%20Boe-Bot/BOB25_Komunikace%20s%20Boe-Bot/BOB25.pdf  BOB25_Komunikace s Boe-Bot na síti]
# [[Image:Icon-pdf.gif]] [[Media:BOB29 Testujeme servopohony.pdf|BOB29 Testujeme servopohony]] [[Image:Icon-bs2.jpg]] [[Media:BOB29a.BS2|BOB29a]] [[Image:Icon-bs2.jpg]] [[Media:BOB29b.BS2|BOB29b]] [[Image:Icon-bs2.jpg]] [[Media:BOB29c.BS2|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


== Úlohy na cvičení: ==
== [[Vývoj aplikace s robotem BOB]] ==
 
 
 
 
 
== Vývoj aplikace s robotem BOB: ==


#[[BOB-Jízda rovně|Jízda rovně]]
#[[BOB-Jízda rovně|Jízda rovně]]
Řádek 32: Řádek 208:
#[[BOB-Hledání černé čáry s následnou jízdou po ní|Hledání černé čáry s následnou jízdou po ní]]
#[[BOB-Hledání černé čáry s následnou jízdou po ní|Hledání černé čáry s následnou jízdou po ní]]
#[[BOB-Jízda po čáře s objížděním překážek|Jízda po čáře s objížděním překážek]]
#[[BOB-Jízda po čáře s objížděním překážek|Jízda po čáře s objížděním překážek]]
# [[BOB-Corridor Sensing|Corridor Sensing]]
[[Vývoj aplikace s robotem BOB|více úloh]]


== Otázky k opakování: ==
== Otázky k opakování: ==
Řádek 37: Řádek 216:


== Užitečné odkazy: ==
== Užitečné odkazy: ==
 
* na školní síti: [ftp://obelix.sps-pi.cz/n/Janousek/mikroLAB/63_BOB_Robot%20Boe-Bot/ N:\Janousek\mikroLAB\63_BOB_Robot Boe-Bot]
* [ftp://obelix.sps-pi.cz/n/janousek/mikroLAB/63_BOB_Robot%20Boe-Bot/PRE_BOB_03.pdf Prezentace robota Boe-Bot]
* [ftp://obelix.sps-pi.cz/n/janousek/mikroLAB/63_BOB_Robot%20Boe-Bot/PRE_BOB_03.pdf Prezentace robota Boe-Bot]
* [http://www.parallax.com/detail.asp?product_id=28832  Boe-Bot na www.parallax.com]
* [http://www.parallax.com/detail.asp?product_id=28832  Boe-Bot na www.parallax.com]
* [[Soubor:Pdf.jpg‎]] [ftp://obelix.sps-pi.cz/n/janousek/mikroLAB/63_BOB_Robot%20Boe-Bot/Roboticsv2_2.pdf Robotics with the Boe-Bot]
* [[Soubor:Pdf.jpg‎]] [ftp://obelix.sps-pi.cz/n/janousek/mikroLAB/63_BOB_Robot%20Boe-Bot/Roboticsv2_2.pdf Robotics with the Boe-Bot]
* [[Soubor:Pdf.jpg‎]] [ftp://obelix.sps-pi.cz/n/janousek/mikroLAB/63_BOB_Robot%20Boe-Bot/web-BSM-v2.2.pdf BASIC Stamp Syntax and Referenc Manual v2.2]
* [[Soubor:Pdf.jpg‎]] [ftp://obelix.sps-pi.cz/n/janousek/mikroLAB/63_BOB_Robot%20Boe-Bot/web-BSM-v2.2.pdf BASIC Stamp Syntax and Referenc Manual v2.2]
* [http://www.aaronklapheck.com/Boe-Bot_code.html source code]


'''Sada čidel''':
'''Sada čidel''':
Řádek 47: Řádek 227:
[http://www.parallax.com/Store/Sensors/AccelerationTilt/tabid/172/CategoryID/46/List/0/SortField/0/Level/a/ProductID/468/Default.aspx Sensor Sampler Kit],  ( [http://www.parallax.com/tabid/768/ProductID/98/Default.aspx Hitachi HM55B Compass Module], ......)
[http://www.parallax.com/Store/Sensors/AccelerationTilt/tabid/172/CategoryID/46/List/0/SortField/0/Level/a/ProductID/468/Default.aspx Sensor Sampler Kit],  ( [http://www.parallax.com/tabid/768/ProductID/98/Default.aspx Hitachi HM55B Compass Module], ......)


== SW: ==
== SW: [[STAMP]]==


[ftp://obelix.sps-pi.cz/p/SPS/PRA/SW/uP_UCB-PIC-%20Basic%20Stamp uP_UCB-PIC- Basic Stamp] na školní síti nebo na PC v učebně D10 na ploše: robotika/stampw nebo přímo na officiálních stránkách: [http://www.parallax.com/Support/DownloadsPress/tabid/477/Default.aspx Parallax.com]  
* na školní síti: [ftp://obelix.sps-pi.cz/p/SPS/PRA/SW/uP_UCB-PIC-%20Basic%20Stamp uP_UCB-PIC- Basic Stamp]  
* officiální stránky: [http://www.parallax.com/Support/DownloadsPress/tabid/477/Default.aspx Parallax.com - download]
* [ftp://obelix.sps-pi.cz/p/SPS/PRA/SW/uP_UCB-PIC-%20Basic%20Stamp/USB%20Drivers%20Parallax%20for%20Boe-Bot USB Drivers Parallax for Boe-Bot]


[ftp://obelix.sps-pi.cz/p/SPS/PRA/SW/uP_UCB-PIC-%20Basic%20Stamp/USB%20Drivers%20Parallax%20for%20Boe-Bot USB Drivers Parallax for Boe-Bot]
== Syntaxe jazyka: ==


==Úkoly na cvičení:==
Příklad:
# [ftp://obelix.sps-pi.cz/n/Janousek/mikroLAB/63_BOB_Robot%20Boe-Bot/BOB25_Komunikace%20s%20Boe-Bot/BOB25.pdf BOB25_Komunikace s Boe-Bot]
 
# [ BOB29_Testujeme servopohony]
<source lang="qbasic">
# [ BOB32_Sestava robota Boe-Bot]
' {$STAMP BS2}
# [ BOB33_Prvni pohyby robota Boe-Bot]
' {$PBASIC 2.5}
# BOB34_Navigace robota Boe-Bot
start:  
# BOB44_Whiskers_dotykova cidla
HIGH 3 'nastaví linku (0 až 15) číslo 3 jako výstup s úrovní logické "1"
# BOB50_Sleduj linku
LOW 2  'nastaví linku číslo 2 jako výstup s úrovní log. "0"
# BOB55_Navigating with Infrared Headlights
goto start 'skok v programu do místa označeného parametrem návěští.
# BOB60_PING- Ultrazvukove cidlo
</source> 
# BOB70_IR Remote for the Boe-Bot
 
# BOB75_Kompas
<source lang="qbasic">
' {$STAMP BS2}
==www:==[ftp://obelix.sps-pi.cz/n/Janousek/mikroLAB/63_BOB_Robot%20Boe-Bot/info na školním FTP]
' {$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
</source>


== Experimenty ==


[[BOB - úkoly]]
----
----
[[category:JA]]
[[category:JA]]
[[category:Robotika]]
[[category:Robotika]]
[[category:KR]]
[[category:KR]]

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í:

  1. BOB25_Komunikace s Boe-Bot na síti
  2. BOB29 Testujeme servopohony BOB29a BOB29b BOB29C
  3. BOB32_Sestava robota Boe-Bot
  4. BOB33_Prvni pohyby robota Boe-Bot
  5. BOB34_Navigace robota Boe-Bot
  6. BOB44_Whiskers_dotykova cidla
  7. BOB50_Sleduj linku
  8. BOB55_Navigating with Infrared Headlights
  9. BOB60_PING- Ultrazvukove cidlo
  10. BOB70_IR Remote for the Boe-Bot
  11. BOB75_Kompas

Vývoj aplikace s robotem BOB

  1. Jízda rovně
  2. Jízda ve čtverci
  3. Jízda podle čáry
  4. Jízda s detekcí nárazu
  5. Jízda s čidlem ultrazvuku
  6. Jízda bludištěm
  7. Jízda v uzavřeném prostoru černou čarou
  8. Hledání černé čáry s následnou jízdou po ní
  9. Jízda po čáře s objížděním překážek
  10. Corridor Sensing

více úloh

Otázky k opakování:

Robot Boe-Bot

Užitečné odkazy:

Sada čidel:

Sensor Sampler Kit, ( Hitachi HM55B Compass Module, ......)

SW: STAMP

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

Experimenty

BOB - úkoly