Posts

Showing posts from May, 2019

LoRa 모듈 E22-900T22S Breakout Board 설계 2

Image
지난번 설계 에서 두 가지 업데이트 사항이 있다. 첫 번째로 3.3V 로 로직 컨버터를 거치지 않고 직접 통신할수 있는 포트를 구성하였다.  이 포트를 통해 3.3V 동작의 MCU를 사용할때 좀 더 빠르게 회로를 구성  할수 있을것으로 기대한다. 두 번째로 동작 전압 레벨이 서로 다른 MCU 와 Lora 모듈이 통신할때 사용할 기준전압을 직접 인가 할 수 있도록 하였다. 보드에는 위 와같은 점퍼가 주어지는데 3.3V 나 5V 로 점프 시키지 않을 경우 VREF 핀에 사용할 소스전압을 직접 인가해 주어야한다. 특수한 경우가 아니라면 Vref를 사용하는일은 없을것 같다. 위사 진들은 이번에 제작한 테스트 모듈이다.  왼쪽은 E22-900T22S 모듈이고 오른쪽은 ATmega328P/PB 3.3V 8Mhz 보드를 준비했다. 오른쪽의 보드는 ATmega328P/PB 를 모두 장착하여 사용할 수 있도록 설계했다. E22-900T22S 보드의 전체 회로는 다음과 같다. 동작 전압 레벨이 서로 다른 장치와 통신 할 수 있도록 레벨 컨버터를 추가 하였고, 핀 헤더를 장착하여 다른 MCU 보드와 통신하거나 점퍼를 수정해서 USB 시리얼 통신을 할수 있도록 했다. 모듈의 테스트는 mischianti의 E22 라이브러리 를 사용했다. 정리가 아주 잘 되어있는 라이브러리로 생각된다. 아래 코드는 라이브러리에 포함된 시리얼 입력을 LoRa 통신으로 전송하는 예제이다. Lora ATmega328p AUX D3 RX D4 TX D5 M1 D6/GND M0 D7/GND 송신측 코드 #include "Arduino.h" #include "LoRa_E22.h" LoRa_E22 e22ttl(4, 5, 3, 7, 6); void setup() { Serial.begin(9600); delay(500); // Startup all pins and UART e22ttl.begin(); Serial.println(&q

[Raspberry Pi] - 라즈베리 파이에서 멀티미디어 감상에 적절한 비디오 세팅

뚝뚝 끊기는 화면은 유쾌하지 않다. 라즈베리 파이를 CUI 환경을 사용하면서 GPU 메모리를 신경쓰느 사람은 없다. 하지만 라즈베리 파이를 멀티미디어 감상이 이나 게임이 주 목적이라면 부족한 성능을 보완하기위해 보다 많은 GPU 메모리 공간을 고려해 볼 수 있다. GPU 메모리를 늘리기에 앞서 라즈베리 파이 3 B+ 는 1GB 의 메모리 공간을 가지고 있다. 그리고 이 공간을 CPU과 GPU가 서로 나눠 사용한다. 라즈베리 파이에 운영체제가 설치되면 GPU 메모리는 보통 64MB 로 할당 되는데 만약 게임기를 만든다거나 멀티미디어 감상용도라면 적게 느껴질것이다. GPU 메모리 할당방법 GPU 메모리 할당을 변경해주는 방법은 매우 간단하다. sudo nano /boot/config.txt 터미널에서 위 명령을 실행하여 config.txt의 마지막 부분에 위치한 gpu_mem 값을 원하는 만큼 할당해주면 된다. 또는 기본설정 > Raspberry Pi Configuration > Performance 에서 변경가능하다. 적당한  GPU 메모리 사이즈와  CPU에 미치는 영향 사용자 중에는 성능이 마음에 들지 않는건지 비디오 영역에 512MB 보다 큰 영역을 할당해주는 사람도 있지만 멀티미디어 용도로는 256MB 로도 충분했다. 사실 128MB 이상의 공간을 GPU 메모리에 할당하는 것은 그다지 도움이 되지 않는다는 의견도 있다. 라즈베리파이의 메모리 공간은 1GB로 한정되어있기 때문에 GPU 메모리를 많이 늘릴수록 CPU 메모리를 줄이게 되는데 여기서 문제가 발생하게된다. CPU는 메모리가 부족하면 스왑파일을 사용하게된다. 이런 상황은 CPU의 성능을 저하시키는 요인중 하나로 너무 많은 메모리를 GPU에 할당하게 되면 오히려 전반적인 성능이 더 떨어지게 될 수 있다. 영상시청에 있어 끊김은 GPU 메모리 뿐만아니라 미디어 플레이어의 영향도 없지는 않다. 한정된 공간을 유용하게 사용해야 하기 때문

