지난번 설계 에서 두 가지 업데이트 사항이 있다. 첫 번째로 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
Get link
Facebook
X
Pinterest
Email
Other Apps
[Raspberry Pi] - rc카 만들기 #6 카메라(Pi Cam)
Get link
Facebook
X
Pinterest
Email
Other Apps
-
#6 카메라(Pi Cam)
이번에는 로봇에 카메라를 달아 볼 것이다. 카메라의 쓰임은 원격 조종시 로봇 주변 환경의 탐사와, 동영상 혹은 스틸컷을 데이터로 남기기 위함이다. 또한 로봇에 장착된 AP에 접속한 기기들은 실시간 스트리밍 영상을 볼 수 있다. 카메라를 사용하시위해서는 환경 설정에서 카메라를 활성화 시켜주어야한다.
환경설정 - 인터페이스 옵션에 있다.
sudo raspi-config
코드는 듀얼 쇼크(DualShock4) 기준으로 작성되었다.
square 버튼다운시 스틸컷을 찍어 날짜 및 시간을 이름으로 외부 저장 장치에 저장된다.
스트리밍을 할 IP주소를 정해주어야 하는데 AP와 Raspberry Pi는 이더넷 으로 연결 되어있기 때문에 eth0의 아이피를 적어주면 된다.
다만 if의 이름은 스트링이 아닌 바이트코드 형식이기 때문에 python3를 사용한다면 앞쪽에 b를 붙여주어야 바이트코드로 인식 한다.
아래의 코드는 Raspberry Pi가 AP에 접속 될 때의 이더넷 아이피로 동영상을 전송한다.
스크립트를 따로 만들어 주어야 하는 이유는 지금까지 만든 메인 스크립트는 부팅시 자동으로 실행 되도록 앞서 설정해두었다. 문제는 메인 스크립트를 실행시 아래 코드가 포함 될 결우 아직 네트워크에 접속이 되지 않은 상태에서 IP를 불러오려고 하기때문에 인터럽트가 발생해 로봇은 작동하지 못한다.
from subprocess import call
import socket
import fcntl
import struct
def get_ip_address(ifname):
s = socket.socket(socket,AF_INET, socket,SOCK_DGRAM)
한국에 패스 오브 엑자일이 상륙하게 되면서 많은 사람들이 관심을 가지고 있다. 패스 오브 엑자일은 디아블로3가 기대에 미치지 못했던 플레이어들 사이에서는 디아블로2의 정신적 후속작으로 인정받고 있는 핵슬게임이다. 아직은 프리오픈 기간이지만 한국 서버가 생기면서 한국 플레이어들이 많아지고있다. 만약PC방과 같은 곳에서 한국 서버로 접속이 안되는 경우 내 문서 > my games 에 있는 Path of Exile 폴더를 지우고 실행하면된다. 채팅장에는 무수한 한글이 보이고 여러 질문들이 올라오는데 바로 아이템 획득 키인 F 키 이다. "아이템 획득키 어떻게 사용하는건가요?", "아이템이 먹어지지 않아요!", "아이템 어떻게 주워요?" "아이템 링크 어떻게 하나요?" 등 의 질문이 많이보인다. 사실 디아블로를 해본 사람들이라면 키 세팅도 크게 다르지 않기 때문에 적응하기에 쉽지만 그렇지 않은사람들도 있는것으로 보인다. 드롭된 아이템들을 확인할 수 있는 방법에는 크게 두 가지로 Alt 키 와 Z 키 가 있다. 우선 Alt 키 를 눌러 푸쉬온 방식으로 누르고 있을때만 드롭된 아이템들을 확인 하는 방법과 Z 키 를 이용해 푸쉬락 방식으로 한번 누르면 다음에 누를때 까지 강조효과가 지속되어 떨어져있는 아이템이나 오브젝트를 확인할 수 있는방법이 있다. 여기까지는 게임을 처음 접하는 사람들도 문제없이 인지하고 있다. 아이템 링크의 경우 패스 오브 엑자일에서는 Ctrl + Alt 를 누른상태에서 원하는 아이템을 클릭하면 채팅창에 올릴 수 있다. # 그럼 F 키는 어떻게 사용하나? 패스 오브 엑자일의 입력 설정 에서 확인해보면 F 키는 아이템 획득 키로 지정이 되어있다. 아마 이 옵션을 본 대다수의 플레이어가 F 키를 누르면 아이템이 인벤토리로 들어올 것으로 생각하는 것 같다. 이렇게 생각하는 원인은 요즘 온라인 게임들은 아주 편리하게 아이
아날로그 자이로 센서의 값을 블루투스 HC-06를 통해 컴퓨터로 전달 받을 수 있게 하려고 한다. 블루투스로 통신을 하기 위해서 지난번과 같은 문제 를 방지하기 위해 HC-06 의 baud rate를 115200로 변경해야한다. 115200로 사용해야 정상적으로 업로드가 된다. baud rate 수정 우선 아래의 코드를 아두이노에 업로드한다. #include SoftwareSerial BTSerial( 2 , 3 ); / / Tx:Digital 2pin, Rx:Digital 3pin void setup() { Serial.begin( 9600 ); BTSerial.begin( 9600 ); Serial.println( "Annajin AT" ); } void loop() { if (BTSerial.available()) Serial.write(BTSerial.read()); if (Serial.available()) BTSerial.write(Serial.read()); } Colored by Color Scripter cs AT 커맨드를 순서대로 입력한다. AT+BAUD8 을 입력하면 baud rate 가 115200로 바뀐다 다시 9600으로 바꾸려면 다음과 같이 수정하고 AT+BAUD4 를 입력하면 된다. void setup() { Serial.begin( 115200 ); BTSerial.begin( 115200 ); Serial.println( "Annajin AT" ); } cs HC-06 페어링 컴퓨터와 페어링을 하기 앞서 아두이노의 디지털 2번과 3번에 연결했던 HC-06의 TX, RX 핀을 디지털 0번 1번으로 옮겨준다. 여기까지 한 다음에 컴퓨터에 페어링을 해야한다. 블루투스 페
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) 를 찾아보면 다음과 같은 값을 확인 할 수 있다. 한 가지 아
Comments
Post a Comment
좋은하루되세요. ^^