라벨이 t-picoc3인 게시물 표시

T-PICOC3(MICROPYTHON)으로 WIFI 를 연결해보자. (2)

이미지
  T-PICOC3(MICROPYTHON)으로 WIFI를 연결해보자. (2) 이전포스트  에선 WIFI를 사용하기 위해 했던 설정 부분을 확인해봤고, 실제로 ESP32-C3로 주변 2.4ghz 대역의 wifi들을 검색, 연결 까지 해보았다. 그리고 원래 시간을 받아와서 시스템 시간을 현재 시간으로 맞춰줄려고 했는데... wifi를 연결하면 자동으로 시간을 가져오는듯 하다? utime.localtime() 으로 시간을 확인할수 있다. 리턴은 (2023, 5, 10, 9, 20, 7, 2, 130) 이렇게 나오고 타입은 tuple 이다. 이녀석을 조금 다듬어서 출력되고 있는 온습도 밑에 같이 출력해줘야겠다. def check_time (): buftime = utime . localtime() #print(buftime) time = str (buftime[ 0 ])[ 2 :] + "/" + zfill( str (buftime[ 1 ]), 2 ) + "/" + zfill( str (buftime[ 2 ]), 2 ) + " " + zfill( str (buftime[ 3 ]), 2 ) + ":" + zfill( str (buftime[ 4 ]), 2 ) + ":" + zfill( str (buftime[ 5 ]), 2 ) return time def zfill (s,length): return ( "00" + s)[ - length:] 위와 같이 함수를 만들어서 23/05/10 09:27:18 의 형식으로 만들었다. 참고로 저위의 zfill 이란 함수는 날짜와 시간중 한자리수 즉 1~9 까지의 숫자를 01~09로 표현해 주기위해 만든 함수다. 그리고 저번에 만든 LCD 출력 함수에 넣어서 실행 시켜 보았다. 그래도 한번 확인은 해보자  http://worldtimeapi.org/  사이트에서 세계시간을 HTT...

T-PICOC3(MICROPYTHON)으로 WIFI 를 연결해보자. (1)

이미지
  T-PICOC3(MICROPYTHON)으로 WIFI를 연결해보자. (1) 처음 T-PicoC3 를 받고 전원을 넣어보면 wifi 를 이용해 특정 ssid 에 연결하려는 시도가 보인다. 아무래도 초기 QC 에서 보드 테스트용으로 software를 올린듯 하다. 나도 이 와이파이를 이용해 현재 무선 인터넷을 사용해보자. 회로도를 보면   위는 RP2040  위는 ESP32-C3 TX , RX , CTS , RTS 가 연결되어 있는것을 알수 있다.  그럼 바로 진행 하기 앞서 ESP32-C3의 UART 커맨드를 알기 위해 검색을 좀 해보니, User guide 사이트가 있다.  ESP-AT User Guide 링크 저곳을 참고 하길 바란다. 기본 AT 커맨드로 진행 하고 wifi , bluetooth 관련 커맨드도 있다.  내가 할건 WIFI 테스트를 할거니, 일단 기본으로 AT 라고 보내서 OK가 오는지 확인해 보자. 그러기 위해선 UART를 initialize 해줘야 한다.  uart1 = UART( 1 , baudrate = 115200 , tx = Pin( 8 ), rx = Pin( 9 )) Machine 라이브러리의 Uart 메소드를 uart1 이란 변수에 넣어주고 이녀석으로 사용한다. 맨앞은 스탑비트 1을 의미하고, 보레이트, tx, rx 핀등을 정의해준다. 그리고 나의경우 보통 통신 read는 스레드에서 처리하는데, micropython 의 스레드를 테스트 하던중, 너무 빡쳐서 포기하고 폴링방식으로 처리를 했다.  한마디로 보내고 데이터 읽기 기다리고 데이터 수신 완료후 다음 순서로 진행하는 방식이다. 아직까진 테스트니깐 이러한 방식으로 일단 데이터 수신이 되는지 확인해봤다. 송신의 경우 앞에 만들어준 변수를 사용해 uart1.write("내용") 수신의 경우 buffer = uart1.read()  방식인데. 처음에  uart1.write("AT") ...

