반응형



웹용 언어인줄로만  알았던 자바스크립트인데  하드웨어 제어도 됩니다. 참 신기합니다. 


어떤 장점이 있어서 사용하게 되었는지도 궁금하구요..  

찾아보면 Node.js나 비슷한 류를 기반으로 하는 임베디드 보드들도 꽤 있습니다.. 


2015.11.27

2109. 08.12 - node 설치 방법 변경




문제없이 동작하는 Node.js 버전이 정해져 있어서  해당 버전을 사용해야 합니다. 

onoff 깃허브 페이지에서 확인 가능합니다. 주소는 참고 [2]에 있습니다. 


다음과 같은 방법을 Node.js 4.8.4를 설치해줍니다.



$ sudo npm cache clean -f


$ sudo npm install -g n


$ sudo n 4.8.4





문제 없으면 다음처럼 버전으로 4.8.4가 출력됩니다. 



$ node -v

v4.8.4





이제 LED를 제어해보기 위해서 디렉토리를 생성하고 이동해서 



$ mkdir ledBlink && cd ledBlink





하드웨어 제어를 위해 사용할 onoff 노드 모듈을 설치합니다. 


 

$ npm install onoff





nano 편집기로 새로운 파일을 하나를 열어서 



nano led.js





다음 코드를 복사하여 붙여넣기합니다. 


'use strict';

const Gpio = require('onoff').Gpio; // Gpio class
const led = new Gpio(21, 'out');       // Export GPIO17 as an output

// Toggle the state of the LED connected to GPIO17 every 200ms
const iv = setInterval(_ => led.writeSync(led.readSync() ^ 1), 200);

// Stop blinking the LED after 5 seconds
setTimeout(_ => {
  clearInterval(iv); // Stop blinking
  led.unexport();    // Unexport GPIO and free resources
}, 5000);




LED의 긴 핀을 라즈베리파이의 40번 핀에 연결하고 LED의 짧은 핀을 39번 그라운드에 연결합니다. 

GPIO로는 21번에 해당해서 소스코드에는 21이라고 적어주었습니다. 




실행시켜보면 LED가 5초 정도 깜빡이다가 중지되고 프로그램이 종료되는 것을 볼 수 있습니다.  

 

sudo node index.js




나머지 예제들은 다음 링크에서 확인해보세요.

https://github.com/fivdi/onoff/tree/master/examples




참고


[1] https://github.com/fivdi/onoff


[2] https://stackoverflow.com/a/52109489





반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts