8. 2.2 기존 기술의 한계
VISION-BASED
1. 카메라를 이용한 이미지 분석 방식
2. 제대로 하려면 수백만 화소 — 60fps 가정시 : 16ms당 Mbyte 단위의 데이터를 처리
3. “기껏해야 5W 전력수준인 모바일 폼팩터에서의 활용은 사실상 불가능하다.”
- Nizar Rodman, Developer Relations Manager, AMD
OTHERS
1. HTC Lighthouse(고속회전 적외선 레이저 동기화 방식) : HMD보다 송출기가 더 크다.
2. Google Daydream(9축 IMU 센서) : 절대적 위치 차이의 측정은 불가능하다.
9. 2.3 숙제
연산량 — 우리 프로세서가 뭘 잘못했다 그래요.
•VR 컨텐츠 렌더링도 버거운 모바일 프로세서에 추가 부담을 주지 않을 것
•그러면서도 최소한 motion-to-photon 지연시간 16ms 이하를 확보할 것
•그러면서도 또한 mm~cm 단위의 정확도를 확보할 것
가격 — 배 보다는 작은 배꼽이 되자.
• 보급형 부품 만으로도 구성이 가능할 것
편의성 — 우리 부모님도 좀 쓰자.
• 추가 장비 설치의 거추장스러움을 제거할 것
• 그냥 쓰면 되게 할 것
20. 5.1 선택의 기로 I -“센서는?”
종류가 너무 많았습니다.
digikey에만 총 16,618가지 광학 부품
스펙과 가격은 천차만별
21. MK 3 - 일단은, 아날로그
5.1 선택의 기로 I -“센서는?”
• 안정화 회로도 없이 Light-to-Voltage 센서 4개 배치
• Arduino Mega A인풋에 연결 + 9v 배터리 사용
✓전압 Noise가 Signal보다 큼
✓배터리가 소모될 수록 널뛰는 Noise
22. MK 4 - 그렇다면, I2C
5.1 선택의 기로 I -“센서는?”
• 가장 안정적인 스펙에 집중
• Arduino Mega + 16ch MUX 사용
• 연결 구성
SDA
SDA
SDA
SCL
SDA
MUX
DEMUX
Ambient
Sensor
MCU
…
23. 당연했지만, 그땐 몰랐던 문제 = I2C의 더럽게 느린 속도
Reference: http://rohmfs.rohm.com/en/products/databook/datasheet/ic/sensor/light/bh1750fvi-e.pdf
✓44개 센서의 동기화 불가능 —> 순차적 센싱으로 인한 부정확성
✓Sampling 속도의 한계 —> 무슨 수를 쓰더라도 지연 발생
절망적인_Datasheet.jpg
5.1 선택의 기로 I -“센서는?”
24. Vout
Vout
Vout
MK 5 - 센서 속도 + 데이터 안정성 + 통신 속도를 한번에
Voltage Output
Light Sensor
Powerful
Simultaneous
4ch
16bit
Cascadable
ADC
Vout
MCU
CS
SCLK
MOSI
MISO
5.1 선택의 기로 I -“센서는?”
<𝝻s 단위 속도의 센서> <고성능 ADC> <SPI 통신>
세 가지가 합쳐진 콤비네이션
…
25. 성능은 제법이지만 전력소비와 가격이 높아 경제성이 부족
Reference: https://datasheets.maximintegrated.com/en/ds/MAX11040K-MAX11060.pdf
5.1 선택의 기로 I -“센서는?”
✓35mA x 11개 = 385mA —> 배보다 배꼽이 더 큰 전력소모
✓ADC 개당 1만원 이상 x 11개 —> 제조원가의 2/3
26. 대망의 MK 6 - 어차피 쓸 MCU의 Internal ADC 활용
5.1 선택의 기로 I -“센서는?”
• MCU들은 거진 내부에 ADC를 달고 출시(Feat. Moore’s law)
• Internal ADC를 사용할만한 조건
‣ MUX를 활용
‣ 센서 출력이 안정적일 것
‣ 충분한 Internal ADC sample rate(동기화)
27. 5.1 선택의 기로 I -“센서는?”
Thanks to: (주)원일렉트로닉스 송왕규 대표님
✓1Khz 수준의 작동 속도
✓ADC 부품단가 절감
✓전압 Noise 제거
✓MCU 사양은 오히려 상승
28. 오늘의 교훈
✓ Datasheet는 답을 알고 있다.
✓ 덮어놓고 높은 스펙을 쫓으면 거지 꼴을 못면한다.
✓ 파랑새는 처음부터 집에 있었다.
(처음에 했던 시도가 답과 의외로 가까울 수도 있다.)
5.1 선택의 기로 I -“센서는?”
30. 원인
5.2 선택의 기로 II -“연산은?”
✓ 모바일 내장
✓ 낮은 전력소모
✓ 풍부한 stack
문제
✓ 44개 센서 패킷
✓ Baudrate 한계
=> Delay의 주범
결론
“MCU에서 연산한
결과를 패킷으로 전송”
31. 후보 1 : FPGA
Reference: http://www.ni.com/tutorial/6097/en/#toc4
✓ 개발과 디버깅에 시간이 오래 걸린다.
✓ ASIC로 대량생산을 포함하면 막대한 돈이 든다.
✓ FPGA만으로 하자니 전력소비와 가격이 신경쓰인다.
✓ 삼각함수 위주의 Pol 알고리즘에 적절치 않다.
Field Programmable Gate Array
5.2 선택의 기로 II -“연산은?”
32. 후보 2 : Microcontroller
List: https://en.wikipedia.org/wiki/List_of_CPU_architectures#Embedded_CPU_architectures
https://en.wikipedia.org/wiki/List_of_common_microcontrollers
https://en.wikipedia.org/wiki/ARM_Cortex-M#Chips_4
Chip
Core
Analog
Clock
Power
Memory
Other
Peripherals
µarch, core
•ARM - ARM
•Microchip - PIC
* Atmel - AVR
•Intel - 8051
•…
Chipmaker
•Atmel
•NXP
* Freescale
•STMicroelectronics
•…
5.2 선택의 기로 II -“연산은?”
33. 선택 : STM32L1
Reference: http://www.arm.com/products/processors/cortex-m/cortex-m3.php
5.2 선택의 기로 II -“연산은?”
✓32bit 기반 - 연산에 유리
✓풍부한 IDE - 게다가 일부는 무료
✓12bit ADC 내장
✓다양한 칩에 컨트롤러로 내장
✓C++ 지원
40. 오늘의 교훈2
✓ 하드웨어에 크게 신경 안쓰게 만들어준 컴파일러에게 감사하자
✓ Embedded에서 Floating point계산을 피하자
- Floating point의 소프트웨어 구현은 수행시간을 엄청 잡아먹는다
✓ 피할 수 없다면 일단 좋은 하드웨어를 선택하자
5.2 선택의 기로 II -“연산은?”
44. 7.1 Pol MK 6
✓ 사용 환경에 따른 물리적 tilting
✓ 40mm x 40mm x 150mm
✓ 60fps 환경에서의 no latency
✓ 연속사용 5시간 이상
✓ micro-USB 충전/업데이트 포트
45. 7.1 Pol DK 1 with SDK
includes..
✓ Pol MK 6 기반 하드웨어 1ea
✓ LED 편광 조명모듈 1ea
✓ Unity3D, Unreal 플러그인
✓ Android, iOS 블루투스 연동 플러그인
✓ 기타 게임 컨텐츠 개발시 필요한 부가기능 추가
목표가격
“단돈 5만원(대..)”