116
àÃÕ¹ÃÙáÅÐÊÃÒ§Ëع¹µÍѵâ¹ÁÑµÔ ¡ÑºäÁâ¤Ã¤Í¹â·ÃÅàÅÍà PIC ¡ÄÉ´Ò ã¨àÂç¹ ªÑÂÇѲ¹ ÅÔéÁ¾Ã¨ÔµÃÇÔäÅ (C) Innovative Experiment Co.,Ltd.

Robo-PICA Thai Manual

Embed Size (px)

DESCRIPTION

คู่มือการใช้งานหุ่นยนต์ Robo-PICA

Citation preview

Page 1: Robo-PICA Thai Manual

1

(C) Innovative Experiment Co.,Ltd.

Page 2: Robo-PICA Thai Manual

2

!"#$%&%''$%($ )*+,-&&.&." ' (/ 01

'' ! 2$#

!"# $% & '()( &%&%$*+,

-. &!"/(%0%)%$"1%20%)%$%3 %$

45$ %! %0&&66%$ 7&%&%$(! %!0 !&%3 %$28!

9"#!%03:; 25<$( %)%$%3 %$

%(="!1%8 !"# $% & &%&%$*+,>?!@!4A ( ;# %#!%( 31%" 85$.8 %!(2 !1%'3!#%(33$;3#"%%(B' %8"!1%#@0 %& C%)3% $ B(( 2;(0% #(;(3((1%%( (33$;3#%%@!D30@! '(33$@! #%

!"#""$ %&'(

(B(33$B"#&(&($%3$$4444EF46'GE-.''!!' !!3DG-HG&3$5678986855:69& 5678986855;

Page 3: Robo-PICA Thai Manual

3

!!

!"##$%&%&%' (

I!%@!B"3:1%8 %!JK! "1% LMNOPPOPQRSTOM.' .!#0;8 ! !( !#'@;#!(UV" @!8 .!#!3:( (3:%5$1% #"$'%!1%8 #W"# $X>YZNZT[\][TA

<=>=6)*+? I0(8 !"# $% & '()( &%&%$ *+,(#!"31%B%!B&%&%$ *+, !I"# $% & .8! 31%B0 %% & %#!!# &(0(;!!^0(&&%&%$ #%3%$ _Q`'%!%3 %$B" .0 !%3 %$( (@!1%! @!& a& a^;!! BI %!0 8 ##I 6!B0 8 (% ( %%%#!!#(6!B0 31@; 31%(%! !"# $.""!('!( &(# %!;I31% !"#$#"%& '(%)!# *+,-./0 1.2.345567/3.2/478 6!0(& %&%C(&(8!%C((" ( 31%" 8 .B( %#! #%1%!85$(#I(

<=>=6)*+?#IB %"!B"("1%8 0 !&%&%$*+,;#0(%"# $% & 1%!0(( ( %5$1% #!b %#!. ##I0(6%C $$ %#!&%8#6(%"!1%8#1%'&2,B"&%&%$*+,"!1% %#! !"# $B"(%1%1@%!

!%!"!;8 ( 1% $@1%!"#!8 !"# $;8 3(%@!("( " 5$#%#!8 #!;" ( 0 =25 "35$;#B1@%"cd ' #31% 'Ke"6!!"#@('@#( ";8 '(fB! #!0#!'%!"# $%1%!23( %" !#( "1%(3!!'%!"# $(!"1%! %(1% !"#@I%"!" '%!;8 %!3;0e" %#! ( %5$!

A!"#B!I 1%8 ! $&&;8 @%=f(

(9$:;

Page 4: Robo-PICA Thai Manual

4

"&((/: 4 #C$".@ !"#

D$34!&%.g

0@#'%!"# $YZNZ7*+,h

- 1%!1%0 !"# $

46%C $$B"3:&"# $YZNZ7*+,h

&((/7 !"#<=>=6)*+?F

&)<="#$>4?4@ABCD

&((/0 &$'&'"!E$ !"#<=>=6)*+?

E%.F+2/$($&(4 -F

45 !'%!%$(

4-B!'%!!# #!b'%!%$(

44%('%!ee50 0(YZNZ7*+,h

49'@ %3:&B""# $YZNZ7*+,h

4F %#!3:&2,B""# $YZNZ7*+,h( M[]iZ,+jL

&)E=$>FG@HII

&((/9 E&'2/$!"#<=>=6)*+?F49!'% %$'%!"# $YZNZ7*+,h

9-!1%'%!"# $YZNZ7*+,h

&)J=%)&)!"#$>4?4@ABCD

94)'%!% %$

99*kl

&)K=#L!"#$>4?4@ABCD

9F !C$MZTZim

&)M="#$>4?4@ABCD%)&) &) "

Page 5: Robo-PICA Thai Manual

5

&((/; <=>=6)*+?&&&&$$g4

F %$' %!B!'%!&(8hj,'%!*+,Hnoog

&)N=

&((/G <=>=6)*+?&&/ E &&#Ho

H5 '%!p*-j-G&(8(!( !%C(

H-"B!'%!&(8(!( !%C(

&)I='(OAEP<EQ

&)H="#$>4?4@ABCD""&)&!

&((/8 !"#<=>=6)*+?'2/$(/oq

g"Be1%;!! %!%C(

&)R =

&)<Q="#$>4?4@ABCD%)&)S

&)<<="#$>4?4@ABCD%)&)

&((/I <=>=6)*+?&'&'" $3G4

o& %&LY79

o-;!!&(8!%C(4o]rstuv7+Yl

o48 % %$ $

o9% %$ $*+,Hnoog' %!"# $YZNZ7*+,h

&)<E=$ $

oF1%' %8%%6!&

oH &#%% %$ $31%##& %&

&)<J=!&

&)<K="#)T>4?4@ABCD#&

"

Page 6: Robo-PICA Thai Manual

6

Page 7: Robo-PICA Thai Manual

7

!"#$%&'()*

+,&#-.(

! !" #$%& '(')"!$" %*( ( &+,-.!'! /0102+,-3(%4 "567

89 #$%&/0102+,-3

:9 ! !" #$%&

794. ;&4 &!" <'=(5 4" $" #$%&

'7"$#'"'

!"#$%&

'()"*+)),+*',-+./)012301301301 301. 301/40/)5640/7,#)033 3. / 8,6(6)6,9+010!,(!)48,6(

'()"*++740:4330:-/,:"6,)/,'(;+74!,(,

!'()"*+!<-4=4/ >)+?!)4,/ #@4-7,#)>)3!4*3'A4!,(!--03 3.

Page 8: Robo-PICA Thai Manual

8

ZX-03!<*B*BB")(4!#4C1.ZX-IRM

" #$%&'

GP2D120

8,*(+(*+!#4CD?0E

ER-4

()* "

+) )* ,- ./0 1234

ZX-POTH!<*B*44'";-F1

RBX-877V2.0,56 )5)71289:$$;

(<==>

./0

)( +()

+)5 ? )"5 #@(""'G#"#)*#48*HI:?@4F' !4(4JKL E*#!7M).7NOP*-7

!"

#"$% &$'%()("")

Page 9: Robo-PICA Thai Manual

9

*+,-"."/01/234"-"&#0#&#$%&/0102+,-3!" #' $" %*(

( & +,-8>?@@A'' %(5 4" $*%BC4 .BC"(%. ;&4 &" *< &%4BC-.!") <!- *< &"'

# '#$%&/0102+,-3(5 4" BC-56#'"(%. ;&4 &!:$ 5+,-"6789 !"#$ %&' <! *;&"$ 9DEF # '%#%(5 4" *( ( &#$%&/0102+,-34+,-"87:;<=9>9?667@>##()( *$ +%,-.//0 '56 $5" G&#'"!" $" #$%&/0102+,-3H &(5 4" *( ( &

*67896=7AB9C"DE

*)&F 0$ ) 6789

# '$/0102+,-3 "$. ;&4 &<'=(5 4" *( ( &+,-%BC-!! 6789 6789GAB8:9@78? C6789G HIII6789BJ6E9 $IJKEL0MENOP0QR "' *;&#'" *<&# 4556 #' ! J*;&"$9DEFR *":"( &.!"<%< # '" <'=(5 4" # '$" #$%& '(')"*56 %

# 'H! LPSN0-4 " $ G& '!. *!*.& HH1223455666789:;<=7><8

LPSN0-* $ ! <! %"" <'=(5 4" *"%'45(5 4" BC-# -T0LUPVEN 54" !"'*"'3WX,- Y* '" "' $5" G&B% ""< '' %(5 4" !%" <'=(5 4"

H<'=(5 4" '<%" *( ( &* .!565 (%&"" G! $I'<! %5Z "'*#%(5 4" %"" "'LPSN0- #*;&H'<I& 9DEF%" "<%5$[%#' " * %"4*;& 9DEF *5"' ! (5 4" *( ( & +,- Y*$" $

Page 10: Robo-PICA Thai Manual

10

*"5/ 6789J6=7AB9"D

" *.!*;&' LPSN0- $I:

89"4H. !'$/0102+,-3

:9&(# &'!#$! !\\\9LPSN0E9T0L

"'" '# "'(5 4" 5 %$"& (&

#' I%]<!" <'=(5 4" <! $#$%&'# '" %(5 4" 54'! 4ILPSN0- *"*;& ! &(#*"\\\9LPSN0E9T0L# " " %(5 4" BC-# '*( ( &+,-%LPSN0-.!<<&4%"#"4'$ /0102+,-34

!"#"$%&'

@)+

AB*(<C

-,D- E )5F(< GGH IJ E + ) )*

+) )* *(<K

Page 11: Robo-PICA Thai Manual

11

*87:;<9>9?667@>KL:I?9B56. ;&4 &# '(5 4" *( ( &+,-4KO+,-44;!

"' ! (5 4" +,-SP^:_` PTN0TDPU# ! (5 4" !!" "'# '$/0102+,-3* % &(5 4" +,-SP^:_`4ab`!<'=(% C' (; )"< &"'" !H%4< I G PTN0TDPU(%" (5 4" #%(5 4" *( ( &+,-564(5 4" H4c" ,-d:

( )*+,-(./ +0120 34-516 78 9:#;))*&#$&<* 9=*)&&)>;+?@AAB>C=*)&&)>; <D;EF+GH $;)*=*)&&)>;

-F

)E< 2LMNOPQRSTOLM

F *E

@-5 K *E

6 *(< + UVWX*(< Y+5K

@-5 K *E

- -5 )56E

- -5 )56E((

Page 12: Robo-PICA Thai Manual

12

*"5/ +,-"

*5/ M-N+'5'"&'%&/05OPP

. ;&4 &!"'+e2:ff +,-SP^:_`+N0gNhLLPQgX0i^\hNE(% &'#'<'=" PTN0O0i^9Wb_''" '(5 4" <! H " ' PTN0O0i^9Wb_?NhLE\0NS%"

CE"Q''%#&1 "R&&'"5/ <7J9KL:SG;T9?6BI98&

'`PTN0O0i^9Wb_?NhLE\0NS(% "'"(; &+,-SP^:XE^jUM:9f8K0^Wb_K0^QE^iF4H. '"!*;&K0^QE^iF9EFE" ' #!"'" '(5 4" +,-SP^:_`+N0gNhLLPQgX0i^\hNE(% "*;&+,-SP^:XE^jU9LOP

CE"Q''%#&1 "&'"5/ <7J9KL:SG;T9?6BI98-)

'(5 4" +,-SP^:_`+N0gNhLLPQgX0i^\hNE(%*5!(; &+,-SP^ :XE^jUM:9f84H. '"!*;&+,-SP^:XE^jU9LOP

*5/ MR,'%535M 0R+ <7J9JU7=

*5%'*.& `PTN0TDPU!\\\9LPTN0TDPU9T0L "#' dEMEV0ULEQ^^00VO+PTSP^:+N0gNhLLENkdE1jggEN

CE"Q''%#&1 "R&&'"5/ <7J9KL:SG;T9?6BI98&

#&(#*;&"#' +,-SP^:l:9f8,QO^hVV\P^D9Wb_?NhLE\0NS**;&+,-SP^:XE^jUM:9f8K0^Wb_9mPUJ' &' 5!%45 $!" 5 '5 $$R4" %%*;&!&(# ")*(; & +,-SP^ :XE^jUM:9f8K0^Wb_"'*5(; &+,-SP^:XE^jUM:9f8K0^Wb_K0^QE^iF "'"!*;&K0^QE^iF9EFE" ' #!"'" '(5 4" +PTSPP^:_`+N0gNhLLPQgX0i^\hNE(%*54'"!*;& +,-SP^:XE^jU9LOP

CE"Q''%#&1 "&'"5/ <7J9KL:SG;T9?6BI98-)

#&(#*;&"#' +,-SP^:l:9f8,QO^hVV**;&+,-SP^:XE^jUM:9f89mPUJ' &' 5!%45 $!" 5 '5 $$R4" %%*;&!&(#")*(; &+,-SP^:XE^jUM:9f8"'*5(; & "'"!*;&+,-SP^:XE^jU9LOP<! !'(5 4"

Page 13: Robo-PICA Thai Manual

13

*/"5/ 34"-"&

J8R'"*;&'+,-SP^:XE^jU9LOP5 "n# !" '"5$[WEF^

J:R5 "n#44#(; &!" '#"* " 5!%454#(; &#"5$[WEF^ <! H' *5

J7R5 "n#4%%'" '(5 4" "5$[WEF^ <! "

Page 14: Robo-PICA Thai Manual

14

JoR#4I&. ;&4 &5 "n",hgNEE<! '"'"5$[WEF^

JpR#4" '(5 4" 5 "n " '!" ' ) G&

#'"!' ! <'=(5 4" ) G&'#4 *556" #$%&/0102+,-34" <'=(5 4" BC-<! " 4H *( ( &+,-8>?@@A4$" #$%&/0102+,-3""

Page 15: Robo-PICA Thai Manual

15

!" #$%$& '

!" #$%&'()*)"%*+"!))!&&,-.//0% ")1 " #)#)( 23!% +

$ )&4(%*56$ " %7/8,3*9:%;&<:%& =

)*)"%*+"!))!&& ,-.//0 !;"+%2 *%*%!;"(:4(" )"=#*>=?@A

#% ;>*3*33 <; #5%=4(*33

#% !"%B&* %<<%*; #5%=4(*33 * C;&<&& #(%$*;+" ">

;>*3 ; #5%=4()*)"3<<+&

"!"%B&DE$%,- * F9 %;&<DGE ; %>&

"*3$ H!*"I:3J "C &(<$ )&4(;&< "C#% &+)&4(+*=#("#"+%

"*3$ H!*"I:

Page 16: Robo-PICA Thai Manual

16

!"!#$%&

(!) #$%$& '

!"#$

%&'( )#

* +,-.#.

%&'( &#

/0 #.

* +.#

#.

( #1

( 2- + &34#

( 5 &#

( 2- + &+#

6+! ./#

&$5( ! #7

&.5( ! # 8")! %#.

8")! 29#.

8")! !+#$

/.#:7;<.#=:$;-.#$:$>;

/.#$>#$ !.#$$

/*?&2 &#

8*@A +5 *! #++B!BB -6( + "@*#

++B,/ + "@*#$

,/CDE$

Page 17: Robo-PICA Thai Manual

17

(

!"#$$%&''()*)+, $&!-./01 &'!&-+#$-&$2%3$

4 !' !$ &!- )$+ 4('%(5!

.6$* 7 $+8&'-+&!-./0-()*' %+, 15()*15&!-./0 8.7 $)'*' #()*-()* 47 $!'-+

(6?F?2G ( &'(& /B(+

/.#$

%&'( &

!H+/&' /.#$- !.

(+

(

( 5 &

/*?&2 &

/.#$*(I(&+I&' /

(+

/.#$

Page 18: Robo-PICA Thai Manual

18

97 $()*' % $&!-./01 8 $.4'!&-+

: " 7 !5'&'()*!&-+!-78'&-$3$

;"5!# '8'' )*()*' 6$* !-./0()*-&'2 8"57 %*!# '8'' )*

/.#$

(

(+

8")! %

!"#

$

%&#'## "

%()*+,(-

* ,-*?F&.

%&'( )

*(I(

!.

!.

(

!.

!.

!.

%&'( &

(+

Page 19: Robo-PICA Thai Manual

19

<()*'&'("5!#' 8'' )*#!-./0(.- $3+&-()*$3$7 !515()*:3+!# '8'' )*.0()5(5! #(()*$)518&"5$1$11!!8("3+

=66$*-# '8 !)()*7 $&'-()*4 8;-+ +86! !)$ %*&'15 "&' 3+ $# '8 !()* . !)()*7 !5$ +86!&'>!$ $&'$

( ( 2- + &+

,-

(

( 2- + &34( (

,-

/6?F

/6?F1

* ,-*?F&.

/.#$

(+

6+! ./

%&'( )

Page 20: Robo-PICA Thai Manual

20

?+8 !1$4 ! & 8!+8$!.0 !!04 !!18 ! 8$88$

0!()*+8 $!$ ! 8 +86!((5!

Page 21: Robo-PICA Thai Manual

21

)*1$91&88@ABCD=<<15ABCD=<<"5 ' #"5&'()*)!$"+E+E-)$ 15&!-%'.$#6'

."5"57()*-&'* ABCD=<<(!$"+E+E'%' #6'AFGFDHIJ#&!-./0.%*&+K()*$1#- !"

!*! ?FJJ7(

/0

/0

4$1#- !"LCDIAM"5+N$!-./: 8."5!)+ '*"5+N

8")! %

/.#$

8")! !+

8")! 29 /.#$>

& 44KLMN.JJ

Page 22: Robo-PICA Thai Manual

22

9$1#- !"LCDIAM()*"5"5+N 8"5$15()*!)"57&5()* 4+K"5$1LCDIAM 'AFGFDHIJ15!)!!>>OLCDIAM()*1AB0PIQR

: !)!1 #$()*1MD4!)$ 82()*1MD!)3S!@+ )*+ 3'6 %*()*'3@-

*! O$

*! O

Page 23: Robo-PICA Thai Manual

23

;"51$11!8(!"2*&&$11!()*''#"5+ (.-&"5%*$1$11!8(!"(5!&'&! !".$!-./0 8."5(5!-+

<#- $88(TH4U40"5"57& VO8!&W#&!-./0 8.

=()*'#6'!-./0 8.3$3&'15#6!TH4U40()*!3$&5()*<!)3+8'$'$!-6$6 $!-&'

* ?&2&5 +8") ! %-+ /

CDE$

5 /.#$- !.

8")! %

++B!BB + -6( "@*

* +.

!.

Page 24: Robo-PICA Thai Manual

24

?!!>>O#- TH4U40 A4 8!!>>O$1$11!!8("XLCD0.Y2()*A0!$$A

P.5P.Q(&

CDE$

401S!!>>O(5'&')B-I(&!RSRDTUJ6?F( H*5?&,2*0F 6 6H+! I2

PTO

Page 25: Robo-PICA Thai Manual

25

!""#$%&'()**+,+-.-.()+/++'0',121/+341,56.',6.*(27*+),-1()821,(9+:)2';(-.<=

!"# "$%&' %$()*!+,+-./0

!"#$% &'(') *

%+,- ./!#0

Page 26: Robo-PICA Thai Manual

26

!"#$%&

"' ()

$*&#+"

,-# ./%

11(# 1"'2 !"# "$%&' %$()*!+,+-./0

0""#

-

>5**+,+ =?@!!"'A*+*(2BC,,6.*(27/2D 4$-0',E$5BE21CF0',G*,0,+:H%!IJ?#<'-+*B,(K*G1'0',1--3L421/+'0B0**+,+*;+34=?''M$'2-E1+' 1',56.'(N-.-16.10;+22+))'1 $-CB,B2CC+2+)CB)+O52,-.H>5'A2'++2+)2()0$%<!P?%$QCA

Page 27: Robo-PICA Thai Manual

27

1#31 4! !"# "$%&' %$()*!+,+-./0

!

!

"#

$

"#

%

%

%

%

&

"

"

'('

' ('

&

!

!

)$

"!#

!

"!#

!

)!$

!

"!#

)!$

&

*"

&

)!$

!

)!$

+

+

,

"#

"#

"#!

!#

#

#

#

#

!

$

$

"

"

)!$

)!$

&

&

-#

)!$

!

"

! *

)!$

)$

$

.#'

,+

! !

!

$

&

!

!!

"

+

%#

!

)!$

'

"

!

/µ0!$

µ01!$

/µ01!$

/µ01!$

*

#

/

#

2

!/$

3

"

45.#

!

#!

6

0 2

!/$

-

)!$

)$

µ0$

µ0$

µ0/$

/µ0!$

&

"

4#

"!

4*(

&

&

)$

Page 28: Robo-PICA Thai Manual

28

'>1'R6**+,+ =?@!!"-0BCB,B>>5IJ<Q07>**+,+'()(*;+8,5*;+ ST,B6.>1I(',:, *;+2(+1'RRN)+,(9CC+U4VGJ. =?@!!",-4+),-=&CIJ=H5''A**+,+,B-',-J'(NCB,B,B6.1,(9*-,GC,*G,,$&TWX,CI-.1'RRNYZ,B6.>**+,+-.,:IJQ+1'.C-

!"

!""2'E,+-ACB,(92'EE[)21H%!IJ ?# U,C\?#V*-C'A))I0H2+)1'E,+-A2,C++:$0',+:,6.>5:,B-2,-.0H+>))I

Page 29: Robo-PICA Thai Manual

29

7E1C55C.2('0JA U]^_`a`V ,B6.)'2'E,+-A'A-. \Q# 'A-A,6.,6.,C.E>2 )'02'-.2,-.)8++>5E1C55C.2('0JA-A>2'E,+-A''M)';-. \Q#; )'2'02,-.)++.C8 U()N=%Q#VJ1I'M)'2'

1'>N--.2'2,-.+. H#'2'2,-.)2+)2,6-.3L41-,+62bb%/;>5,(+-.2,-.>'-

$*&#1 ,

#$%-'<1()

!""-*;+34=?''M$',56.'**+,+*04HIJ4"0 =?@!!",0'04HIJ4"0*;+34 ,B6.,0-0;+21/+2+)1'.c04<'0L ,B6.([1'RRNB'+11',:,,C+0*;+342+)04$,0'0d0*;+34,B6.,+6,0-0;+61'.('*;+34-'('#==&eΩ-.(',0021/+I>,(ZE1+'0*;+34>'f,(-.;060*;+34U(C)2+VI(Z,B6.()'B+'>(+'f,(-A

Page 30: Robo-PICA Thai Manual

30

>5211I),6A !""*3L4 =,0'0B<0**+,+ =?@!!"

>521/+1'RRN,1-*+*B,(K*G,0-.0B&I-.,*G2G0+*B,(K*G-A;)=IJ<eWX

&' '''1'RRNCB60'(N,B71I)*/0&

c&IJ<cQcL&IJL$2+)<IJ"0B,+-A1I+;(2'-A

()*+,-*.,/0*.-*.1#2*3,/0*3

U=%=V '2 ,B6.'1'RRNCB2)+1,0(()+/+'2(+1'RRN)+,(9CC+0=&C7>**+,+ =?@!!"

-2 2#3#2

Page 31: Robo-PICA Thai Manual

31

U=%$V '$ ,B6.'1'RRN+Cg&h2+)g=h(N7U=%<V'$ ,B6.11'RRN+Cg&h2+)g=h('(N7U=%HV ' 41'2-A)',iB)0B&jkb

,'A ,6.,:,,C+1C,'(72+)-,(+-.2(+1I)-.+C,C0JA-.0B&-AG-B-;))*(-.*(2CC,'('-

!"#"$%&'$()"*# +$,#*$-./$0$1"&$'

()*5#2*5&

U$%=V '$ ,B6.'1'RRN+Cg&h2+)g=h(N7U$%$V'$ ,B6.11'RRN+Cg&h2+)g=h('(N7U$%<V678295*><,(901'RRNYZ

Ud3V2+)0H ,(900;+ Ud4V1',56.'(N7/)'1$ '0(N)'1 $2T d&<*;+,0:CFC,+:C1c4d=<&"G-l,+YZCU-++:Vc$HPPG-0;+--Bcm L3n=?0'-,+=?5c4d=?$=G-'N7;CcdWb==*;+'56A1'B'o,(9

%45673# !"2809"

:;<=*$>?@A#2-")#@A#+ ,-#./%

Page 32: Robo-PICA Thai Manual

32

()*5:#2*5;

U<%=V '$ ,B6.'1'RRN+Cg&h2+)g=h(N7U<%$V'$ ,B6.11'RRN+Cg&h2+)g=h('(N7U<%<V<78=>*0B-A,56.'*;+16.10;+

6pdb7> =?@!!"''AJ1I(>5,56.'(N7'AB0BC, ,B6.16.10;+)'2+)'*0? ,(90'0;+ UP4V2+)0" ,(9010;+ UbP4V >N--.,56.'B0BC,)0'A1-A/2(+)'1'RRNG-G-E,,T $<$ ,(9'A'1I0B'A1-A'(N16.10;+21Cm 3pLbbW ,B6.'10;+'BC,6*F'B,+6.-./)+;;oc*;+ __2+) __ B6.'10;+/)mqLLcm dL#=?0',G*,=?5cm ="l,+YZC2cm =O''2+),++',1-2cm HH1C5,CGHPH,(9

:;<B$C*DEEDF# !" 2G!"G )+ "!0!H :;<6*=IE@A2-

#@A#

;BJJ<5=E

:;<KK##KLK#

Page 33: Robo-PICA Thai Manual

33

1"

0',E0 !"">5G-,3$O<41I0',E$5*,(95T=2+)T$*0',5T='04&'4=2+),:,,C+0$>0N)-.5T$'0B='$2+),:,,C+0B=-.,B00','A15-3L4$1-21/+0, U1-,0-2E0'A2+)1-22+'0'AV

1'0,:,,C+'A>5,:,,C+6,(Z(Z00',2+)'2+'>5,:>0,*([1'RRN ST,0-.0,:,,C+-A2';(

Page 34: Robo-PICA Thai Manual

34

:?

0HcQ2+)Q>51'0',G*,*E,+-A0,G*,*2,-.,B6.>-)21B-.>50',,5,-',E1'.**+,+>5([1'RRNB'+1,B6.02,G*,

; 6

,B6.> !"" ,(9-.1;NB''A)-*;+34,B6.21082+'0;+/;>5:))/1C5 *-1C5C(+'$5GJ.,0'0BH2+)&0**+,+ =?@!!"1'0&'A),(920,-'0BCBC,'( J>1C5-.0&1I>511'RRNC,'(,6.1C5

!""'-1C5C(+'-J.''.61C5LdLbGJ.,0'0L<jT3*(C)>5,(90-,G0**+,+ 2/;>51IEZ>,B6.>50-A,(90CBCC+*0-A)+,(90BL<2

#=*6*D#M#=*3

Page 35: Robo-PICA Thai Manual

35

@#A95BC$784# !

>>5 !"")-B'r*(2BC, ,B6.>E+/++'Bo1+ %s_P'AE+ %s_P (*(2+>*(20**+,+ =?@!!" >5tut ,-1'*(2B**(2'A'BC,*,0'Bpd 2+>5GE2 ev^$ wtxwyzzvx>*(20;++>**+,+ =?@!!"

*C)*(2' !""'A))/2D4$';(

-

4#

! "

#"

4#

Page 36: Robo-PICA Thai Manual

36

!2D!$!EED8F6=F6$*GHGIJ95.

!95B

>5>,56.*(2',([>-.-A6 !""-'11'RRN'-A

!"#$%&#$%& '()"*+,-./00

*1

#$%&23*+,-./00

!KLM..I@

>5,56.) !""'2/'2+)2/(N8,(912B<,1!CA(+1'A1C'A,:,2|db<0',-)))0$C++C,-'0'-A

Page 37: Robo-PICA Thai Manual

37

!"# !"#!"$%&

!!'()*+,,%& $-.'(/0/1234&5 678#-9:'#'5.#8;#"<=>?@/2AB%&12?>C;DE1@/F@G==>HF I $5J78

!"#

!"#$%&'

()*

+,-./01233 4

5*6*789:4./012336

;%"!<=

>?@A5,-B

CD)4E

F)*

- F)*

>?-@A

>?@A

6*F**4)GH6*I*789:

4

Page 38: Robo-PICA Thai Manual

38

KLM5.!"N#5'8#.=>?@/2AB

K;M"7%'#4 !8N%7#.O'-P

KMI88N% 8878N%%8#8;"

KQM %4"7%'%&7-8N%%8#=>?@/2AB4& 87:%'%%R' $%STUV9W5J5"<

KXM5Y12?>C;DE1@/F@G==>HFZ/[C\G@U

K]M5 <- . __O2A;& #-!'!()*+,,!'"#!"$ % $-.'(/0/123-42A;

K,M#' %7.(/0/123%8##4 !%#-I88 <7-I87- 8%!787%8#"7%' K;M"

$%& '(" !"#)*%+,-."!/0

KLM 5Y=>?@/2AB4&a 8- %

!"

Page 39: Robo-PICA Thai Manual

39

K;M 8546' -.751@/bUcC5%<dU\1@/bUcCSSS

4&a 8-dU\1@/bUcCW.4&8 .%&5.-P

K;SLM .123456+2 ^<546'9W4& 8:%5' <W8 <7:%'9' "84&5J <5.#!1@/bUcC HG=U ^<#-

K;S;M .1234 647 5J -:%5' !56! I$e)@/\fU 5<5%< -8784#.- 5J

Page 40: Robo-PICA Thai Manual

40

K;SM/283.,94,: 5J< !&!$.%&5.5.#!546' 8W4&&!$ <7-678 -8"##-

K;SQM/2;,32 5J - ! 5!'7""%5%'5%< 8 5<47""%5%' 12-%&5!'"$O !N7-5 <4W85%<5!'7""%5%' 12 8I8 !!'()*+,,%& $-.'(/0/123 5%< 87""%5%'5!'12L]g++,4W 5J

K;SXM"<3- 8 "-"#I __OhY 8!7""%5%'12.!!'()*+,,^859N5955';iEjk4W "#I __OhY5J=>=======

K;S]M /2;,32?<6@8 5J - ! "-"$O !Nl'#' <":Y5 Kc/H[>Fm@GC>/HM7""%5%' 12 5!'5%< 84& 8"-n9W 78-.P5."%N$eAU[GmoC9W "$O !N %P5.#"<

K;S]SLMABCDB"5%<^N#45N __OhY5J!!jZ <j>FTZpUUqrfc>ooGC/@

K;S]S;ME/FCD?? 5J5%<N 55!N% <.5%N# '675'

K;S]SMGH CD?? 5J5%<N 55!N% <.5%N"# I -#."#48#. <s/\t/oCGFU1@/F@G==>HF

5< "-5.!8.%8# 8$e ru 4&Y 8-dU\1@/bUcC%& 87:%')o>H?vsBAS8<#-P !5.

KM5.void main()

TRISB.F3=0; // Set RB3 ==> Outputwhile(1) // Infinite Loop

PORTB.F3=0; // LED_ONDelay_ms(500);PORTB.F3=1; // LED_OFFDelay_ms(500);

Page 41: Robo-PICA Thai Manual

41

KQM"%N$e)m>oq1@/bUcC <".'%C@owgx5<"7%'

KXM 58N% 8- EUffGFU8%-I87-8N% 8-EUffGFU4&48 -#."#4 8%& 8"#BI332885<!#-7#.O'5.WI8

K]M5 <-!'7""%!()*+,,!'"#!"$ $-.'(/0/1238#. .2A;%&- .4!'58!"N#5'-'yZ)5Y7:5%.4-.7: 8!(/0/123

;%

Page 42: Robo-PICA Thai Manual

42

K,M 5Y12?>C;DE1@/F@G==>HF 9:'#'4&#4 !5 <-%&5!'7""%5%'125 <-8#..-N%8#4&485!'!5J12L]g++,

K+M 5%<7:%' STUV8.75 g>oU 5%< 2=p/@CjUV4& 8- !5Y7:%'zSTUV8%7""%5%'5%<77:A|(/0/123)o>H?vsBA 5%<7:%' <)o>H?vsBASTUV

Page 43: Robo-PICA Thai Manual

43

KxM"%N$e~@>CU5<#' %7.!'()*+,, $-.'(/0/123

KLiM 5%5NW !"#$%&'(&)*()+) , -

!"#$$%

N45 IW5N85<"#!"$7""%5%' 12L]g++, N-!$O'..-!!'()*+,,5< ! -#-P!'"#!"$()*+,,%&5<5."#8-58 -5<aN!N&N49!98W-%&N4 $-.'(/0/123

!"#&'$ ($%)*+ !"#$%&'()* +,""-,./.

0&!"-,.&'1 23!4567Ω8958!2-,.+95!"#$%2!:!;&!"+95 #$%<2.4 :=:5:. :.!>>?<@A:&()*,-B5C.!>>?<@7A#$%-2!"

&'()*.B892+958:D25!;:<'E-<'E2<<,-'E2<<+<;5:+95&;D&''E2<< +&3,=:5:&3&5 @7A +95!""<*&:<.F(G)!D892,""8:&:&'()*HH&3, 2543IJKLM%$8'+9525NO!'PHQRSHHTU "2,&5!""2()V &:9E 3(MWM ,-'XG)&:'<4HH*2492,3!:"2()V .!:O8:

Page 44: Robo-PICA Thai Manual

44

#$% & '()*+, ,-./012344056&067+( +7,85 !"#

void main() TRISA.F1=0; // Set RB3 ==> Output PORTA.F1=1; // Turn on RB3

,;8:&!;U&!;,892+95&()* D'E2<< !;=:892+95&()*<D@A

#$%9:(5; <=>?@%AB*++C-./,8,01 !"%DE334F&,

µ

!"

!"#$"%&$'()*+!",-$.()/$0-"-$12134)/$ !"2 !"3'%

PORTB.F0=1 ; !"#$% !"#$

,-.,/0012.3-45

Page 45: Robo-PICA Thai Manual

45

HHY,5&,+95D, !;8',542492,3!:"2()V !;: 'U2."8:

!"#$!# % &'()

!"#&#6$!!%!$%7""2()V .4<T2<2 32!"<2!;:3 *!4!49=:892+95D.4<T($G$F. 4

!49UD.4<T-.:&=;3 !"892O5+T5: ,.2:4:TU .4<T&5!",-8,9 :<2!;:.4<T""2()V

.4<T2<2 32!"+.Z4-<-< @A!45'! U2.4<T &()7,-(Y-B :428+9525!"<@7A&'!;:.:4 - 3.4<T

void main()

TRISB.F3=0; // RB3==> Outputwhile(1) // Infinite Loop

PORTB.F3=1; // "1" ==> RB3Delay_ms(500); // DelayPORTB.F3=0; // "0" ==> RB3Delay_ms(500); // Delay

,;+T58.!:while 'U4.!:+95 #$%<2,-2!".!"! 239 4:494 :<22!"677<<4<9U7H64<

#$$9:(5; <=>?@$AB*+06&067+C-./,8,01 !"%DE334)F0

#$$ & 'GHI,&FH5GC0966(G(5!"%DE334()*+, &FH5

#$%

#&'

#()(*

Page 46: Robo-PICA Thai Manual

46

void main()

ANSELH.F4=0; // RB0 ==> Digital inputTRISB.F3=0; // RB3 ==> Digital Outputwhile(1) // Infinite Loop

if(PORTB.F0==0) // Check RB0 Press ?

PORTB.F3=1; // ON ==> RB3if(PORTA.F4==0) // Check RA4 Press ?

PORTB.F3=0; // OFF ==> RB3

,-892+95&()7,-&(YD&<'E2<<. 4&()*D&'E2<<!;44."2.4<T U.4<T&()7B2 ,-. :&5 @A 3!:&'()*8+95#$%()*<2.4 : U.4<T&(YB2 03D @7A1 ,-. :&5 @7A 3!:&'()*8+95#$%&()*2!"

#$9:(5JKLMBNO>PMAB GQQ-./C&8&FH51@()#R

4."2.4<T!;U: :"4 -2.4<TU+2+'![,

=:5:&3,+!\?-4 ,-4."2.4<T23+T5:U& J] U:U&D<:+95,8::U&!;_ 23,!43 :,.2:+, *

HH&3, *2543IJKLM%$8'+9525NO!'PHQRS

HHTU "2,&5!""2()V &:9E 3(MWM ,-'XG)&:'<4

HH*2492,3!:"2()V !;2:2.4<T(Y,-()7,54.!:O&:8:<2&=;

*"#$)+,&*"% $)-)!"#!$)+,./

*+!",5678956789:'(&;<,"/=!<>"!+!";/ ?*=",<>"!+!"#%";/.%'%"/@A2=!<>"!+!"";/.%=ANSELH.F4=0; ="

,-.,/0012.3-45

Page 47: Robo-PICA Thai Manual

47

!"#&8$ (%99%"$) +2 #% DE?.89!",.2:O!4!\,""O=94.89!"+T5+9E 3(MWM

.B,.2:O25!4!\"!24:TU !",.2:+ *23TU D,""Y"<,-8928,9 :&:&'+T5+TU :!" !;:589245+" #%&:IJKLM=:8+95&3,8253 .-24&=; 23 3+T5:2#%'3:U8,9 :'+T5 !;25438.!:Lcd_Init(&PORTD);U:"2()V U+T55'%+TU !"2#%!:

!"#$#%#, YD,Z\.89!"IJKLM23-,.2:&542#%

. 4,.2: !4&!; .B. : 3!:2#%25!U:2#%5:&5,.2:OD9!.,.; =:8D5:,: &:!4&+953 +&:9!.,.; 23+T5N:T!+,-.*,)/- 'U3 &5"<T<2!4, ab D&5!&- -94 :7B=: 6c6*63-32&:,,.2:+, 6

#$& ' GHI,0(-/0!"%DE33400512344S$A@

µ

!"#$%&

!'(#)"

*+

Page 48: Robo-PICA Thai Manual

48

char *text1 = "Innovative"; // Save Textchar *text2 = "Experiment";

void main()

Lcd_Init(&PORTD); // Config PORTD connect LCDLcd_Cmd(LCD_CURSOR_OFF); // Setting cursor of LCD offwhile(1)

Lcd_Out(1,4,text1); // Show "Innovative" in Line 1Lcd_Out(2,4,text2); // Show "Experiment" int Line 2Delay_ms(5000);Lcd_Cmd(LCD_CLEAR); // Blink LCDDelay_ms(500);

,;-" &5445!4,bRSb,-bRSb !;892+95'%D'.89!"<2 !"2#%,54.!:d2,.2:O/ 254388&54,.2:,.2:OD464<.!"!"d2,.2:O7H64<

#$R9:(5=B?BNT;<M>PMAB C6&+C'-/ 0512344

H*H&3, Y2543IJKLM%$8'+9525NO!'PHQRS

H*HTU "2,&5!""2()V &:9E 3(MWM ,-'XG)&:'<4

H*H*2492,3!:"2()V .!:O&:8:<2&=;

0!1# #,23455*"$ )- 6!*$7!

Page 49: Robo-PICA Thai Manual

49

H*HY&3, 62543IJKLM%$8'+9525NO!'PHQRS

H*H62492,3!:"2()V .!:O&:8:<2&=;

0!1# #,23455*"$7!0

int i=0;char txt[6]; // Save 16 bit 0-65535void main()

Lcd_Init(&PORTD); // Config PORTD connect LCDLcd_Cmd(LCD_CURSOR_OFF); // Setting cursor of LCD offLcd_Cmd(LCD_CLEAR); // Clear Screen FirstLcd_Out(1,1,"Counter= "); // Show Text

while(1)

i++; // CountWordToStr(i,txt); // Convert to StringLcd_Out(1,10,txt); // Show Counter ==> LCDDelay_ms(100);

,;-!" !4&,-'< !4&&=;-9=:'5!;:8 !4&,:+95D9!.,.;'U8 ;,.2:2#%23 !4&D !4&,"""< -94 :7B=:6c6*6

#$U9:(5=B?VWX<M>PMAB 6,&G(+C'-/ 0512344

Page 50: Robo-PICA Thai Manual

50

!"#&89 ( :6 ;<=""2()V 258TU 8':e3/&5!"&'(7&:

:25/N4, +IJKLM8.!:.89!"&!".!>>?.3:8': 235:8928,9 :&'&:+T52543N:T!3+T5USound_Init(),-Sound_Play()

void main()

Sound_Init(&PORTC, 0); // Init Soundwhile(1)

if (!PORTA.F4) // Test RA4 keypresssound_play(250,50); // 2 kHz sound ON RC0

#$D9:(5PWV?M>PMAB&8, *GFYYZG8 8HC:[ 5HPWV?<\=T] XL^;

µ

µ

!"

#$%&$

'(

#$R& 'GHI,&FH5()(* G_8`00512344S$A@

Page 51: Robo-PICA Thai Manual

51

&$!'(!)*+,-./0123450

void Sound_Play(unsigned short period_div_10, unsigned num_of_periods);

1

Period_div_10U 84"4&:.!>>?fd+T5+.5:4B925437 -94 :7B=: 66 T 5:.5:4B Kgh &:"4ij777i677 4<B5+T5.!>>?fd7kgh-25 &:"4&:.!>>?fdD7H4<2!:!; &:"4+T5+.5:.!>>?4B Kgh=: !" 0677j7H1j7i67

. 4 4B8.E2.5:25ij0066S71S7H1iHlKgh

num_of_periods2U-3-4+8<2.3: -94 : B=: 6c6*6&=;3 !"4B.!>>?fd+T52543T 3B5+T5.!>>?fd7kgh"4 !"7H4<B55:8<2.3:4<-5:892 !"677

HYH&3, 2543IJKLM%$8'+9525NO!'PHQRS

HYHTU "2,&5!""2()V &:9E 3(MWM ,-'XG)&:'<4

HYH*2492,3!:"2()V !;2.4<T,54.!:O8:<2&=;

$)+, ./- !!,891:;<445*" $==>$?)@ABCD #!EF?G%-? ? * )*"!?$)+,

Page 52: Robo-PICA Thai Manual

52

Page 53: Robo-PICA Thai Manual

53

!"#$! %&'&( )

!"#$$% &$ !'( $&$)&$

*+,+-./012 3$2 34$ !"5 !$

2&$ 3' 6789:'($ 3 7$;2&;;! !./0<=>??@$% = 2A"B-<

µ

µ

!"#$%$&'()

Page 54: Robo-PICA Thai Manual

54

$ !C$2$))59 &# "DE$ F $))5.GH $ H-<2D*:I !C *:< # D *07J00.< 2$))5 .GH D F H-72D*K<!C*K7#*0<J00.7$))5.GH D F

D&$ H-<!CH-76L:$%&$ $ ! !" #$% & $& 7 &2;& "M 2& "M!$$%

!!"#$" !%&' "(' A" B-7 F(# *KN-?@@$

"M !$ *+,+-./01$&$ 2H-<2D*:IO.P*Q:R>IS!C*:<O.P*Q:R><S# ;

!"#$%&'(!))* +,- ./

2H-7F&C "M 2 $ D "!D2# O*K<$*K7S!C F !&$ O*0<S $%

* +,-.,,/&'(0122!34,+, !

Page 55: Robo-PICA Thai Manual

55

*!+,$!!# %&'&( )

&%&C$$ ! *+,+-./01$%D%T; &$ !" !C "!# !$%% D &D%T ! *+,+-./01&C A"U$VC&'$'(%&E"

!"#$ % ! " #&''# ("$ !"#$ )$ * &)+#,&-./0!!("$

12 $% $ $'#$3$,&'!0&' )'#%14562754 /8 )%'#(.

Page 56: Robo-PICA Thai Manual

56

192 & % $ $'#$3$,&'!0&''!)'#%1:;562

1<2' # $ $3$=,,&'!0&'%$ $3$=9,&'!0&' )'#%14562

!"#

$"$"

%&

'

'

'

#

(

Page 57: Robo-PICA Thai Manual

57

!"#$%%&$ '(()*

+ ()* ,-*./$ '()*

!"

#

$

#

%&

'

'

'

(

!"

#

$

#

!"

#

$#

%&

'

'

'

(

Page 58: Robo-PICA Thai Manual

58

! " #$%&

!

"#

$"

$"

!"#

$%

&%

%

&

'

'

'

#

(

'()*+,-#.*/'(+01234.56#678$9:;$<$$8=)>?@

'()"A/,-#6#:B+4C4D'$E8FGH 78I'()(6,:$,-#-+ :B+4C4D'$-J!IDKL'()M-$!6+6,:$. :#N6#:B+4C4D''()O56:B+4C4D'6 8A-J!IDKL! ##6.56 6 :B+.*+#,-#.*/*+P

!"#$%&'(')##%*+,*+,-%./%*,01",-$%&'('$%#-2/%'/,)/ 3.4#-!+,-3&'//-#,*++-567884#%*+/-!,-"(*'$%&'(')#92,#

Page 59: Robo-PICA Thai Manual

59

void main()/* Initial port for control motor */

ANSELH=0x00 ; // Set PORTB => DigitalTRISB.F1=0;TRISB.F2=0; // Motor M-2 2A,Motor M-2 2BTRISD.F0=0;TRISD.F1=0; // Motor M-1 1A,MOtor M-1 1BTRISC.F1=0;TRISC.F2=0; // Motor M-2 2E,Motor M-1 1EPORTC.F1=1;PORTC.F2=1; // Enable Motor M-2,Enable Motor M-1

/* Triangle running robot */while(1)

PORTD.F0 =0;PORTD.F1 =1; // Motor M-1 ForwardPORTB.F1 =0;PORTB.F2 =1; // Motor M-2 ForwardDelay_ms(2000);PORTB.F1 =1;PORTB.F2 =0; // Motor M-2 BackwardDelay_ms(800);

! "# $%#&&"'()#'( *!!&#+, *! '()#'(&#+- !.&/ #%!.! '(%0"#!#!! ","!+#., #123%*#!!-,+

!"#$%&$%'(%)*+,*-"'.+/+012 34*/.--./

Page 60: Robo-PICA Thai Manual

60

!"#$%&' (()*+,*"!-$+./*/0* !12345/56+,7859"*"!-$:6 !*;< 8#$98< ;0=,/*+ >/'/*/%%+$$':.?*'/' (() @A1 $'-B6$4C, !"*/

!%- >59&#/ D/ !"59+./".$ /0=,/559"- / > !"*/5=/E-B$#/ DD&+,& !-B+,-C& $'* !#+#$ !/ $'E/!C,#/ F$,/-B> %/ $'E/!C,+! !/ $'+ >/->0-$%59-->0-$?0"*// $'+ >/

/56+, 7G 1*4->0-$HIJ:=//*/ $'E/!/?HIJ*//+ >/ / >#/ F$,+,+ !1HIK7LM4<8IIN;L7O'. !6+,7G14#$91/4?.->0-$PHJ#$9;HJ$. !

!"#$%&'(()*+,%&"#$ -,*./012%&"#$ -,*./302%&"#$ -,*./402

4 .8V

3 .6V

4 .8V

1 .2V

Page 61: Robo-PICA Thai Manual

61

!"#$#%&'(

)*+,-./# 0! 011*102!0&34)502!067)*1 89&340 !&' 616)::;&3482<!*)0 &34=>?*78 16)::;&34 *1616)::;&3467)60)>) !) 1)6!*1 1>?71@88) ! >) ! 1 16)::;&34

A1 1)6!* 8) ! !>?6971 !081A1 1)6!*1 8) ! !>? 771 !081*1

02!061+==* &34 8>?*1 897@86)::;&340 ! &'BCDEEFG+ 81) H*8 >+6 A) !? !*4%B?4%H081

Pwm_Init

void Pwm_Init(unsigned long freq);

freq !"#$

578@ 11) 89&348788@ =0G@6)::;&345I76)=>? 1A9*1*1 89&34

