Download presentation
Presentation is loading. Please wait.
1
2013 스마트 컨트롤러 중간 프로젝트 김성엽 진종영 조유진
Optimus Dragoon 2013 스마트 컨트롤러 중간 프로젝트 김성엽 진종영 조유진
2
개요 4족 보행 로봇, RC카 구현 Blizzard 사의 스타크래프트에서 모티브를 따옴 블루투스 모듈을 이용한 기기와의 통신
Servo 모터를 활용한 움직임 제어 관절 제어, 바퀴 제어
3
제어 AVR을 이용한 서보 모터 제어
4
기본 구성 3단 기어 4족 모드 속도 제어 자동차 모드 변경되면 상태를 알림 부저 및 LED 알림! 상태 알림
5
서보 모터 Dynamixel AX-12 주요 특징
감속기, Driver, Control Unit 및 Network기능까지 일체형으로 구성 되어 있는 Module형 Smart Actuator임 패킷을 통해 제어 현재 상태 값을 받는 것도 가능 바퀴 모드와 관절모드의 두 방법으로 작동 Half duplex Asynchronous Serial Communication (8bit, 1stop, No Parity) TTL Level Multi Drop
6
관절 & 바퀴 모드 관절 모드 바퀴 모드 0 ˚ ~ 300 ˚(0x3FF) 까지 움직임 무한 회전 0또는 1024
각도를 설정하여 사용 가능 무한 회전 0또는 1024 멈춤 1 ~ 1023 정방향 회전 1025 ~ 2046 역방향 회전 숫자가 클 수록 속도 증가
7
Dynamixel AX-12 제어 패킷 모터가 동작하기 위해서는 제어 패킷을 보드와 모듈 사이에 UART로 전송해야 한다.
패킷의 구조는 아래와 같음 ( 명령어나 Parameter에 대한 상세 정보는 제작사에서 제공하는 pdf문서를 참조) 0xFF ID Length Instruction Parameter 1 Parameter N … Checksum 시작을 알림 Instruction의 추가 정보 명령어를 전송할 ID (ServoMotor 전체에 보내는 Broadcast는 0xFE) 지시 명령 ~( ID + Length + Instruction + Parameter1 + … Parameter N ) 패킷의 길이 (Parameter 개수 + 2)
8
패킷 전송 USART 0 설정 USART 0의 Tx핀을 서보 모터의 Data 핀에 연결
Dynamixel은 8 bit, 1 Stop bit, None Parity의 Asynchronous Serial 통신 USART 0의 Tx핀을 서보 모터의 Data 핀에 연결 패킷을 전송하여 각도 등 움직임을 셋팅 및 실행
9
각도 계산 최소값 0 ˚ 최대값 300 ˚(0x3FF, 1023) 300 ˚ 가 1023에 대응하므로 원하는 각도대로 움직이려면 알맞은 값을 구해내야 함 unsigned int Angle_to_Value(unsigned int uiAngle) { uiAngle = ((long)1023*(long)uiAngle)/300; return uiAngle; }
10
4족 보행 알고리즘 사람이 걷는 원리를 이용하여 이동
11
자동차 모드 알고리즘 본체의 다리 끝의 바퀴를 이용하여 이동 모터의 각도를 제어하여 방향제어 가능
12
회로 전원/제어 회로 구성
13
회로 구성 전원 부 전원을 공급하는 회로 제어 부 제어를 위한 회로 포트와 릴레이가 연결되어 있음
14
전원 회로 모터의 동작 전압 9~12V와 보드 동작 전압 5V 레귤레이터 서로 전압이 다르므로 각각에 맞게 맞춰주어야 함
높은 전압을 낮은 전압이 되도록 낮춰주는 역할
15
전원 부 회로 사진 3.3V 레귤레이터 블루투스 모듈 및 상태 LED 전원 스위치 5V 레귤레이터
콘덴서 RxTx, 5V, GND
16
제어 회로 AVR LED + 릴레이 USART ADC ATmega2560을 장착 전원 부에서 5V를 공급받아 작동
서보 모터 제어를 위한 USART0 Tx 블루투스 데이터 송신(AT Command)을 위한 USART1 Tx 블루투스 데이터 수신(제어 프로그램에서 송신)되는 값을 받는 USART1 Rx ADC 조도 센서와 연결됨 다른 센서나 부품을 연결해 이용 가능
17
제어 부 회로 사진 모터 제어용 Tx PORTC와 연결된 릴레이 ADC 센서 5V 전원공급 기어 상태 표시 장치
LED 장식(눈)
18
통신 블루투스 안드로이드 앱 블루투스 모듈 제어
19
개발 개요 기본 목표는 Bluetooth 장치에 값을 송수신하여 조종할 수 있도록 함
거의 누구나 편하게 사용할 수 있고, 재사용이 가능하도록 함 통신!
20
Android 어플리케이션 사용 기능 사용된 파일 목표 Android API를 통한 Bluetooth SPP 통신
Source(Java 파일) 9개, Layout(XML 파일) 6개 목표 버튼을 클릭하거나 터치할 때 값을 전송 조도 센서 등의 값을 수신해 화면에 출력 기기 정보를 알아냄
21
화면(1)
22
화면(2) 게임기 조이스틱에서 모티브를 따옴
23
통신 절차 기본적으로 안드로이드에서 API를 통해 통신 방법을 제공함 통신 방법은 기존의 TCP/IP와 매우 유사함
(Bluetooth로 시작하는 클래스들) 통신 방법은 기존의 TCP/IP와 매우 유사함 연결 시 connect(), 종료 시 close() write()함수와 read()함수를 이용함 장치 검색→연결→데이터 송수신→연결 종료 장치와 연결을 좀 더 효율적으로 사용 Singleton 패턴을 이용하여 단일 객체 매니저 클래스를 생성함
24
Android App 주요 클래스 블루투스 관리 액티비티(화면) 블루투스 장치를 관리하며, 수신된 값이 들어 있음
BluetoothManager 블루투스 수신 데이터를 UI에 반영 BluetoothHandler 블루투스 데이터를 다른 작업에 지장을 주지 않고 수신 BluetoothThread 제일 처음 어플리케이션을 실행했을 때 MainActivity 장치 검색 SearchActivity 블루투스 장치에 데이터를 송수신 RemoteActivity 블루투스 관리 액티비티(화면)
25
모듈 정보 모듈이름 : FB155BC 제작회사 : Firmtech 구동전압 : 3.3V
통신방법 : Bluetooth Specification V1.2 통신거리 : Up to 30 M 프로파일 : SPP(Serial Port Profile)
26
모듈 세팅 정보 VCC(3.3v), GND를 연결 Rx는 개발 보드의 Tx에, Tx는 개발 보드의 Rx에 연결
상태 핀은 기기의 현재 상태(대기 중, 검색 대기 중, 통신 중 등)를 나타내므로 LED를 연결하여 쉽게 알 수 있도록 함 UART통신 환경을 설정(9600/8/None/1) 수신 인터럽트를 설정하여 수신 값을 그때 그때 처리할 수 있도록 함 기기의 이름, PIN Number 등 기본 정보들을 설정한다. 일반적으로 Slave모드로 설정되어 있음 AT+BTSCAN\r을 전송해 검색이 가능하게 설정
27
데이터 송수신 USART 0는 모터 제어에 사용되어 1을 이용
조도 센서의 값을 ADC로 변환하여 해당 값을 USART1 TX로 전송 더 나아가 영상 송신 등 유용한 데이터들을 전송할 수 있을 것 수신 인터럽트로 들어온 값들은 switch문 처리
28
Atmega2560 프로그램 시작 시작 데이터가 들어오면 인터럽트 수신된 값을 읽어 들임 UART1 설정 및 모듈 설정
수신 인터럽트 끝 수신된 값 값에 따른 움직임 처리 전/후/좌/우/1/2/3/4/5… 시작 수신된 값을 읽어 들임 시작 UART1 설정 및 모듈 설정 조도 센서 값 ADC while(1) 변환된 값 전송 데이터가 들어오면 인터럽트
29
최종 시연 장치 및 블루투스 통신 테스트
30
시연 동영상
31
끝
Similar presentations