레이블이 aliexpress인 게시물을 표시합니다. 모든 게시물 표시
레이블이 aliexpress인 게시물을 표시합니다. 모든 게시물 표시

2020년 5월 18일 월요일

자동차 HUD C1 사용기

알리에서 판매하는 C1이라는 모델의 HUD를 구입하였다.




박스를 열면 본체, OBD 케이블(OBD-to-MiniUSB), USB 케이블(USB A-to-MiniUSB)이 들어 있다.





이 부분에 miniUSB 커넥터를 연결해 주면 된다.


다만 이 장치는 자동차에서 동작하는 것이기 때문에 12V 전원이 공급되어야 동작하게 되는데 USB 커넥터를 사용해 혼란을 주기 쉽게 되어 있는것은 아쉽다.
OBD2 + GPS라고 써 있는것처럼 OBD를 연결하지 않으면 자체 GPS 수신기만으로 동작해 GPS로 계산한 속도를 표시할 수도 있도록 되어 있는데 이 경우 동봉되어 있는 USB 케이블로 연결해 줘야 한다.


하지만 이 경우 USB 커넥터로 12V를 공급해줘야 하는데 일반적으로 자동차에 USB-A 타입 커넥터에서 12V가 나오는 경우는 없기 때문에 자동차의 USB 커넥터에 케이블을 연결하면 전압 부족으로 장치가 정상적으로 동작하지 못하게 된다.

물론 OBD 연결하지 않고 그냥 GPS모드로만 이용하려고 이걸 사는 사람은 많지 않을거라 생각되니 큰 문제는 아닐수도 있지만 조금만 더 섬세하게 만들었다면 좋았을 뻔 했다. 차라리 저 케이블에서 USB-A 대신 시거잭에 꼽을 수 있게 해 놨다면 혼란을 줄일 수 있을 것이다.

동작은 매우 단순하다. 자동차의 OBD 포트와 이 장치에 케이블을 연결하고 장치의 전원 스위치를 ON으로 해 놓은 상태에서 자동차 시동을 걸면 바로 화면이 나온다.


오른쪽이 전원 스위치, 왼쪽이 조그셔틀(좌/우/푸쉬)이다.

동작중에는 조그셔틀을 누르면 화면 표시 모드가 변경되고, 조그셔틀 좌 또는 우로 화면에 표시되는 내용을 변경할 수 있다.
또한 조그셔틀을 누르고 몇초 있으면 설정 모드로 들어가 설정을 변경해 줄 수 있게 된다.






화면 표시모드는 여러가지가 있고 첫번째, 두번째 화면의 경우 조그셔틀로 RPM. DIS 부분 또는 RPM, RTC 부분에 어떤 내용을 표시할지 고를 수 있다. 즉 DIS(운전거리)대신 배터리 전압이라던지 냉각수 온도, 타이어압력 등 선택할 수 있는 옵션은 꽤 다양하다.

운전중 촬영을 할 수 없어 주차장에서 세워 놓은 상태에서 사진을 찍었지만 햇빛이 쨍한 낮에 운전해도 화면은 충분히 잘 보인다.

물론 본체의 재질은 프라스틱으로 그렇게 고급스럽게 보이지는 않지만 원하는 기능은 충분하게 제공해 주는거 같다.

* 참고로 설치한 차종은 14년식 스포티지이다.

아래는 제품에 들어 있는 사용설명서를 스캔한 것이다. 구입에 관심이 있으면 자신이 원하는 기능이 있는지 보는 것이 좋을 것이다. (이미지를 클릭하면 확대된다.)



2016년 9월 7일 수요일

WiFi & Bluetooth를 모두 지원하는 ESP-3212 발표

ESP-8266을 만든 Espressif사에서 ESP-3212 모듈을 새로 발표했다.

위의 사진처럼 크기나 외형은 ESP-8266과 별 차이가 없지만 가장 큰 차이점은 WiFi뿐 아니고 Bluetooth까지 포함되었다는 점이다.

내부 구조는 위의 그림과 같다.

프로세서는 Xtensa의 32-bit LX6 듀얼코어를 사용하고 있고 롬은 448KB, SRAM은 520KB이고 그와 별도로 RTC에 16KB의 SRAM이 더 들어 있다.

블루투스는 Bluetooth v4.2 BR/EDR, BLE를 모두 지원하고 별도의 외부 앰프 없이 class 1/2/3가 모두 가능하다.

