113
Robo-Creator ฉบับ AT-BOT

Robo-Creator Training

Embed Size (px)

DESCRIPTION

Power Point Presentation in Thai For Robo-Creator From INEX

Citation preview

Page 1: Robo-Creator Training

Robo-Creator ฉบบ AT-BOT

Page 2: Robo-Creator Training

รายละเอยดการอบรม

9.00-10.00 แนะน าใหรจกหนยนต Robo-Creator แนะน าซอฟตแวร Wiring การตดตงซอฟตแวรขนตอนการดาวนโหลดโปรแกรมไปยงหนยนต

10.00-11.00 การแสดงผลขอมลทหนาจอ LCDการสรางเสยงออกล าโพง

11.00-12.00 การใชงานสวตชกดและตวตานทานปรบคาได12.00-13.00 พกกลางวน13.00-14.00 การขบเคลอนหนยนตเบองตน

เดนหนา ถอยหลง เลยวซาย เลยวขวาเขยนโปรแกรมใหหนยนตเดนวนเปนรปสเหลยม

14.00-15.00 การใชงานเซนเซอรสวตชการควบคมหนยนตดวยเซนเซอรสวตช

15.00-16.30 การใชงานเซนเซอรตรวจจบการสะทอนการเคลอนทตามเสนอยางงายการเคลอนทตามเสนแบบตรวจสอบทางแยก

Page 3: Robo-Creator Training

Robot-Mindmap

Page 4: Robo-Creator Training

แผงวงจรหลกแผงวงจรหลก บอรดบอรด ATXATX

Page 5: Robo-Creator Training

1) ขบเคลอนดวยมอเตอรไฟตรงทมชดเฟองทดอตรา 48:1 ทง 4 ลอ

Page 6: Robo-Creator Training

2) ตอมอเตอรไฟตรง 6 ตว

1

2

3

4

5

6

Page 7: Robo-Creator Training

3) ขบเซอรโวมอเตอรไดสงสด 6 ตว

Page 8: Robo-Creator Training

4) ลอขบเคลอนเปนแบบลอยางมป ม

Page 9: Robo-Creator Training

4) จดตอเซนเซอรอะนาลอกและดจตอล I2C สอสารอนกรม

Page 10: Robo-Creator Training

5) ก าเนดเสยงผานล าโพงเปยโซ

ล าโพงเปยโซ

Page 11: Robo-Creator Training

สรป

Page 12: Robo-Creator Training

การน าบอรดประยกตใชงานการน าบอรดประยกตใชงาน

Page 13: Robo-Creator Training

ตดตง ตดตง Gripper Gripper ดานหนาดานหนา

Page 14: Robo-Creator Training

ตดตงเซนเซอรเพอเคลอนทตามเสนตดตงเซนเซอรเพอเคลอนทตามเสน

Page 15: Robo-Creator Training

ตดตงเซนเซอรเพอตรวจจบการชนตดตงเซนเซอรเพอตรวจจบการชน

Page 16: Robo-Creator Training

ตดตงเซนเซอรวดระยะทางเพอคนหาเสนทางตดตงเซนเซอรวดระยะทางเพอคนหาเสนทาง

Page 17: Robo-Creator Training

ปรบเปลยนโครงสรางเปนลอสายพานปรบเปลยนโครงสรางเปนลอสายพาน

Page 18: Robo-Creator Training

เปลยนลอขบเคลอนเปนเซอรโวมอเตอรแบบหมนไดรอบตวเปลยนลอขบเคลอนเปนเซอรโวมอเตอรแบบหมนไดรอบตว

Page 19: Robo-Creator Training

เปลยนลอขบเคลอนเปนลอแบบ เปลยนลอขบเคลอนเปนลอแบบ Omni Omni เคลอนทไดหลายทศทางเคลอนทไดหลายทศทาง

Page 20: Robo-Creator Training

เปลยนการขบเคลอนเปนแบบขา โดยใชเซอรโวมอเตอร เปลยนการขบเคลอนเปนแบบขา โดยใชเซอรโวมอเตอร 3 3 ตวตว

Page 21: Robo-Creator Training

รปทรงมาตรฐานทใชในการอบรมรปทรงมาตรฐานทใชในการอบรม

