목차 1부. 보드 운영체제와 MCU 보드의 포트 2부. 전압과 전류 그리고 모터 드라이버 3부. 초음파 센서 4부. BOS Script 프로그래밍 5부. W2R -1 소개

Similar documents
<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

RVC Robot Vaccum Cleaner

PowerPoint 프레젠테이션

(SW3704) Gingerbread Source Build & Working Guide

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

BMP 파일 처리

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

PowerPoint 프레젠테이션

Raspberry Pi 입출력디바이스 II 1 제 05 강 입출력디바이스 II 터치스위치자석스위치움직임감지센서부저모듈 LED Array RGB LED 릴레이모듈초음파센서 ( 거리측정 ) 적외선센서및리모콘 ( 미작성 )

CAN-fly Quick Manual

API 매뉴얼

OSTSen-MOS100 사용자설명서 Ver 1.1 Onsystech OSTSen-MOS100 Ver of 8 Onsystech

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

lecture4(6.범용IO).hwp

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

목차 1. 키패드 (KeyPAD) 2. KeyPAD 를이용한비밀번호입력기

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - es-arduino-lecture-03

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

COMFILE_VOL13_ cdr

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

슬라이드 1

[8051] 강의자료.PDF

Microsoft Word - PEB08_USER_GUIDE.doc

고급 프로그래밍 설계

Microsoft PowerPoint - chap04-연산자.pptx

OSTSen-THL100 사용자설명서 Ver 1.1 Onsystech OSTSen-THL100 Ver1.1 1 of 8 Onsystech

Microsoft Word - AM-SLCD_시리얼 LCD_ 메뉴얼.doc

윈도우즈프로그래밍(1)

Formatvorlage für Arbeitsanweisungen

KEY 디바이스 드라이버

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

105È£4fš

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

hlogin2

untitled

뉴티씨 (NEWTC) 2. FB-CY4E-DEV (FPGA 개발 키트) 구성도 Port Select SW 7 Segment Text LCD UART RS-232C JTAG PORTA (5V) Active Serial PORTB (5V) OSC. 50MHz Analog

untitled

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

목 록( 目 錄 )

02-1기록도전( )

03-1영역형( )

Lab 3. 실습문제 (Single linked list)_해답.hwp

Microsoft Word doc

ez-md+_manual01

歯9장.PDF

밝은세상 10호 내지 0625

The Pocket Guide to TCP/IP Sockets: C Version

Mango-E-Toi Board Developer Manual

IoT FND8 7-SEGMENT api

1_12-53(김동희)_.hwp

2009년2학기 임베디드시스템 응용

DSP_MON 프로그램 메뉴얼

Microsoft PowerPoint APUE(Intro).ppt

Microsoft Word - SMB-63-2_KR_.doc

슬라이드 1

CONTENTS 1. Approval Revision Record Scope Numbering of product Product Part No Lot. No Absolu

PowerPoint 프레젠테이션


untitled

DWCOM15/17_manual

KARAAUTO_4¿ù.qxd-ÀÌÆå.ps, page Normalize

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");


untitled

COVER.HWP

이슈분석 2000 Vol.1

가볍게읽는-내지-1-2

한눈에-아세안 내지-1

kbs_thesis.hwp


슬라이드 1

금오공대 컴퓨터공학전공 강의자료

PowerPoint 프레젠테이션

Microsoft Word - MSOffice_WPS_analysis.doc

<4A4B49542D D312DBBE7BFEBC0DABCB3B8EDBCAD2E646F63>

Microsoft Word - DCMD-1000 사용자 메뉴얼.docx

UI TASK & KEY EVENT

Microsoft PowerPoint - chap05-제어문.pptx

BY-FDP-4-70.hwp

Formatvorlage für Arbeitsanweisungen

Microsoft Word - MV210_CPUSpec.doc

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint UNIX Shell.ppt

Microsoft Word - DTM-M300_Spec_V1_0.doc

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

1. 제품소개 그림. 1.1 이란? DC 모터구동시하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 입니다. 또한당사 DEV 보드와 1P 점퍼클립케이블을이용하여연동이가능하며, 산업용 DC 모터의정회전, 역회전구동및속도제어시유용하게사용되는 입니다.

Microsoft PowerPoint 웹 연동 기술.pptx

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

Java ...

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Transcription:

보스프로그램 언어 및 키트 활용에 관한 교육용 ppt (3차 수정)

목차 1부. 보드 운영체제와 MCU 보드의 포트 2부. 전압과 전류 그리고 모터 드라이버 3부. 초음파 센서 4부. BOS Script 프로그래밍 5부. W2R -1 소개

1부. 보드 운영 체제 와 MCU 보드의 포트

1-1.보드 운영 체제 (BOS :Board Operating System) 임베디드 보드를 위한 운영 체제 ( vs DOS : Disk Operating System ) 코어프로그램, 명령어처리기, 파일시스템 으로 구성 스크립트 파일을 카피 혹은 다운로드. 스크립트 파일을 명령어 처리기가 로드 하고 실행

1-2 핀(Pin)과 포트(Port) 전원 핀 (VCC, GND) 핀(Pin) = 한가닥의 선. 시리얼 통신 핀 (UART) 일반 목적 입출력(GPIO) General Purpose Input / Output Pins 포트(Port) = 항구... 이런 핀들을 모아 놓은 것. PORTA ( 16 Pins ) PORTB ( 16 Pins )

1-3 메인보드의 외부 PORT-M/T 외부 포트 M 외부 포트 T 녹색 LED : $portc 0번째 bit PC0

1-4 GPIO PORTC의 Pin0 제어 전압 3.3V 전압 0V $portc = 0x0001 혹은, setbit $portc 0 setbit $portc 0 3.3V GND PC0 미션 1. LED를 꺼보자. resetbit $portc 0 Q. PC0 모터 GND를 연결하면 작동할까? 녹색 LED : 켜짐

2부. 전압과 전류 그리고 모터 드라이버

2-1 전압과 전류의 개념 전압 (V) : 단위 : V (볼트) 전류 (I) : 단위 : A (암페아) 전력 (P) = I*V 물 물 높이 = 전압 (V:볼트) 순간적으로 흐르는 물의 양 (전류 - A:암페아) 높이 = 전압 (V:볼트)

2-2 MCU의 GPIO포트의 전류와 배터리 전류 MCU GPIO Pin BAT 3.3V GPIO핀의 출력 전류는 작다(수십mA) 수 ~ 수십mA 3.3V 배터리가 순간적으로 쏟아낼 수 전류는 크다 (수백mA) 수백 ma

2-3 MCU의 GPIO포트의 전류와 배터리 전류 MCU GPIO Pin BAT 3.3V GPIO핀의 출력 전류는 작다(수십mA) 수 ~ 수십mA 3.3V 배터리가 순간적으로 쏟아낼 수 전류는 크다 (수백mA) 수백 ma

2-4 모터 드라이버 보드 (DRV 8833) GPIO핀의 출력 전류는 작다(수십mA) BATT: 4.5V GPIO 포트 제어 H- Bridge 모터 드라이브 칩 (DRV 8833)

2-5 모터 드라이버 보드 제어 PortC 4,5,6,7 PortC:0000 0000 0101 0000 => 0x0050 (Forward) (2) (1)

2-6 모터 드라이버 작동 실습 미션 1. 두 바퀴를 모두 전진 시켜 보자 $portc = 0x50 ( 0101 ) 미션 2. 두 바퀴를 모두 후진 시켜 보자 $portc = 0xA0 ( 1010 ) 미션 3. 로봇을 왼쪽으로 회전 시켜 보자 (오른쪽바퀴만 구동) $portc = 0x10 ( 0001 ) 미션 4. 로봇을 오른쪽으로 회전 시켜 보자 (왼쪽 바퀴만 구동) $portc = 0x40 ( 0100 ) 미션 5. 로봇을 왼쪽으로 회전시켜 보자 (두바퀴 다 구동) $portc = 0x90 ( 1001 ) 미션 6. 로봇을 오른쪽으로 회전 시켜 보자 (두바퀴 다 구동) $portc = 0x60 ( 0110 )

3부. 초음파 센서

그림: http://www.devicemart.co.kr/ NT-TS601 초음파 센서 참조 3-1 초음파 센서 Trigger Trigger Echo Echo 물 체 Trigger -Echo 시간 짧다 (가깝다) 물 체 Burst Pulse Trigger -Echo 시간 길다 (멀다)