Pwm1_Init(5000);

!"#$ %%&'(

Page 62: Robo-PICA Thai Manual

62

!) *+,-

Pwm_Change_Duty

void Pwm_Change_Duty(unsigned short duty_ratio);

duty_ratio %&'())

576)8@ =0G@ 89&34A1duty_ratio5I A+8@ =0G@IJKBHF A+LIJ?HLL A+8@ =0G@BIIJ

Pwm1_Change_Duty(190);

. /$01%!.23*4

Pwm_Start

void Pwm_Start(void);

576)@ 16)1 89&347

Pwm1_Start();

1% !

Pwm_Stop

void Pwm_Stop(void);

576)87 89&34

Pwm1_Stop();

51%!

Page 63: Robo-PICA Thai Manual

63

!"#$$%$& '()(* +

@> =76H )86 !"#$#%&'(8*16)::;&34

!" #*, -""./.".$%$0*+,-,- ./01 *+-23456789:;<1=0>?@ A3>23>B@ C@@?D ,EFG

void main()/* Initial port for control motor */

ANSELH.F0=0; // RB1 ==> Digital IOANSELH.F2=0; // RB2 ==> Digital IOTRISB.F1=0; // Motor M-2 2ATRISB.F2=0; // Motor M-2 2BTRISD.F0=0; // Motor M-1 1ATRISD.F1=0; // MOtor M-1 1B

