기본 콘텐츠로 건너뛰기

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

24Mhz 8ch Logic Analyzer를 최근에 구매했다.

이런 무시무시한 물건은 아니다.

Saleae라는 회사에서 만든 제품인데 USB로 8ch 까지 전송하고 모니터 대신 프로그램(왜 안드로이드나 iOS 앱이 없는지 모르겠다. 적어도 안드로이드는 있을 법도 한데?)으로 분석하는 제품이다.
가격 대비 너무나 훌륭한 제품인데 Aliexpress 버프를 받아 $10도 안되는 가격에 구했다.

테스트를 해보려고 보니 nodemcu 문서에 요상한게 있었다.

바로 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

훌륭하다.
주의할 점은 logic analyzer 쪽에선 CH1~8까지지만 프로그램에선 0~7까지니 -1씩 빼줘서 연결한다.


내친김에 I2C 테스트도 해보자.
5,6 번 핀에 1,2를 꽂고 Analyzer 에서 I2C를 추가한 후 아래와 같이 nodemcu에서 올려보자.

sda = 5
scl = 6
i2c.setup(0, sda, scl, i2c.SLOW)
i2c.write(0, "hello", "world")

트리거라는 기능이 있으니 사용하면 편하다. 해당 채널이 HIGH혹은 LOW가 되는 시점부터 캡쳐를 시작할 수 있다.
멋집니다.

근데 문자값이 얼만지는 어떻게 아는 건지 잘 모르겠다;;; 뭔가 초록/주홍 점이 생긴 건 알겠는데;;;;

도플광어(https://twitter.com/gbox3d) 님의 요청에 따라 SPI도 도전해본다.
라인 두개를 더 꽂자.

SPI의 경우 WeMos기준
5 - SCK
6 - MISO
7 - MOSI
8 - CS

인걸로 보인다.
spi.setup(id, mode, cpol, cpha, databits, clock_div[, duplex_mode]) 인데 뭐가 뭔지 모르겠다.

spi.setup(0, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, spi.DATABITS_8, 0, spi.FULLDUPLEX)

10k 저항도 꽂고 했는데

음......
모르겠다. +_+
일단 여기까지.

이 블로그의 인기 게시물

Mac 주의 - 약간 빡치는 git 대소문자 변환 파일명 변환(renaming)하는 법

Mac에서 종종 화나는 일 중 하나가 파일 시스템이 대소문자를 구분하지 않는 점이다.
가령, A.png를 a.png로 바꿔야할 경우 HFS 기준으론 전혀 바뀐 점이 없는 걸로 인식하는데 다소 화가난다.
하지만, 방법이 없는 것은 아닌데

A.png를 임의의 다른 파일로 바꾼다. (ex. A_.png)1에서 바꾼 상태에서 staging 한다. (git add A_.png)1의 파일을 다시 원래 바꾸려고 했던 파일로 바꾼다. (mv A_.png a.png)3을 다시 staging 한다. (git add a.png)commit 한다.https://stackoverflow.com/a/40307511/880991 에서 답변해준 Chris Barr 님에게 감사를.
* 추가

실제로 해보니 git mv --force A.png a.png 가 더 간단하다. 이는 바로 staging 영역에 add까지 해준다.

graphql 연습 /w launchpad

https://launchpad.graphql.com/mw9wkzv99
단순 전체쿼리+조건쿼리+추가

http://graphql.org/graphql-js/passing-arguments/
참고. random ID는 crypto 1.0.1 사용
  type Query {
    Members: [member]
    getMember(id: ID!): member
  }
  type member {
    id: ID!
    text: String
  }
  input memberInput {
    text: String
  }
  type Mutation {
    addMember(member: memberInput): member
  } SQL 정의. facebook 쪽은 스트링에 지지는 거 진짜 좋아하네. *.gql 파일이 있다고 하니 이해해주자.
resolver는 var buffer = [];
const resolvers = {
  Query: {
    Members: (root, args, context) => {
      return buffer;
    },
    getMember: (id)=> {
      return buffer.find(o=>o.id)
    }
  },
  Mutation: {
    addMember(_, {member}) {
      const mm = { ...member, id:randomBytes(10).toString('hex') };
      buffer.push(mm);
      return mm;
    }
  }
}; 평범 평범.
https://dev-blog.apollodata.com/tutorial-graphql-subscriptions-server-side-e51c32dc2951 다음으로 pub/sub 연습.
https://launchpad.graphql.com/xvn94n3ql   type Subscription {
    memberAdded: member
  } member가 added되는 순간을 감시. imp…

즐거운 Online Prototyping Tool 들

jsbin, codepen, jsfiddle 이런 것들은 일단 생략. 너무 유명한 것들이라.

https://launchpad.graphql.com - node.js 기반 graphQL 연습장. 이것만으로도 충분히 훌륭한 백엔드
https://codesandbox.io/ npm 사용이 가능한 클라이언트 사이드 연습장. webpackbin이 너무 문제가 많아서 찾아본 것.

https://scrimba.com 이건 codesandbox+ asciinema(https://asciinema.org/) 같은 느낌인데 키 녹화와 음성 녹화 기능이 추가되었다. 다 좋은데 화살표 키로 빨리감기 뒤로감기 기능이 안되고 익스포트(youtube등)으로 지원이 없는게 아쉽다.

이 둘이 만나면? https://codesandbox.io/s/jvlrl98xw3?from-embed
뭐야 이거 무서워 하지마 ㄷㄷ;  graphql+react-native-web(부왘ㅋㅋ)

https://repl.it/languages 전통을 자랑하는 REPL 도구. 지원 언어 종류가 -_-;;;;;

https://tio.run/# repl.it? 장난함? 얘는 지원 언어가 무려 386종류. J랑 아희도 있다.

https://play.golang.org/ 즐거운 go playground. 소스 포멧팅 넘 좋아.

http://decaffeinate-project.org/repl/ 최고의 coffeescript REPL. 원래 용도는 coffee를 ecma6코드로 바꾸는 것이지만...

https://scaphold.io
https://www.graph.cool/ graphql backend service. scaphold.io는 설치도 필요없는 클라우드. graphcool은 호스팅+클라우드 다있음. 둘 다 막상막하. 푸쉬서버도 되고 뭐 미친득.

https://glitch.com/ gomix에서 결국 glitch로 안착.  node.js

https://www.shadertoy.com 잘하고 싶다! 쉐이다! 오디오도 된다!

http:/…