Posts

Showing posts from February, 2017

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

Mi Power Bank 20000mAh 샤오미 신형 파워뱅크

Image
기존에 사용하던 배터리는 5000mAh와 20000mAh 두 가지가 있다. 5000mAh는 용량이 너무 작고 여러 기기를 동시 운영하기에 무리가 있었다. 20000mAh는 덩치가 너무 크고 무거웠다. 배터리가 많이 필요하게 되자 덩치가 커지고 지저분해 졌다. 현재 샤오미의 보조배터리는  Mi Power Bank 가 용량별로 5000mAh, 16000mAh, 10000mAh, 20000mAh 가 있다. Mi Power Bank Pro 가 10000mAh 가 있다. Pro버전은 국내에서 2세대라고 불리는것 같다. 여기서 2개의 충전 포트를 가지고 있는 제품은 16000mAh 과 20000mAh 이다. Mi Power Bank 20000mAh 는 기존 10000mAh 두 대를 합친 무게보다 가볍고 고속 충전 성능이 3시간 충전량으로 볼때 5000mAh 에서 11000mAh 로 향상되었다. 2개의 포트가 달린 고용량의 보조 전원 장치가 필요하다고 판단했고, 한쪽은 Raspberry Pi 나머지 한쪽은 공유기의 전원으로 사용할 생각이다. 어느정도 예상은 했지만 퀵차지 2.0 으로 고속 충전시 발열이 뜨끈뜨끈 하게 발생했다. 노트북 어답터에서 느껴지는 발열보다 좀더 심했다. 한 동안 여기저기 펑펑 터지는 뉴스가 많았기 때문에 무시할만한 발열은 아니라 생각된다. 그러나 대부분의 고속 충전을 지원하는 기기들은 발열이 어느정도 있고 충전기와 보조배터리 둘다 보호회로가 있으니 믿어보기로 하였다. (하지만 역시 뜨겁다.) 동봉된 케이블은 이전에 사용하던 것보다 약 1.8배 정도 길다. 주의할 점은 충전후 케이블을 제거 했을때 micro USB 부분이 많이 뜨거우니 조심해야한다. 다른 일반 포트를 이용해 충전하면 커넥터는 뜨겁지 않고 미지근한 수준이다. 뜨거워서 불안한 사람들은 충전시간은 감수하고 일반 충전을 이용하면 된다. Mi Power Bank 20000mAh 의 출력은 5V 1A

[Raspberry Pi] - rc카 만들기 #7 카메라 틸트 만들기 (Camera Tilt)

Image
#7 카메라 틸트 카메라를 사용하는 방법을 알았으니 이제 로봇에 마운트를 시켜야 한다. 물론 그냥 달아 주기만 해도 멋지지만 서보 모터를 장착한 카메라 틸트를 이용하면 로봇이 큰 이동없이 제자리에서 주변을 둘러 볼 수 있다.  문제는 시중의 틸트들은 대부분 가격이 만만치가 않다.  거기다 마음에드는 구조일수록 고가였다. 까짓거 만들자는 생각이 들었다. 틸트 프레임은 포맥스를 이용해 제작하였다. 포맥스는 칼로 자를 수 있을 만큼 재단이 쉽고 내구성도 좋다. 또 생상도 다양해 선택의 폭이 넓다.  틸트는 파츠별로 제작하여 조립식으로 만들었다. 틸트는 1mm 포맥스 2장을 겹쳐서 만들었고, Pi Cam 구입시 딸려오는 마운터를 마운트 할 수 있도록 만들었다.  토션 스프링은 기타줄을 잘라 만들었다. 안쪽의 서보모터는 록타이트 로 붙여진 것이 아니라 추후에 틸트가 업그레이드 될 수도 있기때문에 끼워서 고정되는 방식으로 제작하였다. (록타이트는  제질에 따라 부품이 손상될수도 있다. ) 하단의 서보모터는 스크류 나사로 고정되어있다. 서보 컨트롤러 선을 각각의 핀에 할당  해주고 Dual Shock 4로 컨트롤 할 수 있도록 조건문을 작성해 준다. 입력 펄스값은 본인이 어떤 각도를 기준으로 삼았냐에 따라 다르다. 다음 코드는 카메라 틸트 부분만을 캡쳐한 것으로 L2, R2가 0보다 작거나 같으면 펄스값을 0으로 만들어 틸트가 컨트롤러(Dual Shock 4)의 입력으로 움직이지 않도록  해준다.   이는 Dual Shock 4의 오른쪽 Axis를 로봇의 앞 바퀴의 방향전환을 담당하는 서보와 함께 이용하기 때문이다.   주변 환경의 관찰이 필요할 시에  L2, R2을 당겨서  카메라의 방향을  오른쪽 Axis로  조종 할 수 있도록 한다.  참고로  L2, R2의 값은 1부터 -1까지의 값이며 완전히 눌렸을 때의 값이 1이다. 따라서 