/* Initial PWM module freq = 5 kHz */Pwm1_Init(5000); // Initail PWM 1EPwm2_Init(5000); // Initail PWM 2E

/* Start PWM and set duty cycle 100% */Pwm1_Start();Pwm2_Start();Pwm1_Change_Duty(190); // Motor M-1 75% SpeedPwm2_Change_Duty(190); // Motor M-2 75% Speed

/* Triangle running robot */while(1)

PORTD.F0 =0;PORTD.F1 =1; // Motor M-1 ForwardPORTB.F1 =0;PORTB.F2 =1; // Motor M-2 ForwardDelay_ms(2000);PORTB.F1 =1;PORTB.F2 =0; // Motor M-2 BackwardDelay_ms(800);

./0 H0=2 >31 )6"#C=I4J:K5L!$M0H303230=I4JNLO7L!$/@%0=203?@ 23=I4J9EOPFJ;QLR!$A1 H0=2-S&T=0 M%>23U)V0W@TX T0W./01 *Y-

!"#$%&$%'%&()&*+(%,-+.-/"'0+1+23454 67

Page 64: Robo-PICA Thai Manual

64

*+,-,(ZTW 2./030WX [8\8:9*/@%? ]N^?

*+,-,Y2 .@2./0>X [8\8:9*/@3_2Z `<[

*+,-,+@22 .@21H20M0X [8\8:9*

*+,-,)=X [8\8:9*W?TH_2Z `<[001=X

5& 67879'(: ;<% =% $.1# /1 >?< =% .# =% ;<=%; @;5 A1 =%#.. B =% $ C$1 #

Pwm1_Change_Duty(190); // Motor M-1 75% Speed

Pwm2_Change_Duty(190); // Motor M-2 75% Speed

!"#*1-""./.$ 0$$$%$*+,(,- ./01 *+(23456789:;<1=0>?@ A3>23>B@ C@@?D ,EFG

*+,(,(ZTW 2./030WX [8\8:9*/@%? ]N^?

*+,(,Y2 .@2./0>X [8\8:9*/@3_2Z `<[

*+,(,+@22 .@21H20M0X [8\8:9*

*+,(,)=X [8\8:9*W?TH_2Z `<[001=X 5& 67879'(: ;< =% .2. %DE .. B1 =%

1%%%&/#%C / =%!FF4GH4

Page 65: Robo-PICA Thai Manual

65

void main()/* Initial port for control motor */ ANSELH=0x00; // PORTB ==> Digital IO TRISB.F1=0; // Motor M-2 2A TRISB.F2=0; // Motor M-2 2B TRISD.F0=0; // Motor M-1 1A TRISD.F1=0; // MOtor M-1 1B

/* Initial PWM module freq = 5 kHz */ Pwm1_Init(5000); // Initail PWM 1E Pwm2_Init(5000); // Initail PWM 2E

/* Start PWM and set duty cycle 100% */ Pwm1_Start(); Pwm2_Start(); Pwm1_Change_Duty(255); // Motor M-1 100% Speed Pwm2_Change_Duty(220); // Motor M-2 86% Speed while(PORTB.F0==1);/* Oval running robot */ PORTD.F0 =0;PORTD.F1 =1; // Motor M-1 Forward PORTB.F1 =0;PORTB.F2 =1; // Motor M-2 Forward

./0 H0=22 H>0@1 aA3 1H>10 - 10W()) !M>BA30W b0=@$ A1 ( 10W((&0M>BA30W cdV2H (M'@T1 Z30 -

while(PORTB.F0==1); =ZA3X >@T1 11 @M02 .@2./0bMH/M%3 002Z [^&0T02Z T>M%1bM/@%./0M%@X2M0@eIE5fF>1==2>>23

88%&$%'"'0+1+23454 67(%,-+(9+&/

Page 66: Robo-PICA Thai Manual

66

!"#"$%>)1MNM?@> M 67) !"#$#%&'(

@ *10G+> 1 ),-./# 0!0 O91*16 A612<!*)?02!0+=081 81 76)*1P 6152<!*)? P2<!*)181)61502!0 )==?*!)Q 81*102!0>?718)Q ? G)G1 081

67)02!061+=*1)) !"#$#%&'(,#R#/NS8 ?8G!6 688) M%B

char motor_duty_= 127; // Defalt PWM 50%char motor_init_=0; // Status initial

// Motor M-1 : PD0 ====> 1A PD1 ====> 1B PC2 ====> 1E (PWM1)

// Motor M-2 : PB1 ====> 2A PB2 ====> 2B PC1 ====> 2E (PWM2)

//********** Initial Motor Function ******************void Motor_Init()

if (motor_init_==0) // First time ?

motor_init_=1; // StatusANSELH.F0=0; // RB1 ==> Digital IOANSELH.F2=0; // RB2 ==> Digital IOTRISB.F1=0; // Motor B 2ATRISB.F2=0; // Motor B 2BTRISD.F0=0; // Motor A 1ATRISD.F1=0; // MOtor A 1BPwm1_Init(5000); // Initail PWM 1EPwm2_Init(5000); // Initail PWM 2E

//********** Control Duty Cycle *********************/void Change_Duty(char speed)

if (speed != motor_duty_) // Check Same old speed

motor_duty_=speed; // Save for old speedPwm1_Change_Duty(speed); // Motor APwm2_Change_Duty(speed); // Motor B

//********** Motor A Forward ********void Motor_A_FWD()

Pwm1_Start();PORTD.F0 =0; PORTD.F1 =1;

/********** Motor B Forward ********/void Motor_B_FWD()

Pwm2_Start();PORTB.F1 =0; PORTB.F2 =1;

$44:; !"#$*<=#$"'0+1+23454 67>20-?

Page 67: Robo-PICA Thai Manual

67

$44:; !"#$*<=#$"'0+1+23454 67>@$?

/********** Motor A Backward *******/void Motor_A_BWD()

Pwm1_Start();PORTD.F0 =1; PORTD.F1 =0;

/********** Motor B Backward *******/void Motor_B_BWD()

Pwm2_Start();PORTB.F1 =1; PORTB.F2 =0;

/********** Motor A Off ************/void Motor_A_Off()

Pwm1_Stop();PORTD.F0 =0; PORTD.F1 =0;

/********** Motor B Off ************/void Motor_B_Off()

Pwm2_Stop();PORTB.F1 =0; PORTB.F2 =0;

/********** Go Forward ************/void Forward(char speed)

Motor_Init();Change_Duty(speed);Motor_A_FWD();Motor_B_FWD();

/********** Go Backward ************/void Backward(char speed)

Motor_Init();Change_Duty(speed);Motor_A_BWD();Motor_B_BWD();

/********** Spin Left *************/void S_Right(char speed)

Motor_Init();Change_Duty(speed);Motor_A_FWD();Motor_B_BWD();

/********** Spin Right ************/void S_Left(char speed)

Motor_Init();Change_Duty(speed);Motor_A_BWD();Motor_B_FWD();

/********** Stop Motor ************/void Motor_Stop()

Motor_Init();Change_Duty(0);Motor_A_Off();Motor_B_Off();

Page 68: Robo-PICA Thai Manual

68

&!"#"$%TBU6102!0,#R#/NS8V8 G!8@ !8P@W#RXYZ[*1

8@ !,-./#1@ ! 68 M%B1)+*,#R#/NS)8 >OG8 *8 ! "#$#%&'(

THU)+)8001'()$"*$+!,-./0) -1$"/./1#$"2-1+)!-1$"')-23.45/

6!"#"$%Forward

576)6)1 !0811

void Forward(char speed)

speed 2 H>0@?T0=2bA0@T1 H/&'())

Backward

576)6)1 !A)