Page 22: Robo-Creator Training

รายละเอยดบนตวบอรด ATX

Page 23: Robo-Creator Training

ซอฟตแวรส าหรบเขยนโปรแกรมซอฟตแวรส าหรบเขยนโปรแกรม

ท าอะไรไดบาง http://wiring.org.co

Page 24: Robo-Creator Training

ตดตงซอฟตแวร

ดบเบลคลกเพอตดตง

Page 25: Robo-Creator Training

ขนตอนการตดตง

ตดตง Wiring และไดรเวอรของ USB

Page 26: Robo-Creator Training

ชดพฒนาโปรแกรมภาษา C/C++ ส าหรบไมโครคอนโทรลเลอร AVR แบบ Open Source ชอ Wiring สามารถน ามาใชงานไดโดยไมมคาใชจาย

ทดสอบเปดโปรแกรม Wiringทดสอบเปดโปรแกรม Wiring

Page 27: Robo-Creator Training

ใสถานขนาด AA 5 กอน

ถานชารจหรออลคาไลน

Page 28: Robo-Creator Training

เชอมตอสาย USB กบคอมพวเตอรและ AT-BOTเชอมตอสาย USB กบคอมพวเตอรและ AT-BOT

Page 29: Robo-Creator Training

ตรวจสอบพอรตอนกรมของคอมพวเตอรตรวจสอบพอรตอนกรมของคอมพวเตอร

แสดงขอความพบฮารดแวรใหมและพรอมใชแสดงขอความพบฮารดแวรใหมและพรอมใช

คลกเมาสขวา เลอก Propertiesคลกเมาสขวา เลอก Properties

Device ManagerDevice Manager

Page 30: Robo-Creator Training

ตรวจสอบพอรตอนกรมของคอมพวเตอรตรวจสอบพอรตอนกรมของคอมพวเตอร

Page 31: Robo-Creator Training

ก าหนดคาทโปรแกรม Wirring ใหตรงกนก าหนดคาทโปรแกรม Wirring ใหตรงกน

Page 32: Robo-Creator Training

ก าหนดชอของบอรดเปน Robo-Creator R1ก าหนดชอของบอรดเปน Robo-Creator R1

Page 33: Robo-Creator Training

ทดลองเขยนโปรแกรมตามตวอยางทดลองเขยนโปรแกรมตามตวอยาง

Page 34: Robo-Creator Training

คอมไพลโปรแกรมทเขยนคอมไพลโปรแกรมทเขยน

โปรแกรมแจงวาไมม ERROR

ป มคอมไพล

คยลด Ctrl+R

Page 35: Robo-Creator Training

เตรยมหนยนตเขาสโหมดอพโหลดเตรยมหนยนตเขาสโหมดอพโหลด

Page 36: Robo-Creator Training

กดป มเพออพโหลด

อพโหลดโปรแกรมอพโหลดโปรแกรม

คยลด Ctrl+U

Page 37: Robo-Creator Training

ผลลพธ หนาจอแสดงขอความผลลพธ หนาจอแสดงขอความ

Page 38: Robo-Creator Training

ไลบรารส าหรบหนยนต AT-BOTไลบรารส าหรบหนยนต AT-BOT

#include <motor.h>

#include <sleep.h>

#include <in_out.h>

#include <lcd.h>

#include <analog.h>

#include <servoMotor.h>

#include <sound.h>

#include <serial.h>

ขบมอเตอรหนวงเวลาอนพตเอาตพตดจตอลตดตอจอ LCDอานคาจากเซนเซอรใชงานเซอรโวมอเตอรก าเนดเสยงสอสารอนกรม

เมอเรยก atx.h จะเรยกไลบรารเหลาน

Page 39: Robo-Creator Training

#include

void setup()

{

}

void loop()

{

}

#include <atx.h>

void setup()

{

}

void loop()

{

}

รปแบบการเขยนโปรแกรม

atx.h คอไลบรารหลกในการพฒนาหนยนต AT-BOT

setup คอฟงกชนทจะท างานเพยงครงเดยวหลงจากโปรแกรมเรมท างาน loop คอฟงกชนทจะท างานวนซ าตอเนอง โดยจะเรมท างานหลงจากท างานในฟงกชน setup เสรจ