[Raspberry Pi] - rc카 만들기 #6 카메라(Pi Cam)

Image
 #6 카메라(Pi Cam) 이번에는 로봇에 카메라를 달아 볼 것이다. 카메라의 쓰임은 원격 조종시 로봇 주변 환경의 탐사와, 동영상 혹은 스틸컷을 데이터로 남기기 위함이다. 또한 로봇에 장착된 AP에 접속한 기기들은 실시간 스트리밍 영상을 볼 수 있다. 카메라를 사용하시위해서는 환경 설정에서 카메라를 활성화 시켜주어야한다. 환경설정 - 인터페이스 옵션에 있다. sudo raspi-config 코드는 듀얼 쇼크(DualShock4) 기준으로 작성되었다. square 버튼다운시 스틸컷을 찍어 날짜 및 시간을 이름으로 외부 저장 장치에 저장된다. circle 버튼다운시 동영상 스트리밍을 시작한다.  왜 스크립트를 따로 만들어야 하는지는 조금있다 설명하겠다. cross 버튼다운시 스트리밍을 종료한다. if  joystick.get_button( 0 ):      #print("spuare pressed")     now  =  time.localtime()      file   = '%04d-%02d-%02d-[%02d.%02d.%02d]'  % (now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_min, now.tm_sec)      print ( 'picture time'   +   file   +   '.png' )     call( 'sudo raspistill -v -p 100,100,400,300 -o /media/pi/PIC/'   +   file   +   '.png &' , shell = True) elif  joystick.get_button( 1 ):      #print("cross pressed")      print ( "raspivid and l

[Raspberry Pi] - rc카 만들기 #5 진행상황

Image
초반에는 배터리팩 하나로 Raspberry Pi, Servo, ESC 모두 구동하는 것 이었으나 ESC 최대 출력 로드시 배터리 파워를 혼자 독식하게 되면서 Raspberry Pi의 파워가 순간 끊겨 재부팅 되는 문제가 발생했다. 안정적인 작동을 위해선 Raspberry Pi의 전원은 별도로 공급 해주는 것이 좋다. 12V 배터리 팩에 연결하여 SDM을 이용해 5V로 컨버팅 후 Servo에 공급해준다. 오래되서 그런지 배터리 소모가 빠른 Dual Shock 4를 SDM의 USB  단자를 통해 충전 할 수 있게 되었다. 아직 최종 적인 모습도 아니고 모든기능이 구현 된 것도 아니다. Picar의 목적은 처음 시작은 단순히 이동하는 로봇 이었지만 지금은 AP가 필요한 지점에 이동하여 네트워크에 접속 할 수 있도록 해주고, 카메라를 탑재해 스트림 화면을 통해 원격 구동을 원활하게 만들 예정이다. Picar의 Camera Stream, WiFi Access Point 등의 기능이 구현 중에 있다. Thx .