void backward(char speed)

speed 2 H>0@?T0=2bA0@T1 H/&'())

Page 69: Robo-PICA Thai Manual

69

S_Left

576)6)1 ! )G1

void S_Left(char speed)

speed2 H>0@?T0=2bA0@T1 H/&'())

S_Right

576)6)1 ! )

void S_Left(char speed)

speed2 H>0@?T0=2bA0@T1 H/&'())

Page 70: Robo-PICA Thai Manual

70

!"2'()(* + -""."30

*),- ./01 *)-23456789:;<1=0>?@ A3>23>B@ C@@?D ,EFG

*),(ZTW 2./030WX [8\8:9*/@%? ]N^?

*),Y2 .@2./0>X [8\8:9*/@3_2Z `<[

*),+@22 .@21H20M0X [8\8:9*

#include <motor.h>void main()

Sound_Init(&PORTC, 0); // Init Soundwhile(PORTA.F4==1);Sound_Play(250,50); // 2kHz sound ON RC0Forward(255); // Call ForwardDelay_ms(2000);

Sound_Play(250,50); // 2kHz sound ON RC0S_Left(255); // Call Spin LeftDelay_ms(800);

Sound_Play(250,50); // 2kHz sound ON RC0Forward(255); // Call ForwardDelay_ms(2000);

Sound_Play(250,50); // 2kHz sound ON RC0S_Right(255); // Call Spin RightDelay_ms(800);

Sound_Play(250,50); // 2kHz sound ON RC0Forward(255); // Call ForwardDelay_ms(2000);

Sound_Play(250,50); // 2kHz sound ON RC0S_Left(255); // Call Spin LeftDelay_ms(800);

Sound_Play(250,50); // 2kHz sound ON RC0Backward(255); // Call BackwardDelay_ms(1000);

Sound_Play(250,50); // 2kHz sound ON RC0Motor_Stop(); // Stop all

A 4BC%&$%'(%,-+.-/"'0+1+2D1*<=$44:;

Page 71: Robo-PICA Thai Manual

71

*),)=X [8\8:9*W?TH_2Z `<[001=X 5& 67879'(: 1# I+,- C =% $.1 ;/5$.0

C =% $.1 5;< . C. =% #JJ?# I+,- ;<1$KA.L0

%;/5&67879'(:;< =% .2I C5$.1 =% % I C5$.0 ;/;< =% %.2 ! C;5 =% 5;< . C. =% #JJ?# I+,-;<1$KA.L0

Page 72: Robo-PICA Thai Manual

72

Page 73: Robo-PICA Thai Manual

73

!"#$%$& ' (())

! "#$%"#&#'#( !)*#+,&#-%.("-%-$$//-%0%%1#"#"23' 4*#5623'7898:623':901;623';<0&##/-(,%%($%*' $='5623'78:601;623';<"#/-("#"-%,->>#?1#"-@ !)(A0B',->>#?1#"BC(./. DEF$#1)(6%.'-%0'(-1#".+(#623'G9H5IJ#"#&#'#*'(AE0$/1(J-+KBC*A(./.#623'86<7D*L#,.%F5666666666623'D*L#,'F56M666623'6M67 D*L#,.%"F

!"#$%"&'(() !"*+,

BC)/.,,&#-%5"',->>#?1#"01BN("#&#'#*'(A0B',->>#?1#"BC(./. DEFAB)I 90,('J-'"#5""&#(#)/.,EOP6,$#1)(01%.*')/.,EOP6)(-')@

)-.&/ !"0-. !"0,1233456#7 !"