Page 40: Robo-Creator Training

รปแบบการแสดงผลทหนาจอ LCD

แสดงผลตว 16 ตวอกษร 2 บรรทด

Page 41: Robo-Creator Training

ไลบรารควบคมการแสดงผลทโมดล LCD

void lcd(char *p,…);

รปแบบฟงกชน

พารามเตอร

p ใชก าหนดรปแบบการแสดงผลทโมดล LCD โดยสามารถก าหนดรปแบบการแทรกสญลกษณพเศษเพอรวมแสดงผลคาขอมลตวเลขชนดตางๆได

Page 42: Robo-Creator Training

#include <atx.h>

void setup()

{

lcd("Hello AT-BOT");

}

void loop()

{

}

ตวอยางท 1

Page 43: Robo-Creator Training

#include <atx.h>

void setup()

{

lcd("abcdefghijklmnopqrstuvwxyz");

}

void loop()

{

}

ตวอยางท 2

เมอตวอกขระตดกนเกน 16 ตวอกษร จะตดขนบรรทดใหมให

Page 44: Robo-Creator Training

รหสบงคบ การท างาน

%%d d หรอ หรอ %D%D แสดงผลตวเลขชวง แสดงผลตวเลขชวง --3232,,768 768 ถง ถง ++3232,,767767

%%f f หรอ หรอ %F%F แสดงผลตวเลขจ านวนจรงทศนยม แสดงผลตวเลขจ านวนจรงทศนยม 3 3 หลกหลก

#c#c เคลยรหนาจอเคลยรหนาจอ

#n#n น าขอความแสดงทบรรทดท น าขอความแสดงทบรรทดท 22

ค าสงพเศษ

Page 45: Robo-Creator Training

#include <atx.h>int x=158;void setup(){

lcd("Value: %d ",x);}void loop(){

}

ตวอยางท 3

การน าคาตวเลขมาแสดง โดยเรมตนอยในรปแบบของตวแปร

ก าหนดคาตวแปร

Page 46: Robo-Creator Training

#include <atx.h>

int i=0;

void setup()

{

}

void loop()

{

lcd("Count: %d ",i);

sleep(1000);

i++;

}

ตวอยางท 4

โปรแกรมนบคาเพมขนทละ 1ทกๆ 1 วนาท

ตวแปร

เพมคาตวแปรขนทละ 1

Page 47: Robo-Creator Training

#include <atx.h>

void setup()

{

}

void loop()

{

lcd("Sawaddee#nThailand");

}

ตวอยางท 5

แสดงตวอกษร “Thailand” ในบรรทดท 2

อกขระพเศษ

Page 48: Robo-Creator Training

สรางเสยงออกล าโพงเปยโซ

ล าโพงเปยโซ

Page 49: Robo-Creator Training

ฟงกชน beep()beep() ก าเนดเสยง ก าเนดเสยง 5500 00 Hz Hz นาน นาน 00..1 1 วนาทวนาท

void beep(void);void beep(void);

ฟงกชน ฟงกชน soundsound () () ก าเนดเสยงตามความถและเวลาทก าหนดก าเนดเสยงตามความถและเวลาทก าหนด

void sound(int freq,int time);void sound(int freq,int time);

โดย โดย freqfreq คอคาความถเสยงคอคาความถเสยง

timetime ชวงเวลาหนวยชวงเวลาหนวยมลลวนาทมลลวนาท

ไลบราร Sound ส าหรบก าเนดเสยง

Page 50: Robo-Creator Training

#include <atx.h>

void setup()

{

}

void loop()

{

beep();

sleep(1000);

}

ตวอยางท 6

สรางเสยงบปทกๆ 1 วนาท

สงเสยง

Page 51: Robo-Creator Training

#include <atx.h>

void setup()

{

}

void loop()

{

sound(1200,500);

sleep(1000);}

ตวอยางท 7

สรางสญญาณเสยงความถ 1200 Hz ดงนาน 0.5 วนาท โดยเวนหวงทกๆ 1 วนาท

เสยงความถ 1200 Hzดงนาน 0.5 วนาท

Page 52: Robo-Creator Training

ทดสอบใชสวตชบนตวบอรด ATX

SW1SW2

