Robotics_신입생_세미나

Download Report

Transcript Robotics_신입생_세미나

Robotics 신입생 세미나
-로봇 축구바디 사용설명서-
신입생 성지웅
Before you use
본 제품은 Beta버전 임으로
사용상의 약간의 문제가 발생할
가능성이 상당히 높음을 사전 유
의하시기 바랍니다.
Contents

- 로봇축구바디 사용 설명서
(1)
(2)
(3)
(4)
(5)
(6)
축구바디란?
구성품
작동원리
사용법
추후 Update될 것
소스 File
로봇축구바디란?
-
본 본체는 과거에 사
용되었던 본체를 재활
용 하여 만들었음.
-
제품 해부
-LM2575(모터드라이브)
-L298N(레귤레이터)
-ATmega128
-7.2v bettery
구성품 #1
- LM2575(레귤레이터)
-
(안호윤ppt 참조 할것)
구성품 #2
-
L298N 모터 드라이버
-
Enable A : VCC에 연결한다.
(이유 : Input제어 위해)
-
Input 1,2 : Atmega128에 연결
(이것이 방향을 결정하
는데 왼쪽 오른쪽 및
속도를 제어한다.)
-
Output 1,2 : 모터의 두 단자에 연결
(값 전달 목적)
-
Enable B, Input 3,4, Output 3,4역
시 동일한 방법으로 또 다른 모터에 연
결할 것
구성품 #3
-
별매품 스위치
-
별매품 스위치는 채터링(전자 회로 내
의 스위치나 접점이 붙거나 떨어질 때
기계적인 진동에 의해 실제로는 매우 짧
은 시간 안에 접점이 붙었다가 떨어지는
것을 반복하는 현상)을 방지하는 기술이
사용되었음을 유의할 것.
VCC
작동 원리
7.2V투입!
조종시작!
작동!
사용법
-
Let’s play!
- 조종기로
조종
하시면 알아서
굴러갑니다.
-
이제 당신만의 골 넣기 대장정 시작해보
세요.
추후 Update 될것
-
보완점
-
제작자가 타 소유자의 Bluetooth Module
을 망가트린 관계로 아직 원격통신이 완벽하
게 이루어지지 않는 상태임. 이 부분에서 재
정적 지원 要
-
그것을 대체하기 위해 엄청나게 긴 줄을 사용
하였으나 그것이 화근이 되어 자동차가 줄의
무게를 이기지 못하는 경우가 수도 없이 발생
한다. 그래서 위에서 줄을 잡아주지 않으면
안된다.
-
위에서 잡아주다 보니 팔도 아프고 임시방편
으로 연결하였던 코드가 접촉불량이 생겨
Staff들이 상당히 곤혹스러웠다.
-
옆의 사진은 불상사가 일어나는 모습
(사진에 나온사람은 아무 관련 없는 사람이라
모자이크처리 하였음)
대망의 Source File
{
DDRA_Bit0
DDRA_Bit1
DDRA_Bit2
DDRA_Bit3
=
=
=
=
0;
0;
0;
0;
DDRA_Bit4
DDRA_Bit5
#include <iom128.h>
DDRA_Bit6
#include <ina90.h>
DDRA_Bit7
=
=
=
=
1;
1;
1;
1;
-
-
-
-
-
void
void
void
void
void
Forward();
Left();
Right();
Back();
Stop();
-
void main()
{
{
-
-
-
-
-
-
-
DDRA = 0x00;
DDRE = 0xff;
-
-
-
-
DDRB = 0xff;
PORTE = 0xff;
}
PORTA = 0xff;
- }
- else if(PINA_Bit3 == 0)
- {
Right();
- }
- else
- {
Stop();
- }
- }
- }
-}
-void Stop()
-{
-//PWM--------------- -TCCR1A = 0xA3; //
-TCCR1B = 0x0C; //
-// PWM
-OCR1AH = 0x00;
-OCR1AL = 0; // Left //
-OCR1BH = 0x00;
-OCR1BL = 0; // Right//-
for(;;)
{
if(PINA == 0xfe)
{
Forward();
}
else if(PINA_Bit1 == 0)
{
-PORTB=0x00; // enable
-PORTE=0x14;
Left();
-}
}
else if(PINA_Bit2 == 0)
{
-void Back()
Back();
-{
-//PWM---------------TCCR1A = 0xA3; //
-
TCCR1B = 0x0C; //
// PWM
OCR1AH = 0x00;
OCR1AL = 140; // Left // OCR1BH = 0x00;
OCR1BL = 140; // Right// -
PORTB=0xff; // enable
PORTE=0x14;
-
//swich
PINA = 0x00;
}
void Left()
{
TCCR1A = 0xA3; //
TCCR1B = 0x0C; //
// PWM
OCR1AH = 0x00;
OCR1AL = 140; // Left //
OCR1BH = 0x00;
OCR1BL = 140; // Right//
-
PORTB=0xff; // enable
PORTE=0x24;
-
void Right()
{
TCCR1A = 0xA3; //
TCCR1B = 0x0C; //
// PWM
OCR1AH = 0x00;
OCR1AL = 140; // Left // OCR1BH = 0x00;
OCR1BL = 140; // Right// -
PORTB=0xff; // enable
PORTE=0x18;
//swich
PINA = 0x04;
}
//swich
PINA = 0x01;
}
void Forward()
{
TCCR1A = 0xA3; //
TCCR1B = 0x0C; //
// PWM
OCR1AH = 0x00;
OCR1AL = 140; // Left //
OCR1BH = 0x00;
OCR1BL = 140; // Right//
-
PORTB=0xff; // enable
PORTE=0x28;
-
}
여기서 잠깐!!
-
소스에 나온 PWM방식이란?
-PWM방식이라는 것은 일반적으로 펄스
값을 변조하는것을 말합니다. 펄스 값을
변환한다는 것은 일정한 분주비 안에서
High값과 Low값을 달리하여 출력을 제
어하는 방식입니다. 결과적으로는 모터
가 펄스값의 평균 전압에 의해 구동되며,
반도체의 극히 미약한 내부저항에 의한
열 손실만으로 모터의 속도를 제어할 수
있게 됩니다.
질문받아요!
끄읕~
대낮까지 자고 밤샘
작업하는
약간은 괴짜같은 로틱형
인간의 전형적인 모습
이 있었기에 비록
처음이라 미흡하지만
작품이 나오지 않았나
싶습니다. ^^
로틱 파이팅!!!!!!