이호민 - 우분투 환경에서의 임베디드 개발환경 구축 및 어플리케이션 개발 (2010Y06M24D)Ubuntu Korea Communityhttp://www.oss.kr/index.php?mid=oss_information6&category=1371&document_srl=1392
제 1회 공개SW역량프라자 정기기술세미나(6월24일) 발표자료를 올립니다.
세션1 : 리눅스 시스템을 위한 성능 분석
(강사) 국민대학교 이남승 연구원
세션2 : 우분투 환경에서의 임베디드 개발환경 구축 및 애플리케이션 개발
(강사)우분투코리아 강분도 대표
아젠텍 이호민 전임연구원
다음회차에는 더 좋은 주제로 찾아뵙겠습니다.
감사합니다.
OpenCV 에서 OpenCL 살짝 써보기Seunghwa SongOpenCV를 활용하는 영상처리 어플리케이션 개발자들은 항상 GPU 자원을 활용하고 싶을 것이다. 하지만 이기종 컴퓨팅 환경에서 CPU 이외의 다른 하드웨어 자원을 활용하는 것은 개발 환경 및 백그라운드 지식 등의 많은 어려움이 따른다.
GPGPU 활용에 가장 상용화로 성공한 대중적인 솔루션으로는 nVidia 사의 CUDA 기술이 있지만, 그 외에도 GPGPU 자원을 쉽게 활용할 수 있는 오픈 플랫폼이 있는데 이것이 OpenCL 표준이다.
최근 하드웨어와 소프트웨어 진영에서 모두 OpenCL의 지원 및 발전이 두드러지며 점점 더 확산되는 추세이다.
OpenCV 진영에서도, 3.0이 정식 릴리즈 면서 본격적으로 OpenCL을 활용하기가 한층 쉬워졌다.
김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)Ubuntu Korea Communityhttp://www.ubuntu-kr.org/viewtopic.php?f=2&t=16175
내 용
발표 1 우분투로 슈퍼컴 만들기 = 김성윤
발표 2 geogebra (수학 그래프+도형 툴) = 미남imsu(구임수)
자기 소개 및 자유 이야기
발표 3 : 우분투에서 임베디드 리눅스 개발 환경 구축하기 = 뻔뻔강사(유명환)
이호민 - 우분투 환경에서의 임베디드 개발환경 구축 및 어플리케이션 개발 (2010Y06M24D)Ubuntu Korea Communityhttp://www.oss.kr/index.php?mid=oss_information6&category=1371&document_srl=1392
제 1회 공개SW역량프라자 정기기술세미나(6월24일) 발표자료를 올립니다.
세션1 : 리눅스 시스템을 위한 성능 분석
(강사) 국민대학교 이남승 연구원
세션2 : 우분투 환경에서의 임베디드 개발환경 구축 및 애플리케이션 개발
(강사)우분투코리아 강분도 대표
아젠텍 이호민 전임연구원
다음회차에는 더 좋은 주제로 찾아뵙겠습니다.
감사합니다.
OpenCV 에서 OpenCL 살짝 써보기Seunghwa SongOpenCV를 활용하는 영상처리 어플리케이션 개발자들은 항상 GPU 자원을 활용하고 싶을 것이다. 하지만 이기종 컴퓨팅 환경에서 CPU 이외의 다른 하드웨어 자원을 활용하는 것은 개발 환경 및 백그라운드 지식 등의 많은 어려움이 따른다.
GPGPU 활용에 가장 상용화로 성공한 대중적인 솔루션으로는 nVidia 사의 CUDA 기술이 있지만, 그 외에도 GPGPU 자원을 쉽게 활용할 수 있는 오픈 플랫폼이 있는데 이것이 OpenCL 표준이다.
최근 하드웨어와 소프트웨어 진영에서 모두 OpenCL의 지원 및 발전이 두드러지며 점점 더 확산되는 추세이다.
OpenCV 진영에서도, 3.0이 정식 릴리즈 면서 본격적으로 OpenCL을 활용하기가 한층 쉬워졌다.
김성윤 - 우분투로 슈퍼컴 만들기 (2011Y03M26D)Ubuntu Korea Communityhttp://www.ubuntu-kr.org/viewtopic.php?f=2&t=16175
내 용
발표 1 우분투로 슈퍼컴 만들기 = 김성윤
발표 2 geogebra (수학 그래프+도형 툴) = 미남imsu(구임수)
자기 소개 및 자유 이야기
발표 3 : 우분투에서 임베디드 리눅스 개발 환경 구축하기 = 뻔뻔강사(유명환)
라즈베리파이 Circulus API 가이드CirculusIoT EDU/MAKE 플랫폼인 Circulus 를 이용하여,
라즈베리파이를 개발할 때 제공되는 API 가이드라인입니다.
이 가이드에서는
LED, 초음파센서, 7세그먼트, 온습도 센서, 조도 센서, SW/HW PWM, TTS, 카메라, 사운드인식, 위치파악, 모니터링, 광학문자인식(OCR) 등에 대해 단 몇줄의 자바스크립트만으로 제어하는 예제를 다루고 있습니다. 앞으로도 지속적으로 추가될 예정입니다.
2. 목차
• H/W 구성
• H/W 통신 사양
• 통신 F/W 흐름도
• UART 통신 함수 구성
• 통신 패킷 처리 방법
• UART 통신 패킷 형식
• UART 통신 응답 처리 함수
• USB VCOM 통신 세부 구성
• USB VCOM 통신
• MSP(Multiwii Serial Protocol)
• HexAirBot Protocol
• 향후 추가해야 할 통신 기능
• 참고 자료
3. 통신 H/W 구성
STM32F103
BLE ModuleUART3
GPS Module
or Serial LCD
UART1
Ultrasonic SensorUART2
nRF24L01+SPI
• Bluetooth 통신 :
BLE 4.0 HM-11 BLE Module 사용
• RF 통신 : nRF24L01+ 사용
• USB 통신 : VCOM
PCUSB VCOM
4. 통신 H/W 사양
• HM-11 BLE Module
TI CC2541 기반 모듈
Bluetooth Specification V4.0 BLE
2.4 GHz ISM band
UART Interface
최대 30M (개방된 공간)
• nRF24L01+
2.4GHz GFSK RF transceiver IC
2.4GHz ISM band operation
GFSK modulation, 1 or 2MHz bandwidth
0, -6, -12, and -18dBm programmable TX output power
Configurable on-air data rate of 250kbps, 1Mbps or 2Mbps
SPI Interface
5. 통신 F/W 흐름도
• Smart Phone과 Bluetooth
로 통신
• 무선 조정기와 RF 2.4GHz
로 통신
• PC와 UART/USB로 통신
SmartRover
Smart PhoneBLE 4.0
RF Controller or
PC
RF 2.4GHz
PCUART / USB
6. UART 통신 함수 구성
loop()
->annexCode()
->serialCom()
->readSerial()
->evaluateCommand()
• loop() : Main thread 함수
• annexCode() : 주기적으로 호출되
는 센서 처리 및 통신 처리 함수
• serialCom() : UART 통신 데이터를
수신하여 처리하는 함수
• readSerial() : UART 데이터를 수신
하는 함수
• evaluateCommand() : UART를 통
해 전송된 명령을 처리하는 함수
8. 통신 패킷 처리 방법
• UART로 수신된 데이터들을 분석
해서 명령을 추출해 냄.
• serialCom() 함수에서 수행함.
• 명령이 추출 후
evaluateCommand() 함수를 호출
해 명령을 수행함.
9. UART 통신 패킷 형식
0 1 2 3 4 5+DataSize 5+DataSize+1
‘$’ ‘M’ ‘<‘ Data
Size
MSP
Command
Max 64Bytes checksum
• Host->SmartRover 전송 패킷 형식
• SmartRover ->Host 전송 패킷 형식
0 1 2 3 4 5+DataSize 5+DataSize+1
‘$’ ‘M’ ‘!’
or
‘>’
Data
Size
MSP
Command
Max 64Bytes checksum
10. UART 통신 응답 처리 함수1
headSerialResponse() : 통신 패킷 헤더를 만드는 함수
serialize8() : 1Byte 데이터를 채우는 함수
serialize16() : 2Byte 데이터를 채우는 함수
serialize32() : 4Byte 데이터를 채우는 함수
headSerialReply() : 성공에 대한 응답 패킷을 생성하는 함수
headSerialError() : 실패에 대한 응답 패킷을 생성하는 함수
tailSerialReply() : CRC를 채우는 함수
12. USB VCOM 통신 세부 구성
• VCOM으로 PC와 통신
• Endpoint1을 통해 PC로 데
이터를 전송함.
• Endpoint3를 통해 PC로 부
터 데이터를 수신함.
PC STM32F103
USB
Host
USB Core
EP1
EP3USB OUT
USB IN
13. USB VCOM 통신 – USB 수신
USB_LP_CAN1_RX0_IRQHandler()
->USB_Istr()
->EP3_OUT_Callback()
->USB_To_USART_Send_Data()
->Hw_VCom_Q_Push()
• USB로 부터 수신된 데이터를
읽는 순서
• 최종적으로
Hw_VCom_Q_Buffer 버퍼에
데이터 저장
• serialRead() 함수를 통해 수
신된 데이터를 버퍼로 부터
얻을 수 있음.
14. USB VCOM 통신 – USB 송신
serialWrite()
->Hw_VCom_Putch()
->USB_Send_Data()
USART_Rx_ptr_in
USB_LP_CAN1_RX0_IRQHandler()
->USB_Istr()
->SOF_Callback()
->Handle_USBAsynchXfer()
• serialWrite() 함수를 호출해
서 USART_Rx_ptr_in 버퍼
에 데이터를 저장함
• USB ISR에서
Handle_USBAsynchXfer()
함수를 호출해서 버퍼에 저
장된 데이터를 전송함
15. MSP(Multiwii Serial Protocol) 1
• MSP는 Multiwii Corpter 오픈소스에서 사용되는 시리얼 통신
프로토콜
• Multiwii Config에서 사용
• HostFC로 전송하는 메시지와 FCHost로 전송하는 메시지로
구성
• SmartRover는 UART로 MSP 통신
19. HexAirBot Protocol 1
명령 기능
MSP_SET_RAW_RC_TINY 기체의 Roll/Pitch/Yaw/Throtle 및 AUX 단자 4개를 조정
MSP_ARM 기체 동작 시작
MSP_DISARM 기체 동작 종료
MSP_TRIM_UP 기체 수평이 맞지 않을 경우 조정
MSP_TRIM_DOWN 기체 수평이 맞지 않을 경우 조정
MSP_TRIM_LEFT 기체 수평이 맞지 않을 경우 조정
MSP_TRIM_RIGHT 기체 수평이 맞지 않을 경우 조정
20. HexAirBot Protocol 2
명령 기능
MSP_TRIM_UP_FAST 기체 수평이 맞지 않을 경우 조정
MSP_TRIM_DOWN_FAST 기체 수평이 맞지 않을 경우 조정
MSP_TRIM_LEFT_FAST 기체 수평이 맞지 않을 경우 조정
MSP_TRIM_RIGHT_FAST 기체 수평이 맞지 않을 경우 조정
MSP_READ_TEST_PARAM 테스트용
MSP_SET_TEST_PARAM 테스트용
MSP_HEX_NANO 기체의 정보를 전달
21. 향후 추가해야 할 통신 기능
• RF 통신 기능 추가
• PC를 사용한 RF 제어 기능
• PC를 사용한 RF 다중 제어
• 무선 조종기와 연동
• 통신 통합 관리 구조 개선
• 통신 장애 처리 추가
22. 참고 자료
• MultiWii Protocol
http://www.multiwii.com/wiki/index.php?title=Multiwii_Serial_Protocol
• HexAirBot Protocol
http://www.flexbot.cc/wiki/index.php?title=Main_Page
• Bitcraze
http://www.bitcraze.se/
http://wiki.bitcraze.se/
• Bluetooth-V40-HM11-BLE-Module 관련
http://www.seeedstudio.com/depot/Bluetooth-V40-HM11-BLE-Module-p-
1803.html
http://www.seeedstudio.com/wiki/Bluetooth_V4.0_HM-11_BLE_Module
• RF 칩 및 통신 관련 자료
http://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01P