Page 53: Robo-Creator Training

swsw11 ตรวจสอบการตรวจสอบการกดสวตช กดสวตช SWSW11

swsw22 ตรวจสอบการตรวจสอบการกดสวตช กดสวตช SWSW22

รปแบบรปแบบ

char char swsw11(void);(void);

char char swsw22(void);(void);

การคนคา เมอสวตชถกกดจะคนคาเปน 0 แตถาไมถกกดจะคนคาเปน 1

ไลบราร in_out กบฟงกชนตรวจสอบสถานะการกดสวตช

Page 54: Robo-Creator Training

swsw11_press_press :: รอจนกระทงมการกดสวตช รอจนกระทงมการกดสวตช SWSW11

swsw22_press_press :: รอจนกระทงมการกดสวตช รอจนกระทงมการกดสวตช SWSW22

รปแบบรปแบบ

void void swsw11_press(void);_press(void);

void void swsw22_press(void_press(void););

จะเปนการรอทบรรทดนไปจนกวาจะมการกดสวตชจงกระโดดไปท าจะเปนการรอทบรรทดนไปจนกวาจะมการกดสวตชจงกระโดดไปท าบรรทดถดไปบรรทดถดไป

ไลบราร in_out กบฟงกชนรอจนกวากดสวตช

Page 55: Robo-Creator Training

#include <atx.h>

int i=0;

void setup(){

sw1_press();

}

void loop(){

lcd("Count: %d ",i);

sleep(1000);

i++;

}

ตวอยางท 8

ตองกดสวตช SW1 จอ LCD จงคอยเรมนบ

Page 56: Robo-Creator Training

#include <atx.h>

int i=10;

void setup(){}

void loop(){

lcd("Count: %d ",i);

if(sw1()==0){

i++;

sleep(200);

}

if(sw2()==0){

i--;

sleep(200);

}

}

ตวอยางท 9

เพมคาเมอกด SW1 ลดคาเมอกด SW2

Page 57: Robo-Creator Training

ทดสอบใช KNOB (ตวตานทานปรบคาได)

KNOB

Page 58: Robo-Creator Training

รปแบบรปแบบ

unsigned int knob();unsigned int knob();

การคนคา คนคาขอมลจากการหมน 0-1023

ซายสด = 0

ขวาสด = 1023

ไลบราร analog กบฟงกชน knob เพออานคา 0-1023

Page 59: Robo-Creator Training

#include <atx.h>

void setup()

{

}

void loop()

{

lcd("KNOB: %d ",knob());

sleep(100);

}

ตวอยางท 10

น าคาทปรบแสดงผลทหนาจอ LCD

Page 60: Robo-Creator Training

ตวอยางท 11 หมน Knob ดานซายนบลง , ขวานบขน#include <atx.h>

int i=100; // คาเรมตน int k;

void setup(){}

void loop(){

lcd("Count: %d ",i);

k = knob();

if(k>512){

i++;

lcd("#nCount Up ");

}else{

i--;

lcd("#nCount Down ");

}sleep(1000);

}

Page 61: Robo-Creator Training

00--100 100 คา คา i i นบขนนบขน

101101--300300 คา คา i i นบขนเรวสองเทานบขนเรวสองเทา

301301--500500 คา คา i i หยดอยกบทหยดอยกบท

501501--700700 คา คา i i นบลงนบลง

701701--10231023 คา คา i i นบลงนบลงเรวสองเทาเรวสองเทา

Page 62: Robo-Creator Training

#include <atx.h>

int i=100; // คาเรมตน int k;

void setup(){}

void loop(){

k = knob();

lcd("Count: %d #nKnob=%d",i,k);

if(k<100){

i++;

sleep(500);

}

else if(k>100 && k<300){

i++;

sleep(250);

}

else if(k>300 && k<500){

sleep(200);

}

else if (k>500&& k<700){

i--;

sleep(500);

}

else{

i--;

sleep(250);

}

}

Page 63: Robo-Creator Training

ขบมอเตอรไฟตรง

1

2

3

4

5

0

ชองของมอเตอร

Page 64: Robo-Creator Training

ฟงกชน motor

รปแบบ

void motor(char ch,int pow)void motor(char ch,int pow)

โดย