Q66RS,->>#?#TN"#U##<DOVW<F

Q6RS,->>#?#TN"#U## DOVW F

Q6RS,->>#?#TN"#U##7<DOVW7<F

QRS,->>#?#TN"#/#"$'/U#DF#,A',(966XYZ

Page 74: Robo-PICA Thai Manual

74

89:/";0<89";0,127=>?.=@=

Q6666RSP6D*#+6F

Q666RSPD*#+F

Q666RSP<D*#+<F

Q66RSP7D*#+7F

Q666RSP4D*#+9F

Q66RSP9D*#+;6F

Q66RSPD*#+;F

Q6RSP!D*#+;<F

Q666RSP D*#+:<F

Q66RSP=D*#+:7F

Q66RSP6D*#+:F

Q6RSPD*#+:4F

Q66RSP<D*#+:6F

Q6RSP7D*#+:9F

Q6RSH; D0'(-#'.'0%%B0"(,&#-%(AB)%)%0'(-1#"F

QRS0'(-#'.'')ID6[HF

/A*B!*+C1 !"

Q6RS"#0B'*A,\/,.@

QRS .I"#0B',->>#?01/1(&#',2#1)@1$#'"#0B',->>#?/"1-I',\/,%A?%.)@/1"#BCQ6R(--.

,/ !*+1D-E334.EF

Q6RS(.,%.5BN("#&#'#*'(AE

QRS\%."#&#'#*'(AE

Page 75: Robo-PICA Thai Manual

75

!"#$ %"&'($ )*+,%-.+/0112( %+34567+3489:;<*;=>?)*;= @"#$ !)*+;=8")*0A9B+0:8?B+0: @"#$ !)*+;=

Page 76: Robo-PICA Thai Manual

76

: !"*+

BC)/.,)I"&#(#0'(-#'.'"-%(AE01"&#(AB0%%*'J-+K#+)I)/.,E;VY01E;V]

)/ !'G1HE-I>J !KC0;-. !KC0L

Q6RS*A.(B#'^#D__________MMMMMMF

QRS*A.(B#'*$#DMMMMMM__________F

&/M=#7#(BC6

/N"'A12-

Q6RSHVV

QRS*#H;

OPQR N"'A,12-ST

6SHEE

S*#H;G

<89,/M=#7#(BC6

< !KC0L-. !KC0L

BC)/.,,&#-%"\%*A)I##(/#"(AE()/.,E;V]"\%*A%#'D5%I&#F,$E;VY"\%*A%%D5%,A'F

Page 77: Robo-PICA Thai Manual

77

!"#$%&' !'()*+&++,-,./*0/*& ,*0 +&

!"#$" "%& '"

123 ,,-,.4 ,++56,1723 ,+& 8/*449:

4*0+& &. *),04, ;*4,.%<=.0 ,/*>?@+,). %,6,%,%+A&=.

(

B !B$)*+&++,-,./*0/*& ,*0 +&

)'*+,-./0" */*6,

12 !"#$" "%& '" /- 12

123 ,,-,.4 ,++56,

1723 ,+& 8/*449:

4*0+& &. *),04, ;*4,.%<=.0 ,/*>?@+,). %,6,%,%+A&=.

Page 78: Robo-PICA Thai Manual

78

!" !"#$$%&'

(')*#'+ ,-.//01/#'" '+,-234556 ('0 +789" #)'+ ,- ''/':);#)('/#*'"</#<7 !=>?0',@-234556*;:'#

!"#$%&'($%)*+,+,+-.($%). (/ $0 ""1%"2$$3456 .$7.)"4 289 :;<==*"4"$ >? $3&$0 $?@4? 23456 34?$4((@A $. >!.)"4

#$ %$&'()* !$+,!#-.//0

A2B'*+7/#01/#'!=>0/(''C'+7)DE-F

AGB' 0/)=HFIJ"&=HFIJK<7<+#'*#*+7/#01/#'(''C&'

ALB<1 #'C&'+7/# ' "/.M'+#'*#!=>' +7)=>@HN

AOBPQ@R>@HI0')=>@HN<77/'"#*/!

ASB)'Q@R>@HI('TNUP;7#8;#"#*/!&'M):'+ ' */!))=>EIFJ"&=>EIFK

1231&4567

)*:''*'"+:#0'.*/SVGV28'*'('"?W<7/#('XYZV[01/#'!=>*#,-234556#"#&*#XYZV[0'"+7S\2

#M XYZV[+7/#*;:'':)&#+#'*#'C&'#51 # #<=HN8;#=H6<E=N8;#E=L]E=S"&EIN8;#EIG+ ':'

Page 79: Robo-PICA Thai Manual

79

int Adc_Rd(char ch) // Low 8 Channel ADC read

int dat=0; // Save ADCif ((ch>=0) && (ch<=3)) // CH0-CH3

TRISA |= (1<<ch);else if (ch==4) // CH4

TRISA |= 0x20;else if ((ch>=5) && (ch<=7)) // CH5-CH7

TRISE |= (1<<(ch-5));ANSEL |=(1<<ch); // Set channel to analog

ADCON0 = (0xC1 + (ch*4)); // Select ADC Channel Delay_us(10); // Acquisiton delay ADCON0.GO=1; // Start conversion while(ADCON0.GO); // Conversion done? dat = (ADRESH*4)+(ADRESL/64); // Sum highbyte and lowbyte

return dat; // Return value

!" #$%!& !'! ())! *!+,-./001 $2 3 %4565+,-7&89:;5-)!( #*!

!"#$$!!

!! "#$%&'()$$*&'+&&,%-'./0

123#45#6# ' !,6)754'89:&;%# '4<=>#?"#%@4# '

A!')& $,?)754'89:

B45#C!D!#!4'%74 #?+??D 4,4!! ,6"5!$66)7!D745#8E#?)754'89:

<7.=<2>?@& '!A?@%?% )2 = ($

Page 80: Robo-PICA Thai Manual

80

/***** Show ADC from RA0 to LCD ***/

char txt[6]; // Save testint adc;void main()

Delay_ms(1000);

Lcd_Init(&PORTD); // Init LCD PortLcd_Cmd(LCD_CURSOR_OFF); // LCD cursor offLcd_Out(1,1,"SENSOR0 = "); // Show Text

TRISA = 0xFF; // PORTA ==> inputANSEL = 0xFF; // PORTA ==> AnalogADCON0=0b11000001; // Select Analog1 RC_Mode and ADONwhile(1)

ADCON0.GO=1; // Start conversion while(ADCON0.GO); // conversion done? adc= (ADRESH*4)+(ADRESL/64); // Sum highbyte and lowbyte WordToStr(adc,txt); // Convert to ASCII Lcd_Out(1,10,txt); // Show on LCD Delay_ms(100);

(7. BCDB(EF-!2 )2!" #$%& !2!7GHI47HJ'! ())! *! +,-./001(=(=< K-L'!$2 3 % 4565+,-7( M3 (2 =*3 = '!(=<7L-E3 +,-./001

F , &&#?)7#?4,4!! ,6"5!$ %3# ,6&"5! ?,#@%74#;!&#G#()5$" "# &&# ':HIIJC,?4+&! !?!K&L#?)754'89:

!"#$%&'( )*+

,*- .*-)!" /&/" -0 )& !""(112'". /&/"3,40**"" 56$789::;

Page 81: Robo-PICA Thai Manual

81

!"#$%$& ' ())! *+( ,

!"#$ %&&'$(%" ((")%'*+ " ,-./-0123)! 4$$*3"%'5!!65")78 '")94:;<1 !*"$93=%=! ")%5! = = $$

! "#$

>) %&& ((")% ()'*+ "

%" ((5")?4:@0A*!

5+$?BC4:CD ('5++E@@F

)178' "0B?4:-B?D35+$GCD

,-./-0 78 !"#$ %&& (('*+ "!>)@=25+$HDIIJK %" H,L.J'$(' "1 HDMNJ =' "&,-./-0&() )1)>% !=%!1 )! !"#$A:3>)%$7 (!O@-BP4: C-BQ!*$$*%*" =' "&:=% )1)>%%$"$%57"'")!#$2) #73 R/

!"!#

!"#

Page 82: Robo-PICA Thai Manual

82

=' "1,-./-03 ((@0A*! 35+$GCD#>%0B-C4:0BCCD "=$=20B?D>% 7$3'7$' "13 ((?A*! =2-B-CD±0B@D

%&&'"( ! "#$