Peripheral도 매우 다양하게 가지고 있다. 특히 ESP-8266에서 가장 아쉬웠던 1채널의 ADC가 18채널로 확장되었고 8-bit DAC도 2채널이 추가되었다. 그리고 심지어 CAN2.0까지 지원해 매우 저가의 OBD-II 장비도 쉽게 구현이 가능하다.
  •       • 12-bit SAR ADC up to 18 channels
  •       • 2 × 8-bit D/A converters
  •       • 10 × touch sensors
  •       • Temperature sensor
  •       • 4 × SPI, 2 × I2S, 2 × I2C, 3 × UART
  •       • 1 host (SD/eMMC/SDIO), 1 slave (SDIO/SPI)
  •       • Ethernet MAC interface with dedicated DMA and IEEE 1588 suppor
  •       • CAN 2.0
  •       • IR (TX/RX)
  •       • Motor PWM, LED PWM up to 16 channels
  •       • Hall sensor
  •       • Ultra low power analog pre-amplifier
IoT 장비에 가장 중요한 요소중에 하나인 보안 문제를 위해서도 다양한 하드웨어 가속기를 추가했다.
 
  • AES-HASH(SHA-2) library - RSA-ECC-RNG



이 정도면 IoT 디바이스를 위한 프로세서 모듈로는 거의 완전체에 가까워 진거 같다.

Pinout은 다음과 같다.

현재 SeeedStudio에서 개당 $6.95에 판매되고 있고 알리에서는 아직 올라오지 않았는데 조만간 알리에서 판매가 시작되면 더 저렴한 가격에 구할 수 있을거 같다.

https://www.seeedstudio.com/ESP3212-Wifi-Bluetooth-Combo-Module-p-2706.html






2015년 3월 26일 목요일

에디슨에서 128x64 OLED 모듈 사용하기 (Using SSD1306 based 128x64 I2C OLED module in Intel Edison)

인텔 에디슨에 SSD1306 기반의 128x64 OLED 모듈을 연결해 구동해 보았다.


사진에서 볼 수 있는것처럼 I2C 방식을 사용해 단 4핀(Vcc, GND, SCL, SDA)만으로 구동이 가능하다. Aliexpress등에서 개당 약 $3.5 정도에 구입이 가능하다. 크기는 0.96", 해상도는 128x64, 흑백(단색) OLED 모듈이다.
인터넷을 찾아보면 아두이노에 이 모듈을 사용한 예제는 여러가지 종류의 라이브러리를 사용한걸 쉽게 찾아볼 수 있는데 에디슨에서 사용한 예제는 찾아보기가 쉽지 않다.

그래서 라이브러리들을 참조해 에디슨용 파이선 클래스를 만들어 보았다. 일단 두가지 폰트(6*8, 8*16)로 화면에 텍스트를 출력하는게 가능하다.

에디슨에서는 I2C를 사용하기 위해 mraa 라이브러리를 사용했다.


에디슨용 아두이노 breakout 보드에서 위와 같이 연결해 줬다. 아두이노 쉴드에 나와있는 I2C를 사용하려면 mraa에서 6번 버스를 사용하면 된다. 그리고 OLED 모듈의 경우 I2C 주소가 0x78로 표시되어 있지만 실제로 0x3C를 사용해야 한다.

즉 파이선에서 I2C를 사용하기 위한 초기화는 다음과 같은 식으로 하면 된다.

import mraa

display = mraa.I2c(6)
display.address(0x3c)

일단 I2C가 설정되고 나면 이후 초기화나 ssd1306의 레지스터 설정값들은 아두이노용 라이브러리를 참조해 작성해주면 된다. 작성한 코드는 아래 링크의 zip 파일을 다운받으면 된다. 압축을 해제하면 Oled.py 파일이 생길 것이다.

사용하는 방법은 간단하다.

python
>>> import Oled
>>> display = Oled.Oled()
>>> display.cls()
>>> display.printStr(0,0,"Hello",1)
>>> display.printStr(0,1,"World", 1)
>>> display.printStr(0,1,"Edison rules!",2)
>>>

위와 같이 모듈을 import 한 후 Oled() 클래스 인스턴스를 만들어 주면 모듈이 초기화 된다. cls()는 화면을 지우는 메소드이고 printStr(x, y, string, size)은 화면에 문자열을 출력한다. 처음 x, y는 문자열을 출력할 좌표이고, string은 출력할 내용, size는 폰트 크기로 여기서는 1(6*8) 또는 2(8*16)만 사용할 수 있다.

* 단 mraa 라이브러리는 레지스터에 값을 기록할 때 한꺼번에 여러 바이트를 보내는 함수가 없어 cls()같은 경우 실행속도가 좀 느리다. mraa 라이브러리를 조금 수정하면 좀 더 빠르게 최적화가 가능하다.

명령어 프롬프트에서 다음 명령으로 직접 프로그램을 실행했을 때 실행 결과 동영상이다.

# python Oled.py


Download : Oled.py.zip