ch ch บอกต าแหนงของมอเตอร ตงแต บอกต าแหนงของมอเตอร ตงแต 00--55

pow pow ใชก าหนดก าลงขบมคา ใชก าหนดก าลงขบมคา --100100 ถง ถง 100100

คาบวกทศทางเดนหนาคาบวกทศทางเดนหนา

คาลบทศทางถอยหลงคาลบทศทางถอยหลง

ไลบราร motor ส าหรบฟงกชนควบคมมอเตอร

Page 65: Robo-Creator Training

รปแบบ

void motor_stop(char ch)

โดย

ch ch บอกต าแหนงของมอเตอร ตงแต บอกต าแหนงของมอเตอร ตงแต 00--5 5 หรอหรอ ALLALL

ใชใช ALL ALL ถาตองการหยดมอเตอรทกตวถาตองการหยดมอเตอรทกตวพรอมกนพรอมกน

ใช ใช ao() ao() เปนตวยอแทน เปนตวยอแทน motor_stop(ALL)motor_stop(ALL) ไดได

ฟงกชน motor_stop() หยดมอเตอร

Page 66: Robo-Creator Training

Motor0

Motor1

Motor3

Motor2

เสยบสายมอเตอร โดยอางองทศทางดงน

หมนลอไปหนา ไฟตดสเขยว หมนลอถอยหนา ไฟตดสแดง

Page 67: Robo-Creator Training

ตวอยางท 12 ทดสอบขบมอเตอรอยางงาย#include <atx.h>void setup() {lcd(“SW1 Press!”);sw1_press();

}void loop() {motor(0,70);motor(1,70);motor(2,70);motor(3,70);sleep(3000);motor_stop(ALL);sleep(2000);

}

หนยนตไปขางหนา 3 วนาทและหยดนง 2 วนาทสลบกน

Page 68: Robo-Creator Training

ตวอยางท 13 เคลอนทไปและกลบ#include <atx.h>void setup(){}void loop() {motor(0,70);motor(1,70);motor(2,70);motor(3,70);sleep(3000);

motor(0,-70);motor(1,-70);motor(2,-70);motor(3,-70);sleep(3000);

}

การเคลอนทไปและกลบ

Page 69: Robo-Creator Training

หลกการขบเคลอนหนยนตเบองตน

และ

การสรางฟงกชนขบเคลอนหนยนต

Page 70: Robo-Creator Training

ฟงกชน forward เคลอนทไปหนา

void FD(unsigned int speed)

{

motor(0,speed);

motor(1,speed);

motor(2,speed);

motor(3,speed);

}

Page 71: Robo-Creator Training

void BK(unsigned int speed)

{

motor(0,-speed);

motor(1,-speed);

motor(2,-speed);

motor(3,-speed);

}

ฟงกชน backward เคลอนทถอยหลง

Page 72: Robo-Creator Training

void SR(unsigned int speed)

{

motor(0,speed);

motor(1,speed);

motor(2,-speed);

motor(3,-speed);

}

ฟงกชน spin_right เลยวขวา

Page 73: Robo-Creator Training

void SL(unsigned int speed)

{

motor(0,-speed);

motor(1,-speed);

motor(2,speed);

motor(3,speed);

}

ฟงกชน spin_left เลยวซาย

Page 74: Robo-Creator Training

ฟงกชนหยดขบเคลอนใหใช ao()

ao();

มอเตอรทง 4 ตวหยดท างานพรอมกน

Motor_stop(ALL);

Page 75: Robo-Creator Training

ทดสอบใหหนยนตเดนวนเปนรปสเหลยม

Page 76: Robo-Creator Training

ทดสอบหนยนตเดนเปนวงกลม

Page 77: Robo-Creator Training

ฟงกชน forward เคลอนทไปหนา แบบ 2 Speed

void FD2(unsigned int speed1,unsigned int speed2)

{

motor(0,speed1);

motor(1,speed1);

motor(2,speed2);

motor(3,speed2);

}

Page 78: Robo-Creator Training

void BK2(unsigned int speed1,unsigned int speed2)

{

motor(0,-speed1);

motor(1,-speed1);

motor(2,-speed2);

motor(3,-speed2);

}

ฟงกชน backward เคลอนทถอยหลง แบบ 2 Speed