!"#$%" ((")%'*+ "&('*+ "&%57 (%46$#123 +')!=%!)!'57&""&":3!23'57 (%4&(*" (&*'57*;S'%:3&( (&*57<= "!$<= )3 %!''$("&" ('&(4#657 + ) A* &%!3 %78% ' 2( ''3' (! 4!=%O ((HTJ&<=57%45") ">)# !$3!=$)"

L F

A X=

! $% &'( )()$ * !"!#

Page 83: Robo-PICA Thai Manual

83

"=T&(!=

F AL

X

×=

"=3%" ((5")& + ) A* &(4#57%& 7 (!%$6$UUO&(7$3=78 ("' "A:3)6$ 7$3'7$' "! ((3 %&%"5")

)&*"* (& (!+,,"&$+-" (

6$$1V35")&,-./-078' "&()=35")!'"6$ #7 (( "'7$=' "& +7 =' "= (( 123=%!("%&:!6#) )! >*)!)>)5")"

+=

"3 !4: ((%78A*!

D !4:)!#$&%& '7$UUO($78"*&*$

!23 !"#$,-./-0 >23!%& '7$UUO($78"*&*$5! = = $$ 4)5! = = $$ =5")@0P'"%,-./-0#&%4WA*!

Page 84: Robo-PICA Thai Manual

84

)!-*./ *(* 012314

!! "#$%&'()$$*&'+&&,%-'./0

123#45#6# ' !,6)754'89:&;%# '4<=>#?"#%@4# '

A!')& $,?)754'89:

BC@42'8B66# '8>DE%3# @4 !?!

F !,4G7!!?!?)!)754'(!4@4,H?I&J:11KC,?4+&! !?!L#C?+&#?)754'89:L!,H&#?& ;;)5!?#?,4G7&C,?4+&! !?!@MH

!"#$$%&'(")**+,' !-./0.1 23456789:;22#;<;22#2&& <#=2<#;+,: <(>*( 2 >?2&& @+, ''2A<%:"2'2

Page 85: Robo-PICA Thai Manual

85

#include <adc.h>int GP2=0;float Distance;char txt1[6];char txt[13]; // Save Stringchar *text1 ="RAW Value=";char *text2 ="Far= CM";char *text3 = "Out of Range";

void main()

Lcd_Init(&PORTD); // Init LCD PortLcd_Cmd(LCD_CURSOR_OFF); // LCD cursor offLcd_Cmd(LCD_CLEAR);while(1)

GP2=Adc_Rd(2); // Read ADC CH 2WordToStr(GP2,txt1); // Convert Raw Data to StringLcd_Cmd(LCD_CLEAR); // Clear ScreenLcd_Out(1,1,text1); // Show Line 1 TextLcd_Out(1,12,txt1); // Show Raw Dataif (GP2>90) // Check Gp2 Out of Range ?

Distance=(2914.0/(GP2+5))-1; // Convert to CentimeterFloatToStr(Distance,txt); // Convert to StringLcd_Out(2,1,text2); // Show on LCDLcd_Out(2,5,txt);

else

Lcd_Out(2,1,text3); // Show Out of RangeDelay_ms(400);

( H$+$*&'$&6 ! NOP.!!( 3#?L!I&J:11K !!23#45#,6$" "# &&# ':QREES4,4 LL,666#;!&#()+&! !?!S ?,$*4 ?LM?4#?! (2?!I&&?C,TT!U#;!&#S@L@4#&) 3# ! !! &?C,TT!U #@%74#;!&#(2?!( H"3##@%74#;!&#25#?1) 3#81#I&$L!! &?C,TT!UL;GIV6$(4, WX1&&?S#"! ),C#CH*Y?'2,WordToStr%3# !$C?+&I&Z45#$

L!,H L;4 LC#65!I&J:11K! ,"5!$@5!! !?!) 3#$5 !! &?"5!#I&@6S"5! ;;!?()5[4@4 G!)!"5!&?$@AK[4@4 L;C?+&! 4 LC#6#"!Out of rangeL! %65!)!"5!#?4, WX1!5!\K3# !!" !UL!" !C,? Distance=(2914.0/(GP2+5))-1;L;$"5! ;;!?()5[4@4 @AK[4@4 45G!"5!$5@VL; !"5!" !U$,H&?S#I& ),C#CH*Y?'2,FloatToStr%3# !$C?+&6 ,&5!?#?I&Z45#$

*+,-./!0!#123145*'&' !"!# 6* 78"9'(:-;<=< >8+

Page 86: Robo-PICA Thai Manual

86

)!5#$%$& '! *+( ,

*& !78 =%! #)&*& !3 P!7 7 123=%=! =$233)! 4 %&&%4"%3#")) ((3"5")123 =$233$$ "5!!6

$ =25! = = $$ /RXWWP&(=$233571 )!S =& !"#$,-./-04)=35")'$('7$78= (('$)%)%=3"'"%1*3"%%=%=!&(3)=$2334$'$)%$%% 2A)123$$&*3"%E E !! "#$%&'()$$*&'+&&,%-'./0

E123#45#6# ' !,6)754'89:&;%# '4<=>#?"#%@4# 'EA!')& $,?)754'89:&]C@42':^_8EB&C!!')&,H?)##L!)754'89:

Page 87: Robo-PICA Thai Manual

87

#include <adc.h>#include <motor.h>

int GP2=0,CNT=0; // Variablechar txt[6],i,Round=0;char *text1="Object Detector";char *text2="Distance =";void main()

Sound_Init(&PORTC,0); // Init Sound ==> RC0Lcd_Init(&PORTD); // Init LCD PORT DLcd_Cmd(LCD_CURSOR_OFF); // LCD cursor offLcd_Cmd(LCD_CLEAR);Lcd_Out(1,1, "<< RA4 >> Start");Lcd_Out(2,1,"GP2 Reading");while(PORTA.F4==1); // Start Program when Press RA4

/********************************************/Lcd_Cmd(LCD_CLEAR); // Show TextLcd_Out(1,1,text1);Lcd_Out(2,1,text2);while(1)

for (i=0;i<10;i++)GP2+=Adc_Rd(2); // Read Gp2 10 TimeGP2=GP2/10; // and AverageCNT++; // Counter For Show LCDif (CNT>600)

CNT=0;WordToStr(GP2,Txt); // Show LCDLcd_Out(2,11,Txt);

if (GP2>500) // Check Gp2 Out of Range ?

Round++; // Counter For Rotate RobotBackward(255);WordToStr(GP2,Txt);Lcd_Out(2,11,Txt);Sound_Play(250,100);Delay_ms(500);if (Round>5) // Right 5 Time ?

Round=0;S_Right(255);Delay_ms(1000);

else // More Then 5 Time ==> Left

S_Left(255);Delay_ms(1000);

Forward(255); // Not Found Object => Forward

* +? - <=31@=A2BC<=<145 *&D&9&E9'(:- ;<=< >8+F)GD$ )* ('6 H:'I

Page 88: Robo-PICA Thai Manual

88

* +? - <=31@=A2BC<=<145 *&D&9&E9'(:- ;<=< >8+F)GD$ )* ('6 HDI

H !?!" 6G,H?C5! C?#"! ! ,6C,TT!UC? ! "6"7#4# '! #5!"5!L!C@42' &;! #5!"5!L!#@%74#;!&#

@4! !?!! #! C@42'8BL!,H L;#5!"5!L!I&J:11K#@%74#;!&#25#?1L !K #6%3# !#!"5!`&!(2L; !()$"5!#?! 4 LL,6"!5#!@?MH&;%3#&+& ;6L!C,TT!U 6!L!#4# 'U; !! ,6"&3#

L!,H !"5!#5!$L!I&J:11K$C?+&)!L#Z45! C?"5!L;(24, abS4,,6"5!5#5!@QKK) 3#$5 G!@LM? !"5!!C?,H?H%3#()! C?"5!4,&I&Z$5 V@$L#?"5!4!$5,

)&,?L!C?"5!I&Z& !"5!#5!$L!I&J:11K! 665!!5!FKKc ;!UBF[4@4 d) 3#$5G!!5!C?5!(&2,4G7&L;4#?C,?())754'"&3#G#)&,?,6C,TT!UC?##!?& !%?e[

)&,?L!"&3#G#)&,?&L;4#?&H&C!?L;4,,6 !)!4 LC#65!&C!?$(@f!?@c!?[!d" ,H?&G!@F" ,H?L;4#?&S&H!45G!$5C@?!?#I5!)!)754'L;"&3#4 ?$

EF !)754'89:!?6%3HL,!?C@?!?4!4 !)5?4#?! C#6! !?!]C@42':^_8&C@42'8B%3# @4! !?!#?)754'C,?4! !?!#?)754'

(3+", ,(3'2&#2<#;B;*'< &(3= #B2, C '#;#;(' (B3,'22<#;B;*'< '#@ & #<+">, 23<(B3 ; '*'< #@@?@!'#;D<&'2(3:%&#@< +,(@<>, 23<+":*E(* ''< F 2#@ 23+ =, ''< 'G&("*E'(* (")2'#, ( 3 ;B, &(32+", ,+"

Page 89: Robo-PICA Thai Manual

89

!"#$%$& '(!!

! "#$%&'()*+,(&-..&-/00---).')012+3$4567589 4:;<0=.>?--) '(*+-.=*&&('(010(@A@.,=0A0---)'(=+*/&'(*+--)(,-.BC=*)0A&*'1D'0+E )0-+.)0A0/C> -)&&'(*)+&'(B0-)

?/00-'(>-)).'A0)012+A0--).')012+;<0)0&.*B0+(+--)0).'12+'(=>FFGHHHC'(I"J)+00-A0/00---).')012+-*2&(,0KLM12+ 0--.&0)0&+&);<0?2';1)-.*+)012+-).'&;<0-.NA<,C(B(+A0*&.()B).')012+*++((0*;<0A<,&@.,/1&.)(A0B+B)(A/1(-.).')012+*++('()+'=)012+*+)0).')0/&0+'(A00-)C0*+A@.'(B)(+=)(A-.).')012+*+'()+'=12+)00+=

Page 90: Robo-PICA Thai Manual

90)) !**

)='((/&).'&A0)012+-,/1A0B& 0(0A0..0.0/00---,/1++..0'(.))=--(,-.C.0OB<0P1&&1;<0-.'=0+-/00-*+C.0HQJB<0RQPS&.A0AC&/0-&0)TT@.&?+1-1&C>0UHB<0JVHHH

+0,/00---(,-<0.010'(-.=>?--)',0))(A))(+=;<0-.A<,C='(*+*.&/&&@.+>+ ! "#$%-.>/00---)0).'12+(, U>+-),/1&.--)&@.0E

Page 91: Robo-PICA Thai Manual

91

+!,+- . +.++ /0

!! "#$%&'()$$*&'+&&,%-'./0

123#45#6# ' !,6)754'89:&;%# '4<=>#?"#%@4# '

A!')& $,?)754'89:&BC@42':DE8

F&C!!')&##G!)754'

H4 GC#6! 4@4,I?+??G 4 GG,6! C;#C?#@* ! ,I?C#?27#?)754'89:%3#()5(G5!% #(2?!

/***** Show ADC from RA0 to LCD ***/

char txt[6]; // Save testchar i;int adc;

int Adc_Rd(char ch) // Low 8 Channel ADC Read

int dat=0; // Save Adcif ((ch>=0) && (ch<=3)) // CH0-CH3

TRISA |= (1<<ch);else if (ch==4) // CH4

TRISA |= 0x20;else if ((ch>=5) && (ch<=7)) // CH5-CH7

TRISE |= (1<<(ch-5)); ANSEL |=(1<<ch); // set Channel to Analog ADCON0 = (0xC1 + (ch*4)); // Select ADC Channel Delay_us(10); // Acquisiton delay ADCON0.GO=1; // Start conversion while(ADCON0.GO); // conversion done? dat = (ADRESH*4)+(ADRESL/64); // Sum highbyte and lowbyte

return dat; // Return Value

void main()

Lcd_Init(&PORTD); // Init LCD PortLcd_Cmd(LCD_CURSOR_OFF); // LCD cursor offLcd_Cmd(LCD_CLEAR);Lcd_Out(1,1, "<< RA4 >> Start"); // keypresswhile(PORTA.F4==1);

!"#$%&'()*(+,-(.,/+!"0 " !" 123456&'7879:2#;"<

Page 92: Robo-PICA Thai Manual

92

!"#$%&'()*(+,-(.,/+!"0 " !" 123456&'7879:2#;<

/********************************/// Start Program/********************************/

Lcd_Cmd(LCD_CLEAR);Lcd_Out(1,1,"SENSOR0 = "); // Show Text Line1Lcd_Out(2,1,"SENSOR1 = "); // Line2

while(1)

adc= Adc_Rd(0);WordToStr(adc,txt); // Convert to ASCIILcd_Out(1,10,txt); // Show on LCD Line1adc= Adc_Rd(1);WordToStr(adc,txt); // Convert to ASCIILcd_Out(2,10,txt); // Show on LCD Line2Delay_ms(100);

! "#

I ;#6*J?'2,Adc_Rd()&;main()*J?'2,Adc_Rd(),IKI%3## !"!C;(! (2?!L&&?C,MM!N#;!&#O@G@4#&C !) ,6 )&,G;#5!"5!G!!%# '48P&;8!C?L&Q3#?G!4,4 GG,6! C;#C?#@* ! RL45#!,6!%# '4,?&5!

S BC@42':DE8 %3#G5!$*&I?C@42'8F66# '8>TUVV %3# @4#5!"5!G!+??G 4 GG,6C?C;##@* ! !C?G#C?+&#?L&Q#?)754'89:

V4,)754'KIG!%3IC,?4"5!#5!$)!G#Q !"#$%#

& '(") U !)754'89:$!?6%3I+@C !4#?()4,4 GG,6#L5)3#%3I+@C !C,?4"5!#5!$

$*! + !& '("#*,##$%#"-) !)754'89:$!?6%3I+@C!4#?()4,4 GG,6#L5)3#%3I+@C!C,?4"5!#5!$

$*!./ !& '("#*0##$%#"-) *

Page 93: Robo-PICA Thai Manual

93

!"#=%&>?@A(BC7,/+!"005"456&'7879:2# 0D%"!E;"<

