기본 콘텐츠로 건너뛰기

라벨이 gpio인 게시물 표시

[tip] pico-8의 GPIO 기능

http://www.lexaloffle.com/pico-8.php?page=manual  를 읽다보니 재밌는 부분이 있다. 그건 바로 pico-8이 GPIO(General Purpose Input Output)를 지원한다는 점인데 CHIP/Pocket CHIP 뿐만 아니라 Raspberry Pi에도 대응하고 심지어 HTML으로 export했을 때도 된다는 사실. pico-8에는 가상의 메모리 맵이 있고 PEEK/POKE 명령으로 해당 주소를 읽고 쓸 수 있다. 메모리 맵은 아래와 같은데 0x0    gfx 0x1000 gfx2/map2 (shared) 0x2000 map 0x3000 gfx_props 0x3100 song 0x3200 sfx 0x4300 user data 0x5e00 persistent cart data (256 bytes) 0x5f00 draw state 0x5f40 hardware state 0x5f80 gpio pins (128 bytes) 0x6000 screen (8k) 이 0x5f80영역이 GPIO랑 붙는다. PEEK(0x5f80), POKE(0x5f81, 0xff)와 같이 접근 가능하다. CHIP류에선 0~7번 핀을 0x5f80~0x5f87까지 (PocketCHIP은 0,1 생략) RaspberryPi류에선 0x5f80~0x58f8f까지 사용할 수 있다. WiringPi Pin 번호에 주의하자 여튼 GPIO를 사용할 땐 pico8을 반드시 sudo 로 구동하여야 원활하게 사용할 수 있는 점을 명심하자. 재미있는 점은 HTML을 export 했을 때 pgio8_gpio 란 글로벌 변수로 GPIO를 시뮬레이션 할 수 있다. var pico8_gpio = Array(128); 이와 같이 미리 선언하고 PEEK, POKE하면 외부에서 pico-8 모듈로 읽고 쓰기가 가능해서 매우 유용하니 꼭 기억해두자.

nodemcu(esp8266) 신기능 gpio.serout() 에 대해 알아보자...는 훼이크고 로직 아날라이저 자랑

24Mhz 8ch Logic Analyzer를 최근에 구매했다. 이런 무시무시한 물건은 아니다. Saleae라는 회사에서 만든 제품인데 USB로 8ch 까지 전송하고 모니터 대신 프로그램(왜 안드로이드나 iOS 앱이 없는지 모르겠다. 적어도 안드로이드는 있을 법도 한데?)으로 분석하는 제품이다. 가격 대비 너무나 훌륭한 제품인데 Aliexpress 버프를 받아 $10도 안되는 가격에 구했다. 테스트를 해보려고 보니 nodemcu 문서에 요상한게 있었다. https://nodemcu.readthedocs.org/en/dev/en/modules/gpio/#gpioserout 바로 serout. serial out인데 연속적인 output을 쏴주는 명령이라고 써있다. gpio.serout(pin, start_level, delay_times [, repeat_num]) 구문은 위와 같은데. 지정한 pin 에 start_level로 시작해서 N개의 delay_time을 배열로 받아 토글을 해주는 명령이다. 1번핀을 기준으로 테스트해보았다. WeMos 제품 기준으로 GND/D1을 CH1/GND에 각각 연결하고 { 30,30,60,60,30,30 }을 넣어보았다. gpio.mode(1,gpio.OUTPUT,gpio.PULLUP) gpio.serout(1,1,{30,30,60,60,30,30}) 2µs 정도 오차가 있다. 32 High/ 32 Low / 62 High / 62 Low / 32 High / 32 Low 순서대로 잘 들어오는 걸 볼 수 있다. 끝내주네! 2씩 빼면 오차보정이 정확하게 되려나? 그러하다... gpio.serout(1,1,{28,28,58,58,28,28}) 실행결과 반복문이 있어서 10회 반복해보았다. 10번 반복했더니 10번 나왔다. 32µs 62µs 훌륭하다. 주의할 점은 logi...