Page 79: Robo-Creator Training

ZX-SWITCH สวตชกด

เมอกดอานคาไดเปน “0”เมอไมกดอานคาไดเปน “1”

Page 80: Robo-Creator Training

รปแบบรปแบบ char in(char _bit);char in(char _bit);

โดย _bit_bit ใชใชก าหนดชองทก าหนดชองทตองการตดตอตองการตดตอการคนคา ฟงกชนจะท าการคนฟงกชนจะท าการคนคาสถานะของชอง มคาเปน คาสถานะของชอง มคาเปน 0 0 หรอ หรอ 1 1 เทานนเทานน

ฟงกชน in ส าหรบการอานคาสวตช (ดจตอล)

Page 81: Robo-Creator Training

ตวอยางท 14 กดสวตชควบคมมอเตอร

ตอสวตชเขาชอง 40

Page 82: Robo-Creator Training

ตวอยางท 14 กดสวตชควบคมมอเตอร

#include <atx.h>

void setup(){}

void loop(){

if (in(40)==0){

SL(60);

}

else{

ao();

}

}

Page 83: Robo-Creator Training

ตอสวตชเขากบชอง 40 และ 41

Page 84: Robo-Creator Training

ตวอยางท 15 รถบงคบจากสวตช 2 ตว#include <atx.h>

void setup(){}

void loop(){

if(in(40)==0&&in(41)==0){

FD(60);

}

else if (in(40)==0){

SL(60);

}

else if(in(41)==0){SR(60);

}

else {

ao();

}

}

หมายเหต ตองแทรกฟงกชนขบมอเตอรไวกอนหนาน

Page 85: Robo-Creator Training

หลบหลกสงกดขวางจากการชนสวตช

ตอสวตชเขาทดานหนาของหนยนตในต าแหนงดงรป

Page 86: Robo-Creator Training

โมดล GP2D120

ท างานทไฟเลยง 5 โวลตวดระยะทางใชวงตงแต 4 ถง 32 เซนตเมตร

Page 87: Robo-Creator Training

โมดล GP2D120

Page 88: Robo-Creator Training

ไลบราร gp2d120_lib

ฟงกชน getdist : อานคาระยะทางจาก GP2D120 ซง 4 ถง 32 เซนตเมตร

รปแบบ unsigned int getdist(char adc_ch)

โดย adc_ch ใชก าหนดขาพอรต 0 ถง 6 จาก ADC0 ถง ADC6 ตามล าดบ การคนคา คนคาขอมลระยะทางในหนวยเซนตเมตร

Page 89: Robo-Creator Training

ตอ GP2D120 เขาชอง ADC3

Page 90: Robo-Creator Training

ตวอยางท 16 อานคาจาก GP2D120 โชวทหนาจอ LCD

#include <atx.h>

#include <gp2d120_lib.h>

unsigned int dist;

void setup(){}

void loop(){

dist = getdist(3);

if(dist>=4 && dist<=32){

lcd("Distance: %d cm ",dist);

}

else{

lcd("Out of Range!");

}

sleep(100);

}

Page 91: Robo-Creator Training

หนยนตหลบหลกสงกดขวางดวย GP2D120

ตดตงเซนเซอรดานหนาหนยนต

Page 92: Robo-Creator Training

ตวอยางท 17 หนยนตหลบหลกสงกดขวางดวย GP2D120

#include <atx.h>

#include <gp2d120_lib.h>

unsigned int dist;

void setup(){

lcd("SW1 Press!");sw1_press();

}

void loop(){

dist = getdist(3);

if(dist>=4 && dist<15){

BK(80);sleep(500);

SL(80);sleep(500);

}

else {

FD(80);

}

}

Page 93: Robo-Creator Training

แผงวงจรตรวจจบการสะทอน ZX-03R

Page 94: Robo-Creator Training

ผลการสะทอนแสง

Page 95: Robo-Creator Training

ไลบราร analog

ฟงกชน analog ส าหรบอานคาจากเซนเซอรอะนาลอก

รปแบบ unsigned char analog(unsigned char channel);

โดย channel ใชก าหนดขาพอรต 0 ถง 6 จาก ADC0 ถง ADC6 การคนคา คนคาขอมลทตงแต 0 ถง 1023 (คาความละเอยด 10 บต)