[Raspberry Pi] - 라즈베리 파이 3 B+ 에서 아두이노 IDE 사용하기

데스크탑 PC 를 사용하지 않고 아두이노 프로그래밍을 해보고 싶었는데 아쉽게도 나에게 노트북이 없다. 되도록이면 노트북에 리눅스 환경이면 좋겠다고 생각해 한 동안 잘 사용했었던 라즈베리파이의 신제품을 찾아봤다. 성능이 올라간 만큼가격도 올라간건지 전 보다 1만원정도 더 들여서 라즈베리파이 3 B + 모델을 선택했다. 사실 똑같이 구형을 구입하려 했으나 듀얼 밴드가 상당히 매력적이어서 최신 버전으로 구매 했다. 이번에는 정성스럽게 사용할 예정이다. 이번에는 딱히 라즈베리파이에 센서와 엑추에이터를 달아서 뭔가로 만들기 보다는 아두이노 프로그래밍 용도로 사용하기위해 구매했다. 아두이노 IDE는 윈도우 뿐만아니라 ARM 버전도 있기때문에 라즈베리 파이에서 사용할수 있다. 첫번째 방법 아두이노는 다음의 명령어로 설치 할 수 있는데 설치가 완료되면 개발 항목에 추가가된다. sudo apt-get install arduino 만약 사용자가 시스템 언어를 한글로 사용하고 있다면 시스템에 한글이 정상적으로 나타나는 상황이라도 아두이노를 설치를 완료하고 실행해보면 한글이 깨질수가 있는데 이는 폰트가 없어서 그런것이다. 나눔 폰트가 무난하고 좋다. sudo apt-get install fonts-nanum 하지만 이 방법은 구버전이 설치되고 라이브러리 매니저가 없다. 두번째 방법 최신버전을  아두이노  에서 ARM 버젼을 받으면 된다. 이 글을 작성하는 시점에서 최신버전은 1.8.9  버전이다. 참고로 라즈비안은 32비트 운영체제이다. 설치방법은 다음과 같다. 터미널에 순서대로 입력하면된다. mkdir Arduino cd ~/Downloads cp ./arduino-1.8.9-linuxarm.tar.xz ~/Arduino cd ~/Arduino tar xvf arduino-1.8.9-linuxarm.tar.xz cd arduino-1.8.9 ./install 터미널 실행은 arduino 혹은  sudo

리얼텍 드라이버 뻘짓과 블루투스 이야기