3-2 초음파 센서 사용 초음파 거리 환산 공식 리턴값 = 거리(cm) * 20 +10 ex> 50 = 2cm ( 최소 인식거리) 90 = 4cm 170 = 8cm 330 = 16cm 주) 초음파는 오차가 5-10%정도 발생합니다. VCC5 GND PA0 PA1 : : : : VCC (1) GND (4) Trigger (2) Echo (3) Trig Echo 외부 포트 T $x = usonic $porta 0 1 Print $x

3-3 초음파 센서 작동 실습 미션 1. 초음파 센서 의 값을 읽어 프린트(println) 해보자. $x = usonic $porta 0 1 Print $x 미션 2. 초음파 센서의 값을 찍어보니, 한번만 찍힌다. 프로그램을 짜서 계속 값을 확인해 볼 수는 없을까? => 이후 스크립트 제어문 학습 (loop_start loop_end)

4부. BOS Script 프로그래밍

4-1 보스 스크립트 문법 변수 : $a~$z 처럼 '$'로 시작 키워드: #if 함수: print 처럼 영문으로 시작. #then 처럼 '#'로 시작 ex1.변수사용 예 $x=10 $y=20 $z=$x+$y Print $z ex2.포트 변수 $portc=1 ex3.16진수 사용 $portc=0x00ff

4-2 보스 스크립트 문법 - 제어문 판단문 : #if ~ #then ~ #endif 반복문 : #loop_start ~ #loop_end, #break 호출문 : #call, #function, #return ex1.판단문 ex2.반복문 $x = usonic porta 0 1 #if $x<300 #then Print 장애물 #else Print 길 #endif $x<300 '참' Print 장애물 '거짓' Print 길 $x =0 #loop_start $x = usonic porta 0 1 Print $x #if $x > 100 #then #break #endif #loop_end ex3.호출문 $x = 10 #call x_pow Print $x #quit #function x_pow $x = $x * $x #return

4-3 보스 스크립트 함수 포트제어: setbit, resetbit, getbit 입출력 : print, println, putch, printx, printxln, getch 초음파 센서 : usonic 아날로그 입출력 : readadc / writeadc LCD 제어 : lcddata, lcdcmd 문자열 : strcmp, strncmp 파일관련 : fopen, fclose, fread, fwrite 시간 : clock, clockset, delay Delay 함수의 시간 1sec = 500000 ex> delay 50000 => 100ms 딜레이 ex> #define SEC 500000 $d = SEC * 3 delay $d => 3초 딜레이 SPI : spisend, spiinit 자세한 함수 설명은 http://www.boardos.co.kr/manual.html 참고

4-4 시계 프로그램 실습 0:0:0 0:0:1 0:0:2 12:32:58 12:32:59 12:33:00 // // // // =============================== BOS Script Sample Clock code =============================== #loop_start $t = clock $h = $t / 3600 $m = $t % 3600 $m = $m / 60 $s = $t % 60 //-------------------println $h ":" $m ":" $s //--------------------#loop_end #quit 주) clock함수는 부팅 이후 지나간 '초'(sec)를 반환합니다.

// // // // 4-5 구구단 프로그램 실습 $x $y $z =============================== BOS Script Sample GuGuDan 구구단 =============================== $x =1 한 단 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9 2*2=4 2*3=6 2*4=8...... 8*8=64 8*9=72 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 #loop_start $y=1 1단 ~ 9단 ($x) 한단 수행 #loop_start $y = $y+1 $z = $x * $y PRINTLN $x "*" $y "=" $z #if $y >= 9 #then #break #endif #loop_end $x = $x+1 #if $x >=10 #then #break #endif #loop_end #quit

4-6 스크립트 파일 다운로드 방법 1) 메모장으로 스크립트 프로그램을 작성한후 test.sc로 저장합니다. (마지막 글자 입력후, 반드시 '엔터'키를 입력해야 합니다.! -줄바꿈) 2) [BOS] down test.sc 를 입력합니다. 3) 파일 전송 Xmodem Send를 누르고 전송할 파일( test.sc)을 선택하고 Open합니다. 4) [BOS] file 명령어로 파일이 생성되었는지 확인합니다.