+!12#$%$& '(!!3

)/&'(*+-1-'(WA<,-,'(*+---(0*,/1-.1+).')0A<,'=---*+A<,1+(,=*)CA(&'(CX.+*-X.*+

A(-.-/00---).')012+'0+;&.A '(*+'(,0* 3)1 &'(,'(: *'&&-. ! "#$% &'(B&0&&()'0&'(

P P !! "#$%&'()$$*&'+&&,%-'./0

P123#45#6# ' !,6)754'89:&;%# '4<=>#?"#%@4# '

#include <motor.h> // Motor Control Library#include <adc.h> // Use Analog to Digital Library

/* Text For Show On LCD */char *text1 = "Edge of a table" ;char *text2 = "From Left";char *text3 = "From Right";char *text4 = "Let'Go" ;char *text5 = "Route Clear";

char flag=0;int ADC=0;void main()

Lcd_Init(&PORTD); // Init LCD PortLcd_Cmd(LCD_CURSOR_OFF); // LCD cursor offLcd_Cmd(LCD_CLEAR);Lcd_Out(1,1, "<< RA4 >> Start"); // Check Key Presswhile(PORTA.F4==1);

while(1)

ADC =Adc_Rd(0); // Reading sensor from leftif (ADC<100) // Left sensor detect edge of table ?

flag=0; // Clear flagBackward(255);Lcd_Cmd(LCD_CLEAR); // Show text on LCD

Page 94: Robo-PICA Thai Manual

94

!"#=%&>?@A(BC7,/+!"005"456&'7879:2# 0D%"!E;<

! "#

3# @4 G;4#? (2$&6 ! WXY.%3#5!"5!G!4,4 GG,6! C;#C?#@* ! 5,6$&6 ! Z.%3#(2(! ,6"&3#)754'89:

G;4 GC#6"5!#5!$G!+??G 4 GG,6C?C;##@* ! 5!#5!PP) 3#$5R!(25C?5!)754' !&,?"&3####%3I) 3##4[;G;4#?"6"7())754'"&3#R#)&,?&&I&C!?

! 4 GC#64,4 GG,6G;4#?4 GC#6+??G ,I?C#?4,C&,6,$#5!?45#3#?( N#5!"5!$!5!PP G;"6"7())754'89:"&3#4 ?$!?)!

! & L66! "&3#(45&;" ,I?G; !+&! &&?!C?G#C?+&#?L&Q4, \]W^"#4 GC#65!! C?+&#?L&Q,I_I !_#) 3#$5 G;C?+&%?" ,I?3#)754'89: "&3#4 ?$!?)!

Lcd_Out(1,1,text1);Lcd_Out(2,1,text2);Delay_ms(400);S_Right(255); // Change routeDelay_ms(600);

ADC =Adc_Rd(1); // Reading sensor from right if (ADC<100) // Right sensor detects edge of table ?

flag=0; // Clear flagBackward(255);Lcd_Cmd(LCD_CLEAR); // Show LCD textLcd_Out(1,1,text1);Lcd_Out(2,1,text3);Delay_ms(400);S_Left(255); // Change routeDelay_ms(900);

forward(255); // Normal ==> Forward if (flag==0) // Check first time of LCD showing ?

flag=1;Lcd_Cmd(LCD_CLEAR); // Show LCDLcd_Out(1,1,text4);Lcd_Out(2,1,text5);

Page 95: Robo-PICA Thai Manual

95

PA!')& $,?)754'89:&BC@42':DE8

PF&C!!')&##G!)754'

PH4 GC#6! 4@4,I?+??G 4 GG,6! C;#C?#@* ! ,I?C#?27#?)754'89: %3#()5(G5!% #(2?!

PS!?)754'89:64[;) 3#6%3I! C !?#64CC !

PVBC@42':DE8%3#G5!$*&I?C@42'8F66# '8>TUVV%3# @4! !?!#?)754'89:

1234565789:;) !$*!01 !&< #$%#"-$'# 1 & 123,)) !$*!& '$*!1 & '=> 123) !$*!1)$$* %)12& !)*!#$) !$*!

Page 96: Robo-PICA Thai Manual

96

+!11#$%$& '(!!04

-1+,0/00---).')012+1-'( JH--.A(&'(*X.&)B&(&'()*++

! C !?C!%3#())754'89:C#6"&3#4!C#5!??5!G;(2+5%&!C4@&L*L

C!!P0SP_4@4 `#!G(2C#3aOCC;#C?$b,6%,C!$*C ! `; !)#Ac3#?G!C!! R,"?$b! !) L66! &!CC!! R !OC!? L6645!?a4!4#?! ( L O4,#5!?! C !?C!"?#5!??5!C5 L1 O4,#5!?C!C4,O!?&;! &I !7FH#?d!

# FG H6% HD I"456&

#J6"456&66 HDF4456& 0D"

$% $!%

Page 97: Robo-PICA Thai Manual

97

! !!" #" !"#$!%&"$'()*

$ ! !!% #"& ! !!'#" +!!"#& !"!$ ," !"!+"

( ! !!" #"% +!-+ !"#$

) ! !!'#"& ! !!'#"% +!!"#$+ !"#&," !"!+"

#K 0D" 456& "DFG J

Page 98: Robo-PICA Thai Manual

98

&*%% +,( LAO! C 7 L66! "&3#4!C,I%3Ie!( N(24,4 GG,6C14,3#

%@G! N!G! L66#?C!( L1 b)754'G; L66! "&3#4!C?( LA,I?C@IA L66"3# L66RK?A

45R!C!!?%@!!,? L1`bGK?4#? L66! "&3##?)754'( L66F%@!!

& % &&'( & (2C !) ,6 66( %3#(2ONf'(! 4,C@(G5!N;I)75

4'%6%3IC !) 3#!

&)* +, -&4"!$5! "$*!?& '#*,

&)* +, &4"!$5! "$*!?& '#*0

&)!$G!g

@!,#2$*! & '$*!#*0A##2$*! 0& '$*!#*,BC+

-

R!"5!4 !C74,4 GG,6#5!$G!%3IC!5!,6HPP &;"5!CL?C74,4 GG,6#5!$G!%3IC !5!,6PP

)D@ABC+DE

-.. !! "#$%&'()$$*&'+&&,%-'./0

123#45#6# ' !,6)754'89:&;%# '4<=>#?"#%@4# '

A!')& $,?)754'89:BC@42':DE8

F&C!!')&,I?)##G!)754'89:

H !)754'89:!!?" 5#C6C!4 $BC@42':DE8

L&Q#?)754'89:C?#"!

Page 99: Robo-PICA Thai Manual

99

!"#%&-@L+M*NO(C7,/+!"PQ2I4005"F4456&'7879:2# 0D" I"6;"<

#include <motor.h> // Motor Control library#include <adc.h> // Analog to Digital converter library

/*********** Text on LCD **************/char *text0 = "Forward Only";char *text1 = "Found Line" ;char *text2 = "On Left";char *text3 = "On Right";char *text4 = "Not Found Line";char *text5 = "Cross Number";char Cnt=0; // Counterchar txt[4]; // Save stringchar First_Time=5; // Save statusint ADC1=0,ADC2=0;void main()/* LCD Initial */

Lcd_Init(&PORTD); // Init LCD portLcd_Cmd(LCD_CURSOR_OFF); // LCD cursor offLcd_Cmd(LCD_CLEAR);

/* Sound Initial */Sound_Init(&PORTC,0);

/* Check Key Press*/Lcd_Out(1,1, "<< RA4 >> Start");Lcd_Out(2,1,"Line Tracking");while(PORTA.F4==1); // Start program when press RA4 switchwhile(1)

ADC1 =Adc_Rd(0); // Reading sensor from left ADC2 =Adc_Rd(1); // Reading sensor from right if ((ADC1<300)&&(ADC2<300)) // Check both sensors detect white

if (First_Time!=0) // Check as first time ?

First_Time=0; // Change status => Second_TimeCnt++;Lcd_Cmd(LCD_CLEAR); // Show ==> LCDLcd_Out(1,1,text5);Lcd_Out(2,1,text0);ByteToStr(Cnt,txt); // Convert counter to stringLcd_Out(1,13,txt); // Show counter ==> LCDSound_Play(250,100); // Play sound when meet the crossingForward(255); // Running RobotDelay_ms(400);

if ((ADC1>300)&&(ADC2>300)) // Check both sensor detect white area

if (First_Time!=1) // Check first time ?

First_Time=1; // Change status => Second_TimeLcd_Cmd(LCD_CLEAR); // Shcw ==> LCDLcd_Out(1,1,text4);Lcd_Out(2,1,text0);Forward(255);

Page 100: Robo-PICA Thai Manual

100

!"#%&-@L+M*NO(C7,/+!"PQ2I4005"F4456&'7879:2# 0D" I"6;<

if (ADC1<300) // Left Sensor detect black line

S_Left(255); // Turn leftif (First_Time!=2)

First_Time=2; // Clear first time statusLcd_Cmd(LCD_CLEAR); // Show ==> LCDLcd_Out(1,1,text1);Lcd_Out(2,1,text2);

if (ADC2<300) // Right sensor detect black line

S_Right(255); // Turn rightif (First_Time!=3)

First_Time=3; // Clear first time statusLcd_Cmd(LCD_CLEAR); // Show ==> LCDLcd_Out(1,1,text1);Lcd_Out(2,1,text3);

! "#

)&,?G!C?+&L&Q&; # ,6! C@42'8FG!+L(2& G;#5!"5!G!+??G 4 GG,6C?C;##@* ! ,I?C#?!?!h6$(4, 5#G; !"5!$ 66( "5!#!?#@?%3#(2(! 66!&; !4,I?"5!$ APP"5!I#!GG;!) 3##5!Ih$

GK?"6"7())754'"&3#4 ?$!?)!% #,I?C?#"!L&Q

C?5!4 GG,6%6%3I) 3#CC !,I?"L5GK? !! %@"5!4,,6KI"5! O! 6#5!%6!?&G!,I !+&! !?!$C?L&Q&;C5?C? i4@jk##!" ,I?% #,I?"6"7())754'"&3#4 ?$!?)!PF@!%3#()&!?

R!4,4 GG,6C!?_!%6%3I) 3#CC !G;"6"7())754'&I_!% #C?#"!QR!4,4 GG,6C!?!%6%3I) 3#CC !G;"6"7())754'&I!% #,I?C?#"!

L&Q4, First_Time 25(! C?+&#"!L&Q$5()! "& ')!G#65#@

$G@! ;% @6 G;C?)!G#%?" ,I?3#!$ !?!(?3#$,Ia 5!,I! C?+&L&Q( N&I_!&;!#!G#?$5,3#?G!@KI"5#!? hR!!

,6&$(2#4# '"! hCL?KI; !() !" !C,?(2(! C?+&L&Q## 3#?G!#!G !() !?!$5,

Page 101: Robo-PICA Thai Manual

101

SC@42'8F66# '"6"7#?)754'%3#())754' !?!&C,?4+&! !?!@KI

1234565789:;"!) !$*!#=*# !0()0 #$'F% =G&& !) !$*!& $%1234565789:;0 #*'&$' ,$%H %),%#()$*!=)I:J

'$2<'$*!& !0%)$,1*)*!%))K) !$*!1234565789:;%#()$, =)I:J

Page 102: Robo-PICA Thai Manual

102

Page 103: Robo-PICA Thai Manual

103

!"#" $!%&'( )*"* !"#"+,-./012304+/54 $!%( & )*6789:;*<=5>/? $!%"*$!%@*!A !&'!'#;/2B25C>DE *!##!

"#"+/54"#")*@! ! *! ;

"* FFG$!%'@(@H;6789:"*& **!&'"";#&"#"H #&*&

!"#$%$& '(

)( *)

! "#$!% &' !

Page 104: Robo-PICA Thai Manual

104

!"#$%" !"";&'! FFG$!% !I+J)*$*6#75KL#H@" &# ;&'#4 MG*#*** #@"*$!%"**H @ $!%!& !) NO456OLP##@EE&N! !*! Q*'*! $!%'*!&#R/S5N6N#*KTNLL##&%

7UKV#$!%7##&H##W*!K#X

&'#(#$#)$*$+

& $ "#"+/54* %@75KVXY&'G;!H &# ;@#$!$ZCLTZCKTZCNZC4$ >DK[\@ !"";C>DKN]^N_#! ##&#!H%`@ *!H%*!( [)#;&;&$I+J)*H@! % A *!\ #(& $"* ![#;aK

,-./ '#0$)1-)$

H@! A$!%*&# ;"#"*!"* $!%$ +,-.b012304\ ! $!%'##R/S5N6N*!&#*KTNLL##&%7UK$!%@ #&M$\%*&# ;#&** * # $ &# ;%@75KV$X

'2*"345 $!%#&ME#&HH;F#&HH;Y

'2*"346 $!%#&Mc#&HH;F#&HH;Y

'2*"347 $!%#&MD#&HH;F#&HH;Y

'2*"348 $!%#&MJ#&HH;F#&HH;Y

#'@ #&HH;F#&HH;YH@!#&&*&# ;*! #@ * &[\@ !(HQ;&'@## @ $!%#&M#&HH;FA!*#&* #$!%@ #&M#&HH;Y !" $!%#&M'*#*&

Page 105: Robo-PICA Thai Manual

105

&/9$*$+2-! /$":#%2,;<=>?@AB!&A\ ! "* !&Q )*!&

!*!&")"#![#;[\@ %"*%*&! *! &

)*#& @%VGdA\ KL#"#"$ @ "e;X #! !&Q(&A@H;$!$!%@#! H@f )*`&FFG@ [\@ ! #! &A@H;@*!\ FFG$!% !"";# *!& !FFGH;$FFG !A $!%*!A\ KL #

"*%)*@ !( & <=5>/? &A@H;@&A@6789:$!%@*!A% $gh3[\@ `&#@*!FFGiKjVGkdPX#@*!FFGA% $!@#&LVLPX%@75N* % & $ <=5>/?( & "*% )*6789:

()*+,#-! .#$%/0 #-!!)*+,

Page 106: Robo-PICA Thai Manual

106

,-1+!''! '#"%4!.4 "*#$ ""; #*@ #@

#Y @*$\ lH # $* && $* &"";&#;#; Vmn30bbho3X

'#;/2B25C>DE !&A$!%'"#"+/54@ #! $!%@ &# ;@A%*!&&# ;* $ '#;## #$* &#;#;&#;#; Vmn30bbho3-0bpmq0X[\@ #! !& [)#;&;$!&*!&

1m8b2DH;*!#)r ; @# #;#;&!*!&@)r ; @CDED FG

"%4!.4HIA7JKLM%'MN*)1$'! '#* O0N4PIA75 *FFG#;#;""; C>DK^]77s

#;#;;;#;T#;#;`( $/cLt>UuT#;#;$$!%HY%G;T#;#; $ "*%EJD #!

#'#;/2B25C>DE&A\ lH#;#;`( $/cLt>Uu @ #! !#;#;$!%"#"

YW* ! #;#;;@$/cLt>Uu#! #$#* #

VKX*$H;#/cL!$H'#*#

VNX*!#;#;*$\@$H;#@AiKjiLj"**@# >Uu+JZ #; gCu>gU ! iLj @ $!%"#"$ ( & <=5>/?@ @@AiKjiLj

V6XY#;#;@$/cLt>Uu*!&[##>Uu+#;>UuDgU

V4XY#;#; *!&[##Z>+#;>UuDgU

VdX @*#;#;$\""** @)r ; @ mn30bbho3

V^X@)r ; @ mn30bbho3#! @ ;)#;#;*!&"*#! ;#>Uu]#;>UuDgU

Page 107: Robo-PICA Thai Manual

107

#& * ! #;#;@$/cLt>Uu !! "#$%&'()$$*&'+&&,%-'./0

12#34#5# ' !,5)643'789&:%# '3;<=#>"#%?3# '

@!')& $,>)643'789

+!,-)./

void interrupt() // Interrupt Service routine

Sound_Play(250,200); // Show SoundINTCON.INTF=0; // Clear Flag Interrupt

void main()/********************************************/

ANSELH.F4=0; // RB0 ==> Digital IOOPTION_REG.INTEDG = 0; // INT falling edgeINTCON.INTE =1; // Enable INT/PB0INTCON.GIE =1; // Enable Global interrupt

/********************************************/TRISB.F3=0;Sound_Init(&PORTC,0); // Init Sound ==> RC0Lcd_Init(&PORTD); // Init LCD PORT DLcd_Cmd(LCD_CURSOR_OFF); // LCD cursor offLcd_Cmd(LCD_CLEAR);Lcd_Out(1,1, "<< RA4 >> Start");Lcd_Out(2,1,"Test Interrupt");while(PORTA.F4==1); // Start Program when Press RA4