Image
원래 매인보드 제조사에서 제공하는 드라이버를 설치하면 리얼텍 HD 드라이버와 오디오 콘솔 유틸리디가 함께 설치가 됐었다. 그런데 오늘 다채널 스피커를 구성하려고 오디오 콘솔을 찾는데 이상하게도 사라져있었다. 고민의시작 아무리 재설치해도 버전 바꿔봐도 드라이버만 설치되고 매니저 프로그램은 설치되지 않았다. 사실 매니저가 없어도 스피커 구성 마법사를 실행하면 되지만 어떻게 해결해보고 싶었다. 원래 사람이 안되면 되게 하고 싶은 법이다. 여러 시도 끝에 리얼텍 오디오 콘솔은 설치가 되었다. 너무 많은 설치와 제거가 반복되다보니 확실하진 않지만 기가바이트 앱센터에서 드라이버를 설치하니 된것 같다. 부질없는짓 왜 이런 일을 벌이냐면 사용하던 소니 DAV-S800 앰프가 덩치가 너무커서 방에서 치워버리고 매인보드 센터/우퍼 단자에 유닛을 직접 연결하여 사용 할 수 있지 않을까 해서 시도 해보았다. 그런데 곰곰히 생각해보니 DAV-S800 의 스피커 유닛은 앰프에 물려 사용하는 녀석이기 때문에 메인보드에서 나오는 출력으로 작동할리가 없었다. 뭐 하나 이루어낸 것도 없지만 다 필요없어졌다. 하루종일 리얼텍 드라이버로 헛 짓거리만 한 샘이다. 비어있는 내 뱃속, 어질러진 내 방, 잃어버린 내 시간. 갑자기 내 자신에게 화가나기 시작했다. 차선책 어차피 음악 감상을 위한 스피커이기 때문에 블루투스 앰프에 물려 사용하기로 했다. 유선이면 좋겠지만 블루투스 앰프만 있다. 사용한 앰프는 TDA7492P 이다. 1만원대 중에선 쓸만한 제품이라 생각된다. AUX 출력과 2채널 스테레오 25W+25W 단자가 있다. 블루투스 4.0 이 사용되고 8~24V 에서 작동된다. 이 작은 앰프에 프론트, 리어 스피커 까지 사용하는건 무리기 때문에 좌우 출력을 묶어서 센터/우퍼 유닛에 연결했다. 예상치못한 복병 TDA7492P를 구입하기에 앞서 주의할점이 있는데 만약 당신이  인텔 AC 9560 의 블루투스 5 를 사용하고 있다면 T

[Python] - 블루투스 모듈 HC-06의 MAC 주소를 이용하여 통신 포트 찾기

Image
BlunoBeetle 버전 의 경우는 BlunoBeetle(피버시노) 과 BlunoLink(PC쪽 수신기) 가 무선을 해결해 주었기 때문에 PC가 직접 블루투스로 연결되지 않았다. 게다가 BlunoLink 의 시리얼 넘버도 한 자리로 잡혔었기 때문에 반쪽짜리 성공이였다. 하지만 지난번에 만든  블루투스 모듈(HC-06)을 이용한 피버시노 는 PC와 직접 블루투스로 연결된다. 초기 버전의 피버시노가 시리얼 넘버를 이용하여 통신포트를 찾았다면 이번에는 블루투스 장치의 MAC 주소를 이용하여 통신 포트를 찾아 보려고 한다. HC-06의 MAC 주소 알아내기 우선 블루투스 모듈의 MAC 주소를 알아내야한다. MAC 주소는 생각보다 어렵지 않게 알아낼 수 있는데 바로 장치관리자 에서 알아낼 수 있다. 이 방법 말고도 파이썬을 이용해서 알아내는 방법도 있다. 하지만 파이썬에서는 뭐가 MAC주소인지 알기 어려우니  장치관리자 에서 알아보는 것이 좋다. HC-06을 PC에 설치한 후 장치관리자에 보면 위와같이 2개의 직렬 포트가 열린것을 확인 할수 있다. 각각 송신과 수신이라고 보면 된다. 간혹 장치를 제거하고 재연결 했을때 두 포트의 역활이 바뀌는 경우도 있다. 재미있는건 한 포트에서만 MAC주소가 검출된다는 것이다. 내 경우에는 COM7으로 부터 아두이노의 시리얼 신호를 수신하는데, 바로 이 수신 포트만 MAC 주소를 가지고 있다. 참고로 HC-06의 패스워드는 "1234" 이다. 해당 포트의  속성 > 자세히 > Bluetooth Device Address  로 이동하면 나오는 값이 MAC주소이다. 뭔가 의심스러운 사람은 스마트폰과 연결해보면 쉽게 확인 할 수 있다. 아래 사진은 스마트폰에서 잡히는 MAC 주소이다. MAC 주소를 이용해 HC-06 통신 포트 찾기 장치관리자나 파이썬을 이용해 hwid(하드웨어ID) 를 찾아보면 다음과 같은 값을 확인 할 수 있다. 한 가지 아