T-PICOC3(MICROPYTHON)으로 온습도(SHT30) 테스트. (4)

이미지
  T-PICOC3(MICROPYTHON)으로 온습도(SHT30) 테스트. (4) 이전 포스트  에선 machine 라이브러리의 LED 출력 및 I2C 관련 기본 정보 및 온습도계인 SHT30에 대해 조금 알아 보았다. 그리고 간단히 내 장치랑 연결되 있는 온습도계의 I2C 어드레스까지 스캔을 했다. 이번엔 데이터를 진짜 가져와 보자. 일단 machine 라이브러리에 I2C 와 SoftI2C 가 존재 하는것 같다. 일반적인 I2C 는 기본 I2C 라인을 이용하여 사용하여 효율적이고 빠르지만 핀에 제약이 있고, 소프트웨어I2C 는 모든핀에 사용하지만 효율적이지는 않다고 한다. 일단 난 기본 I2C 를 사용해서 테스트 해봐야겠다. import random import utime import st7789 import tft_config import vga1_bold_16x32 as font1 import machine from machine import UART,Pin,Timer,ADC,I2C,PWM tft = tft_config . config( 1 , 0 , 0 ) led = Pin( 25 ,Pin . OUT) i2c = I2C( 0 ,scl = Pin( 13 ), sda = Pin( 12 ), freq = 400000 ) print (i2c . scan()) def tick (timer): global buf led . toggle() def sht30_1 (): global i2c i2c . writeto( 0x44 ,b ' \x2C\x06 ' ) data = i2c . readfrom( 0x44 , 6 ) print ( str (data)) def main (): led . value( 0 ) tim = Timer() tim . init(mode = Timer . PE...

T-PICOC3(MICROPYTHON)으로 온습도(SHT30) 테스트. (3)

이미지
  T-PICOC3(MICROPYTHON)으로 온습도(SHT30) 테스트. (3) 이전 포스트  에선 LCD 라이브러리를 이용해 예제 파일을 실행 시켜보았다. 일단 다른 main.py 파일을 만들어서 예제 소스를 복사 붙여넣기 한다음, 나에게 맞게 수정을  해봐야겠다. 그리고 나머지 출력 이나 버튼 입력등의 테스트를 진행해 볼생각이다. 아 그리고 파일을 main.py 로 생성후 pico 에 다운로드시 전원 입력되면 바로 실행이 된다. 자 일단 기본 LED 예제를 넣어서 테스트 해보자. 다운로드한 라이브러리 ( 1번째 포스트 )폴더 내의 doc 폴더에 raspberry-pi-pico-python-sdk.pdf 파일이 있다.  앞부분은 다 버리고 12page 부터 LED Blink 예제가 있다. 근데 그냥 키면 재미 없으니깐 타이머 예제를 활용해서 켜보자. from machine import Pin, Timer led = Pin( 25 , Pin . OUT) tim = Timer() def tick (timer):      global led      led . toggle() tim . init(freq = 2.5 , mode = Timer . PERIODIC, callback = tick) machine 라이브러리는 마이크로 파이썬 에서 사용하는 하드웨어 제어 라이브러리다. led 변수에 Pin 이란 인스턴스메소드를 할당시킨다. 그때 매개변수를 같이 넣고 led 란 변수는 machine.Pin(25,Pin.OUT) 으로 사용. 그리고 tim 변수에  Timer() 인스턴스메소드를 할당.  def tick(timer): 로 메소드 정의후 아래에는 위에서 만든 led 를 글로벌변수로 사용하고 tick 이 불려질때마다 led.toggle() 로 LED 를 토글시킨다. 그리고 타이머 초기화는 맨아래 init 으로 초기화 하는데 , freq는 h...

T-PICOC3(MICROPYTHON)으로 온습도(SHT30) 테스트. (2)

이미지
  T-PICOC3(MICROPYTHON)으로 온습도(SHT30) 테스트. (2) 이전 포스트  에서 간단히 T-PicoC3를 간단히 켜보는 것 까지 하고 이것저것 micro python 을  프로그래밍 하기 위한 IDE , 예제소스 등을 다운 받았다. 일단 micro python 을 프로그래밍하기 위한 Thonny 를 켜보자. 일단 좌측에 파일 뷰에서 경로를 내 프로젝트 경로를 지정하고, 이전 포스트에서 git 에서 예제를 다운 받았는데 , example / micropython 에서 st7789_mpy 는 경로를 추가 한건지 다운이 안되서 따로 추가로 다운받았다.  그렇게 다운 받은 st7789_mpy 라이브러리에 examples 에서 hello.py 를 실행해 보자. 일단 처음에 삽질을 좀 했다. 컴포트를 연결해서 진행하는것 같은데... 아무리 해도 안되는데? 혹시나 리셋키를 눌른 상태에 run 버튼을 눌렀다가 두 버튼을 떼면 uf2 다운로드 모드로 들어간다. 이녀석에 대한건 구글링을 해서 찾아 보기 바람.  나도 잘 모르니, 검색을 좀 해봤다. uf2 부트로더를 rp2040 에 올려서 리셋후 버튼 조건이 맞으면 다운로드 모드로 들어가는것 같다.  부트로더로 진입하면 usb mass storage 형태로 인식하면서 새로운 드라이브로 pc 에 연결된다.  그후 .uf2 확장자로 만들어진 프로그램 파일을 복사해 넣으면 다운로드 완료. 참 간편하다. 이건 예전에 stm사의 stm32f103 nucleo 개발 보드 정품을 샀을때 처음 경험해 봤었다. 여튼 내가 원하는건 이런 모드가 아니다. 통신으로 잡혀서 진행 thonny 에서 다운로드가 가능한 형태로 변경 되어야 하는데... 이런 저런 테스트를 해보다가.....  갑자기 thonny 에서 micro python 설치팝업이 뜨네..  uf2 모드에서 thonny 의 stop 버튼 저녀석을 눌렀더니 팝업창이 나왔다. 그래서 설치를 진행...

T-PICOC3(MICROPYTHON)으로 온습도(SHT30) 테스트. (1)

이미지
 T-PICOC3(MICROPYTHON)으로 온습도(SHT30) 테스트. (1) 나는 알리익스프레스 쇼핑을 참 좋아한다. 한달에 한건 이상은 무조건 사고 싶은걸 보고 주문  하는것 같다.  이번에 산건 라즈베리파이 피코 같은 녀석인데. LILYGO 라는 회사에서 만든 제품인듯 하다. 이녀석이고 대략 15000~20000원 선 인듯 하다.  난 17000원에 샀는데 다른 판매자들은 조금씩 다르게 판다. 그리고 또 산건  이녀석 온습도 센서다. I2C로 통신하고, 전원은 2.5 ~ 5V 까지라고 한다. 일단 wire로 각각의 위치에 맞게 땜을 날려줬다.  일단 하드웨어 준비는 마쳤고. C 타입 USB 로 전원을 연결하면, 처음에 아래의 동영상 처럼 동작 한다. 처음에 제조사에서 wifi등을 테스트 하기 위한 프로그램인것 같다. 어딘가로 연결 하려고 시도하였으나, 실패. 저기서 계속 기다리고 있는것 같다.  여튼 위의 프로그램은 밀어 버릴거고, 디스플레이는 생각보다 나쁘진 않다. 자 이제 프로그래밍 모드로 들어가고 싶은데 도대체 어떻게 연결해야 프로그래밍 모드로 동작하는건지 한참 해맸다. 일단 usb c type 의 방향에 따라, RP2040 에 연결 되거나, ESP32-C3 에 연결된다.  연결후 파란색 LED 가 켜지면 RP2040 , 초록색 LED 가 켜지면 ESP32-C3 에 연결 되는데, 난 RP2040 만 연결하면 되니, 그방향으로 연결하고, 프로그래밍 툴은 thonny 라는 python ide 가 있다.  이녀석을 일단 설치,  https://thonny.org/  T-picoC3 의 예제 및 기타 폰트 소스가 있는 곳은 https://github.com/Xinyuan-LilyGO/T-PicoC3   여기 일단 프로그래밍 툴 및 예제 파일 까지 다운 받았으니,  준비는 마쳤고, 다음에 연결해서 기본 예제를 돌려봐야 겠다. 저 git 저장소엔...