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

[Arduino] - 아두이노 프로 미니를 이용해 피버시노 만들기



피버시노는 매우 간단한 장치이기 때문에 누구나 손쉽고 저렴하게 만들어 볼 수 있다.

지난번에 HC-06 을 이용해 PC와 아두이노 우노의 블루투스 연결을 테스트 해보았다.
이번에는 Arduino Pro mini 3.3v, MPU6050(가속도 센서), HC-06(블루투스) 를 이용해 피버시노(PivotIno)를 만들어보려고 한다. 아두이노 소스코드는 피버시노 1.1.3 에서 사용한 코드를 그대로 사용했다.

만들기에 앞서 잘 작동이 되는지 테스트를 해보았다. 테스트 모델은 MPU6050의 여분이 없기때문에 ADXL335을 이용해서 라이브러리에 있는 예제를 업로드해서 결과를 블루투스를 통해 받아보았다.



  • 장치를 서로 연결하기 앞서 아두이노에 프로그램을 업로드해야한다.
아두이노의 Rx Tx에 직접 블루투스를 연결하기 때문에 무선 업로드를 고려해 볼 수도 있지만, 혈압이 상승 할 수 도 있다. 그렇기 때문에 블루투스 모듈을 연결하기 전에 업로드는 유선으로 하는것이 좋다. 무선 업로드를 알아보고 있다면 이 포스트가 도움이 될 것이다.

이번 피버시노는 시리얼 넘버가 없고 블루투스를 이용한다.
피버시노 1.1.3 의 파이썬 코드에서 시리얼 넘버를 이용해 피버시노의 포트를 자동으로 찾아 연결하도록 만들었는데 블루투스로 PC와 직접 연결하기 때문에 필요가 없어졌다. MAC 주소가 있기 때문이다. 다음에는 MAC주소를 이용해서 탐색하도록 만들어야겠다. 만약 이 방법이 잘 안되면 사용자가 프로그램에서 포트를 선택 할 수 있게 하는것도 좋은 생각이다.

지금은 아래의 코드를 사용하고있다.

  • 파이썬 소스코드 수정 시리얼 포트 탐색기능 제거
def waitForSerialInit():
    com_Port = ["COM7"]
    while True:
        for device_Port in com_Port:
            try:
                serialFromArduino = initSerial(device_Port)
                print("device found on " + device_Port)
                return serialFromArduino
            except Exception:
                print("Failed to device on " + device_Port)
        time.sleep(5)
cs
com_Port = ["COM7"] 여기에 본인의 HC-06 (블루투스) 로 부터 컴퓨터로 보내는 com_Port 를 적어주면 된다. HC-06 보내는 포트 받는 포트가 다르니 주의한다.

아두이노 프로 미니는 FTDI와 같은 장치를 이용해 업로드 하는것이 좋다.
우선 아두이노 프로 미니와 가속도 센서 블루투스를 연결해야한다.


MPU6050와 아두이노는 SCL to SCL(A5), SDA to SDA(A4), INT to D2 로 연결한다.
전원은 TP4056 리튬 충전 모듈을 이용해 충전지를 사용할 것이다.

부품들이 준비 되었다면 적당한 케이스를 만들어 넣어주면 된다.
무선이기 때문에 금속 케이스는 안된다.
토글 스위치로 온오프 되며 TP4056으로 충전이 가능하다.
화면회전은 DEVMODE 를 참고해서 만든 rotateTO 함수를 이용한다.




소스코드는 여기에서 받을 수 있다.

Comments

Popular posts from this blog

[POE] - 패스 오브 엑자일 획득키 F 의 사용법 (Path of Exile)

[Arduino] - HC-06를 이용해 PC 와 Arduino 블루투스 연결

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