4-7 유용한 BOS 명령어 1. 파일시스템 포맷하기 [BOS]format => 파일시스템에 문제가 없는 이상 명령을 수행할 필요가 없습니다. 2.기본적인 명령 스크립트 생성하기 [BOS]bscgen => 명령을 수행하면 아래 4개의 기본적인 스크립트 파일이 생성됩니다. 이미 생성되어 있을 경우 역시 수행할 필요가 없습니다. led.sc 422Bytes cat.sc 540Bytes time.sc 258Bytes speedtest.sc 562Bytes 3.파일 보기 [BOS] file 4. 파일의 내용 보기 [BOS] cat test.sc 5. 파일 삭제하기 [BOS]del test.sc 주) cat 명령어는 cat.sc라는 파일이 있어야 합니다.

4-8 autoexec.sc 파일 1. BOS 파일 중 autoexec.sc 라는 파일이 있을 경우 BOS는 부팅 후 이 스크립트를 자동으로 수행합니다. 자동으로 수행되길 원하는 스크립트가 있을 경우 다운 받을 때 다음과 같이 수행합니다. [BOS] down autoexec.sc 2. autoexec.sc 파일은 부팅 후 약 4초 이후에 수행됩니다. 3. autoexec.sc 가 수행되기를 원치 않는 경우, 부팅 후 4초 이내에 한 글자를 치면 [엔터]를 입력하면, autoexec.sc 는 수행되지 않습니다. ex> a[엔터] 4. autoexec.sc 를 완전히 삭제하기 위해서는 del 명령을 사용합니다. ex>[bos] del autoexec.sc

5부. W2R 1 소개

5-1 BOS W2R 1 (Board OS Wheel 2 Robot -1) * STM32F103VET MPU - 512K Flash. Max 72Mhz 작동 - BOS 적용 ( BOS Script 프로그래밍 구동 가능) * DRV8833 2채널 H-Bridge 모터 드라이버 - 전진. 후진. 좌/우 회전. * 4.5V (1.5V 건전지 3개) 구동 - 프로세서 및 모터 전원. * 견고한 바디 및 90 % 이상 볼트 / 너트 체결 구조. 임베디드 시스템 학습 - MPU / GPIO / LED - 모터드라이버 / 전압과 전류 - 초음파 센서 BOS 스크립트 언어는... PC 프로그래밍 - 간단한 스크립트 - 논리의 이해 - 기본적인 제어흐름 구동 로봇에 적용 - 자신만의 로봇 - 논리의 오류/실수 - 학습의 흥미 1. 기본적인 프로그래밍 언어의 요소를 갖추고 있습니다. 2. 별도의 개발환경이나, 컴파일 과정등이 필요없습니다. (text 실행 인터프리터) 3. 임베디드 시스템에 사용이 쉽도록 개발되었습니다.

5-2 BOS W2R 1 구동을 위한 BOS Script 예(1) 1.W2R 전진 $porta = 0x50 2.W2R 전진/후진 반복 #loop_start $porta = 0x50 Delay 1000 $porta = 0xA0 Delay 1000 #loop_end 3. 녹색 LED 켜기 Setbit $portc 0

5-3 BOS W2R 1 구동을 위한 BOS Script 예(2) 4.초음파 센서 입력 6. 기본적인 회피 주행 프로그램 $x = usonic $porta 0 1 Println $x #loop_start $x = usonic $porta 0 1 5.비교 / 판단 문 #if $x < 300 #then Println 장애물 #else Println 길 #endif #if $x < 300 #then $porta = 0x10 // left #else $porta = 0x50 // forward #endif #loop_end

5-4 BOS W2R 1 구동을 위한 BOS Script 예(2) 7. 좌/우 회피하며 진행하는 로봇 #define #define #define #define $d = 0 GO_LEFT 0x0010 GO_RIGHT 0x0040 GO_STRAIGHT 0x0050 MILI_SEC 100000 // turn dir #loop_start $x = usonic $porta 0 1 #if $x < 300 #then #if $d == 0 #then $portc = GO_LEFT #call till_way_on $d = 1 #else $portc = GO_RIGHT #call till_way_on $d = 0 #endif #else $portc =GO_STRAIGHT #endif delay MILI_SEC #loop_end //---------------------// usonic Sub routine // wait until way on //---------------------#function till_way_on #loop_start $x = usonic $porta 0 #if $x > 300 #then #break #endif #loop_end #return 1

5-5 BOS W2R 1 에 추가 장착 가능한 모듈들..