/********************************************/Lcd_Cmd(LCD_CLEAR);Lcd_Out(1,1, "Start Program"); // Main Programwhile(1)

PORTB.F3=1; // Blinking LEDDelay_ms(500);PORTB.F3=0;Delay_ms(500);

#1(2/'345567589#:;<$". $.%0 ' '=>?+@A

!"

)&,A:,5B()3?&:,5C&,5, 2#C?31'!7=DA:?! #?3# ' ,3'EFG%HA: :$,>*I>'1,5 ?! #?3# ' ,3'%2# : !" !C,> !?C>&:4###A!*I>'1,5 ?! #?3# ' ,3'3#>"& '5?3*&#?3# ' ,3' JKL4#C#

Page 108: Robo-PICA Thai Manual

108

M , A!,FC#5C?31'7=D&C,>3! !>!

!"!# $%$&'()* +,-,.- /,0 -1 2 +,0#/. /"3//4-+5" ". 46-,.- --"78" 2 6 #0 -1 4609,/+-"/#+/+- :;< 5 :2< 3//+,0-6 #,3#-- =746"0>>?0#/. 0@+/6 @+,,/3/3 =7@ " " 46,.-

1( "#$!% &' =>..' !.BBC ' DEDF+<1G&G $.%0 ' ''

#$%&'()*+#%"#%

Page 109: Robo-PICA Thai Manual

109

Q'#RM#)1-'/ ST"$!@ "#"+/54 $!%$ &# ;%$ $!%'* H@

!A$"H@$!%'!&A*$ &# ;@* \ #! &$!@&@$!%'[ "

@$!%[ " $!%"*#! FFGvW&*!& $!%[ "# !*FFGvW `` ![\@ FFGvW@ !*!`` &!#'#U0#N2)1- 2% PVFE V & #$ %&'()*+,*-./01&),2

%$ $!%@ ! [ "*!&4&*!&

KO#@#!VS3,b3cm3X[\@ $*K#

NO#$!%'$*dT^Ts7#

6O##&H#VC,bm3.cm3X$*K#

4O#W*!VS32ocm3X$*KTKOdN#

%@756* %$ $!%'[ "@$!%@ $JEuEA iKj[\@ A&A'* Vw,m3mnx -3,x0X @#! $!%@!$JEuE iLj*!& & &K# #& "%"M1 #$!%A% "*@#@F#@'*VIScX[\@ $!%#;@ &#dT^Ts7#Y*!#*!& "W#"X[\@ !H@#&&(*H*@*$\ $!%#'*!@ ".Y21#N[\@ !$*#!A iKj *!&& !K#TKOd#N#H@* &'*$!%!&

! "

# $%

H#..B#..IJ%$

Page 110: Robo-PICA Thai Manual

110

'G;HeM@*! $!%[ "&ZDC [V5[\] F[DC ^_ V[D Z5_#&Y& $!%$ $!%[ "0# 2%[\@ Y&##&@ ! $!%*##R@ !H;#'/S5N6N*!KKLTKdLT6LLT^LLTKNLLTN4LLT47LLT_^LLK_NLL##&H@$\#""$ H&#;[\@ '"*("*YA**#*!% A\ KKdNLL##&@ *#&#$ $!%@AA**! K&

#&H#A*!@V2yyXT%V0p0nX#&H#Y*! !"##$"%!"&'%() #) #& $!%@ $*7#__RKLLKKLLKR Y&$!%#;&iKj&4#&[\@ $%* A!*H#%#H##! iLj#A!H#@@#H##! iKjH@!$!%K#;& #H#&#@ iKj&$@ # @ 4OK* #& $ #H# $!%'

#H#A%! $\` $!%$ zE/u "*`#! *'G##&H#!# &#&H#@%`$ zE/u#&H#@*$\&%@"*&iKj *& #H#*!&A!*H#&!%##&$*!#&$@ `! $!(*H*!(%! !#&&(*H*$ A*$!%@ @'*# @A*!@#$!%@ (*H*H #*&A!$!%@ #@(*H*&K##&*!&&Q*!( # H##UgU+ `` #&H#

!*N0#$M$!%'A% MG7##&H##@#!K##W*!K#&&$ $!%@ KL#A! !*#_^LL##&YA $!%*!*!&&Y&_^L#;#&A! !#H#&Y& $!%7sN#;#&

Page 111: Robo-PICA Thai Manual

111

!*N0#$M & $!%'A% MG7# #&H# #@#! K##W*!K#&&$ $!%@ KL#*# KTNLL##&

$!%K#&KtKNLL766"&

&A !""; C>DK^]77s H@"#"+/54@#Y&A*$!%#*KTNLL##&

J ./'N0N "'#"%4!.4%WRM0#0#+#'$!%"#"#! !#;#;$! & H@!A

$!%'7#@ *!"@ 75K* *$ "#;#;@$H;#/cLt>Uu@#! #<=5>/?( & "*% )*6789:

//================== Interrupt service routine INT =================//void interrupt() unsigned char i; // Keep counter if(INTCON.INTF) // Check interrupt flag RB0 (Falling edge) Delay_us(416); // Delay 1/2 bit timing(baudrate 1200 bps) for(i=0;i<8;i++) // Loop 8 time for keep data from ER-4 Remote Delay_us(833); // Delay of 1 bit timing(baudrate 1200 bps) ir_cmd = ir_cmd>>1; // Shift bit 1 time if((PORTB & 0x01)==1) // Get logic @ RB0 = '1'? ir_cmd=ir_cmd|0x80; // Inset bit data is '1' Delay_us(833); // Delay of 1 bit timing(baudrate 1200 bps) INTCON.INTF =0; // Clear interrupt flag

!"

?3 4#5 ?! #?3# ' ,3' 2#?#?3# ' ,3'EF GE>)!NE> 3NH A:)4>&!$O ::4!,5" E>)E>#>"!5&!5?3 P5?3C !) ,55# 3DD 4!,5Q@@$" ?!R&:)4>&!34#$#5?3 %2#()&14>5?3 ?3A!,F !! 3 AC#55?3#H&#4!$4!OD) 2# !#H&#4!$5,E$(3, ir_cmd &&2#5?3#4!"4!#H&A! 3"# &A" 5,F>Q5?3)4>&!#" ,F>C !) ,55?3)6&:##A! 4#5 ?! #?3# ' ,3'

# #CC.%%0 ' 'K' =>?+@A$"..B BC 'DEDF+<1

Page 112: Robo-PICA Thai Manual

112

@ @ !! "#$%&'()$$*&'+&&,%-'./0

@12#34#5# ' !,5)643'789&:%# '3;<=#>"#%?3# '

@@!')& $,>)643'789

@M3 AC#5! 12#34# :)4!>5# '"5"6#>)643'789,5ST7U+>>A H& ,5C>#?* ! @QVW3#>4(A4!$34#ST7U!A634#7=DXJKO 5 #

@Y5 A6533# #&>(:5:N4!#> 3"# &7M

@Z , )643'789A!,FC#5C?31'5 3"# &%2#C4>#H&!,>ST7U34#,5)643'789 3#>),?[!>#>B(1C4>C>3 >,53, ,5C>#?* ! #>ST7UC,>3+&! !>!

0 -1 *A A ) /, "/ &B .0"6C/#!# $%$&'()* "6C/36 +,0 D *A A ) /, ) 0C/ ) "!# $%$&'()* .6"0#6 # 9 B /.E#=6 #

@\&#>& ::(! C?31'()$&EF %2#3 AC#54! ::!>$&4!( 3"# &A:$4C!! NC4>#H&$NH3#>

+!,0)1+

char *text1 = "ER-4 Remote"; // Define messageunsigned char ir_cmd=0; // Keep Command button from ER-4 Remote

//================== Interrupt service routine INT =================//void interrupt()

unsigned char i; // Keep counterif(INTCON.INTF) // Check interrupt flag RB0 (Falling edge)

Delay_us(416); // Delay 1/2 bit timing(baudrate 1200 bps)for(i=0;i<8;i++) // Loop 8 time for keep data from ER-4 Remote

Delay_us(833); // Delay of 1 bit timing(baudrate 1200 bps)ir_cmd = ir_cmd>>1; // Shift bit 1 timeif((PORTB & 0x01)==1) // Get logic @ RB0 = '1'?

ir_cmd=ir_cmd|0x80; // Inset bit data is '1'

# 1H 2/' +567589 #:;<$". $..B BC 'DEDF+<1

Page 113: Robo-PICA Thai Manual

113

#1H2/'+567589#:;<$". $..B BC 'DEDF+<1.

Delay_us(833); // Delay of 1 bit timing(baudrate 1200 bps)INTCON.INTF =0; // Clear interrupt flag

//================== Function for get character from Remote ========//unsigned char get_remote()

unsigned char _key=ir_cmd; // Get character to bufferir_cmd=0; // Clear old datareturn(_key); // Return character from Remote

//================== Main Program ==================================//void main()

unsigned char key; // Save Remote Key PressANSELH.F4=0; // RB0 ==> Digital IOOPTION_REG.INTEDG = 0; // INT falling edgeINTCON.INTE =1; // Enable INT/PB0INTCON.GIE =1; // Enable Global interrupt

Lcd_Init(&PORTD); // Initialize LCD connected to PORTDLcd_Cmd(Lcd_CLEAR); // Clear displayLcd_Cmd(Lcd_CURSOR_OFF); // Turn cursor offLcd_Out(1, 1, text1); // Print text to LCD, 1st row, 1st columnSound_Init(&PORTC,0);while(1) // Infinite loop

key = get_remote(); // Get Remoteif(key=='a' || key=='A') // Button A press?

Lcd_Out(2, 1, "Button A Press "); // Display messageSound_Play(200,500);

else if(key=='b' || key=='B') // Button B press?

Lcd_Out(2, 1, "Button B Press "); // Display messageSound_Play(210,500);

else if(key=='c' || key=='C') // Button C press?

Lcd_Out(2, 1, "Button C Press "); // Display messageSound_Play(220,500);

else if(key=='d' || key=='D') // Button D press?

Lcd_Out(2, 1, "Button D Press "); // Display messageSound_Play(230,500);

Page 114: Robo-PICA Thai Manual

114

+!,2#$%$& '()(

M M !! "#$%&'()$$*&'+&&,%-'./0

M12#34#5# ' !,5)643'789&:%# '3;<=#>"#%?3# '

M@!')& $,>)643'789

MM3 AC#5! 12#34# :)4!>5# '"5"6#>)643'789,5ST7U+>>A H& ,5C>#?* ! @QVW3#>4(A4!$34#ST7U!A634#7=DXJKO 5 #

MY5 A6533# #&>(:5:N4!#> 3"# &7M

@Z , )643'789A!,FC#5C?31'5 3"# &%2#C4>#H&!,>ST7U34#,5)643'789 3#>),?[!>#>B(1C4>C>3 >,53, ,5C>#?* ! #>ST7UC,>3+&! "&2##>)643'

0 -1 * !# $%$&'()* /9#/

0 -1 !# $%$&'()* ! "

0 -1 ) !# $%$&'()* ! =6#

0 -1 !# $%$&'()* /3"66

Page 115: Robo-PICA Thai Manual

115

#include <motor.h>char *text = "ER-4 Remote"; // Define messageunsigned char ir_cmd=0; // Keep Command button from ER-4 Remote

//================== Interrupt service routine INT =================//void interrupt()

unsigned char i; // Keep counterif(INTCON.INTF) // Check interrupt flag RB0 (Falling edge)

Delay_us(416); // Delay 1/2 bit timing(baudrate 1200 bps) for(i=0;i<8;i++) // Loop 8 time for keep data from ER-4 Remote

Delay_us(833); // Delay of 1 bit timing(baudrate 1200 bps)ir_cmd = ir_cmd>>1; // Shitt bit 1 timeif((PORTB & 0x01)==1) // Get logic @ RB0 = '1'?

ir_cmd = ir_cmd|0x80; // Inset bit data is '1'

Delay_us(833); // Delay of 1 bit timing(baudrate 1200 bps)INTCON.INTF =0; // Clear interrupt flag

//================== Function for get character from Remote ========//unsigned char get_remote()

unsigned char _key=ir_cmd; // Get character to bufferir_cmd=0; // Clear old datareturn(_key); // Return character from Remote

//================== Main Program ==================================//void main()

ANSELH.F4=0; // RB0 ==> Digital IOOPTION_REG.INTEDG = 0; // INT falling edgeINTCON.INTE =1; // Enable INT/PB0INTCON.GIE =1; // Enable Global interrupt

Lcd_Init(&PORTD); // Initialize LCD connected to PORTDLcd_Cmd(Lcd_CLEAR); // Clear displayLcd_Cmd(Lcd_CURSOR_OFF); // Turn cursor offLcd_Out(1, 1, text); // Print text to LCD, 2nd row, 1st columnSound_Init(&PORTC,0);Sound_Play(250,400);while(1) // Infinite loop

char key=get_remote(); // Get Remoteif((key=='a')||(key=='A')) // Button A press? Backward(255);Delay_ms(50); else if((key=='b')||(key=='B')) // Button B press? S_Right(255);Delay_ms(50); else if((key=='c')||(key=='C')) // Button C press?

#12/'6LD56=D589#:;<$"." GBC 'DEDF+<10M:CG !.B %/0

Page 116: Robo-PICA Thai Manual

116

#12/'6LD56=D589#:;<$"." GBC 'DEDF+<10M:CG !.B %/0 .

S_Left(255);Delay_ms(50); else if((key=='d')||(key=='D')) // Button D press? Forward(255);Delay_ms(50);else Motor_Stop();

!"

3"# &7MC?31' M3,!>3 !)4>$)!:CC !) ,5! ,5"&2#)643'()"&2#$!>)!N#)&,>&FG!&:&F!$&,>,F2#$" "# &&# '#4!"4!A! 3"# &$"4!#>C?31'3 >3!>2#$ !)]A: !! "5"6())643'789"&2#3! H55#>C?31'5 3"# &

( ! (1 4#5 ?! #?3# ' ,3'A!!%# '37=DXJK%2# ,5#H&#6 Q5?3A! 3"# &A!,F !!3 AC#54! O#H&(A!*I>'1,get_remote() %2# !$ 554!O3,#,^ _=_) 2#%2# !$ *I>'1,! ,5"&2#)643'($*&'$&5 ! `.