Upload
ronat
View
166
Download
1
Embed Size (px)
DESCRIPTION
코드비전을 사용한 ATMega128 (5 관절 로봇 ) 작동 방법. 5 관절 로봇의 특징. 관절 개수 : 5 개 ATMega128 의 다양한 레지스트리 중 3 개의 레지스트리를 사용하여 관절 조정 관절 조정 레지스트리 타이머 레지스트리 USB 송수신 레지스트리. 5 관절 로봇 장치 구성. 전원연결부. 전원 코드 ( 온 되어 있어야 함 ). P O R T B. 프린터 연결 포트. U S B 포트. 코드비전 AVR 사용 방법. 코드비전 AVR 실행 File - New. - PowerPoint PPT Presentation
Citation preview
코드비전을 사용한 ATMega128
(5 관절 로봇 ) 작동 방법
5 관절 로봇의 특징
관절 개수 : 5 개
ATMega128 의 다양한 레지스트리 중 3개의 레지스트리를 사용하여 관절 조정 관절 조정 레지스트리 타이머 레지스트리 USB 송수신 레지스트리
5 관절 로봇 장치 구성전원연결부
PORTB
프린터
연결포트
전원 코드( 온 되어 있어야
함 )
USB
포트
코드비전 AVR 사용 방법
코드비전 AVR 실행 File - New
코드비전 AVR 사용 방법
Project 선택 ( 소스 .. 아님 ..)
코드 위저드 마법사 사용 Yes 체크
코드비전 AVR 사용 방법
Chip = Atmega128 선택
코드비전 AVR 사용 방법
PORT 는 PORTB 로 체크 DATA DIRECTION 은 모든
BIT 를 OUT 으로 체크
코드비전 AVR 사용 방법
PORT 는 PORTB 로 체크 DATA DIRECTION 은 모든
BIT 를 OUT 으로 체크
코드비전 AVR 사용 방법
USART1 의 송수신 모드를 그림과 같이 체크
이 설정은 USB 를 통한 로봇과 컴퓨터 사이의 데이터 교환을 위함
코드비전 AVR 사용 방법
타이머 설정 Clock Source 와 Value
값을 설정 가능함 Value 값은 C 코드
내에서도 동적으로 설정 가능
코드비전 AVR 사용 방법
구성 완료 File – Generate, save
and exit 클릭
코드비전 AVR 사용 방법
코드 저장 총 3 개의
파일을 저장함
코드비전 AVR 사용 방법 로봇 프로그래밍 c 코드 작성
코드비전 AVR 사용 방법 Compile, Make 를 통한 에러 검출
코드비전 AVR 사용 방법 롬 기록 세팅 확인 (Setting –
Programmer) AVR Chip Programmer Type = Kanda… Printer Port : 장치 관리자 참조 ATmega169 CK… 체크
코드비전 AVR 사용 방법 Run the chip progammer 클릭
Tools – Chip programmer, 바로가기 클릭 .. 등
코드비전 AVR 사용 방법
칩 확인 ATmega128 인지
확인
코드비전 AVR 사용 방법
기존의 롬에 저장된 내용 삭제 Program – Erase
Chip
코드비전 AVR 사용 방법
작성한 코드 롬에 삽입 Program – FLASH
코드비전 AVR 사용 방법
주의사항 프린트 포트를 통해 로봇과 컴퓨터가 연결되어
있어야 함 로봇의 전원이 연결되어 있어야 함 프린터 포트 옆에 위치한 2 개의 빨간 사각형
( 프린터 포트 전원 연결부라 함 ) 스위치가 모두 위로 올려져 있어야 함
코드비전 AVR 코드 작성
코드 위저드를 사용하였을 때의 기본 코드 ATmega128 레지스트리 관련 api 임포트
(#include <mega128.h>) 레지스트리 정의 (#define)
PORTB 관련 레지스트리 선언 Usb 송수신을 위한 함수 정의
char getchar1(void) { } : 데이터 출력void putchar1(char c) { } : 데이터 입력
Main 함수 (void main)PORTB 함수 데이터 삽입됨 ( 코드 자동 완성 )메인 함수 내에 실제 작동되는 코드 입력
코드비전 AVR 코드 작성
실제 코드 작성 방법 Void main 내의 while (1) { } 내에 작성함 변수는 메인 함수 내부에 전역 변수로 설정 가능 While 문의 조건을 변화시키면서 조작 가능함
Chat i = 1;While (i) {.. 내부에 조건을 걸어 i 를 0 으로 바꿀
수 있음 } 메인 함수 내에 While 문을 여러 개
사용함으로써 순차적 처리가 가능할 것으로 생각됨
코드비전 AVR 코드 작성
주의사항 아트메가 128 칩은 LCD 디스플레이 , 카운트
등 매우 다양한 레지스트리로 구성되어 있으며 현재 우리가 사용하는 5 관절 로봇은 이 중 PORTB 레지스트리의 0~5 번 레지스트리만 사용함
그 외 사용하는 레지스트리는 USB 송수신 레지스트리 , 타이머 레지스트리로 제한됨
코드 위저드를 사용하였을 때 나타나는 수많은 레지스트리들 중 위에서 제시된 레지스트리가 무엇인지 알아내는 것이 중요함
코드비전 AVR 코드 작성
PORTB 와 관련된 레지스트리 PORTB : 포트 B 를 나타내는 레지스트리 사용 방법
PORTB.0 ( 포트 B 의 0 번 레지스트리 )PORTB.1 ( 포트 B 의 1 번 레지스트리 )..0 번 ~4 번까지 총 5 개의 하위 레지스트리 사용
가능 로봇 조작을 위해 반드시 !!! #include
<delay.h> 를 선언해야 함