Page 96: Robo-Creator Training

ตดตงเซนเซอรดานลางตวหนยนต ดงรป

Page 97: Robo-Creator Training

ประมาณ 800-1000 ประมาณ 100-200

ทดสอบอานคาพนผวสขาวและด า

Page 98: Robo-Creator Training

สด าอานไดประมาณ 200 สขาวอานไดประมาณ 800 ดงนนคาเฉลยในการเปรยบเทยบ(200+800)/2 = 500

น าคาทไดมาหาคากงกลาง

Page 99: Robo-Creator Training

1 if(L ขาว&& R ขาว){FD();

}

L R

เซนเซอรสองตวครอมอยบนเสน

Page 100: Robo-Creator Training

2 if(L ด า&& R ขาว){SL();

}

L

R

เซนเซอรซายพบเสน

Page 101: Robo-Creator Training

3 if(L ขาว&& R ด า){SR();

}

เซนเซอรขวาพบเสน

Page 102: Robo-Creator Training

4 if(L ด า&& R ด า){FD();

}

L R

เซนเซอรสองตวเจอสด า

Page 103: Robo-Creator Training

สนามรปแบบท 1

Page 104: Robo-Creator Training

ตวอยางท 18 เคลอนทตามเสนอยางงายทสด

#include <atx.h>

int L,R;

void setup(){

lcd("Press Start"); sw1_press();

}

void loop()

{

L=analog(4);R=analog(6);

if(L>500&&R>500){

FD(60);

}

else if(L<500){

SL(60);

}

else if(R<500){

SR(60);

}

}

Page 105: Robo-Creator Training

สนามรปแบบท 2 เพมเสนตด (ใหเดนตรง)

Page 106: Robo-Creator Training

ตวอยางท 19 เจอเสนตดสงเสยงออกล าโพง#include <atx.h>

int L,R;

void setup(){

lcd("Press Start"); sw1_press();

}

void loop()

{

L=analog(4);R=analog(6);

if (L<500&&R<500){

FD(60);

sound(1200,500);

}

else if(L>500&&R>500){FD(60);

}

else if(L<500){

SL(60);

}

else if(R<500){

SR(60);

}

}

Page 107: Robo-Creator Training

สนามรปแบบท 3 เจอเสนตดเลยวขวา

Page 108: Robo-Creator Training

สรางฟงกชน L90() เพอการเลยวทแมนย า

ตรวจพบทางแยก เดนเลยไปกอน หมนตวจนเซนเซอรซายเจอเสน

Page 109: Robo-Creator Training

สรางฟงกชน L90() เพอการเลยวทแมนย า

หมนตอจนหลดเสนด า

หลดเสนด า เดนตรงตอไป

Page 110: Robo-Creator Training

ตวอยางท 20 ฟงกชนเลยวซาย 90 องศา

void L90(){

FD(60);

sound(1500,100);

while(analog(4)>500){

SL(60);

}

while(analog(4)<500){

SL(60);

}

}

Page 111: Robo-Creator Training

ตวอยางท 21 ฟงกชนเลยวขวา 90 องศา

void R90(){

FD(60);

sound(1500,100);

while(analog(6)>500){

SR(60);

}

while(analog(6)<500){

SR(60);

}

}

Page 112: Robo-Creator Training

สนามรปแบบท 4 แยกท 3 เลยวขวา

1

23

45

6

Page 113: Robo-Creator Training

int L,R,x=0;

void R90(){ FD(60); sound(1500,100);

while(analog(1)>500) { SR(60); } while(analog(1)<500) { SR(60); }}void L90(){ FD(60); sound(1500,100);

while(analog(0)>500) { SL(60); } while(analog(0)<500) { SL(60); }}void setup(){lcd("Press Start");sw1_press();

}void loop(){L=analog(0); R=analog(1);

if (L<500&&R<500){if(x==6) { x=0; }x++;

if (x==3) { R90(); }else { L90(); }

}else if(L>500&&R>500) { FD(60); }else if(L<500) { SL(60); sleep(20); }else if(R<500) { SR(60); sleep(20); }

ตวอยางท 22 แยกท 3 เลยวขวา