RaspberryPi20 웹기반 조이스틱 제어 조이스틱 조이스틱이란 움직임에 따라 저항 값이 변하는 가변저항이 달려 있어서 그 값을 이용해 움직임이나 방향 등 표현에 활용할 수 있는 모듈 그 값을 이용해 움직임이나 방향 등 표현에 활용할 수 있는 모듈 90도 각도로 가변저항이 달려있고, Z축에 텍트 스위치가 달려있어 2축+1온/오프 제어가 가능한 모듈입니다. 위에서부터 SW(z축 스위치핀), VRY(Y축), VRX(x축), 5V, GND(-)로 구성되어있습니다. 연결은 VRY와 VRX는 MCP3208에서 CH0번과 CH1번과 연결합니다. 그리고 MCP3208칩은 앞에 나와있던 것 처럼 연결합니다. 참고 https://hyun-am-coding.tistory.com/entry/SPI-%EB%B0%A9%EC%8B%9D%EA%B3%BC-ADC-%EC%B9.. 2019. 11. 17. SPI 방식과 ADC 칩 1. SPI방식 SPI방식이란 Serial Peripheral Interface의 줄임말입니다. 4개의 버스(SCLK, MOSI, MISO, SS)를 이용하여 데이터를 전송합니다. gpioall 명령어를 실행시켜보면 해당하는 물리적핀에 이것을 확인 할 수 있습니다. 또 라즈베리파이에서 SPI기능을 활성화하기 위해 터미널에서 $sudo raspi-config 명령어를 치시면 됩니다. 2. mcp3208칩 구성 mcp3208칩의 구성은 아래와 같이 생겼습니다. 이것을 보고 ADC칩이라고 부르는데 ADC칩이랑 (Analog to Digital Converter)의 줄임말 입니다. 16번과 15번은 (+5V)연결할때 사용됩니다. (2번) 14번에 AGND는 GND(0v)를 연결할때 사용됩니다. 아날로그 GND .. 2019. 11. 16. 초음파 센서 제어와 웹 연동 초음파 센서제어와 웹 연동 1. 초음파 센서 구성 왼쪽 부터 차례대로 5V, Trig, Echo, Gnd 입니다. 2. 초음파 센서(거리측정) 코드 예시 부품 구성 5V : 물리적 2번 GND : 물리적 6번 Trig : 29(물리적 40번) ECHO : 28(물리적 38번) 소스 코드 const gpio = require('node-wiring-pi'); const TRIG = 29; const ECHO = 28; var startTime; // 초음파 송출 시간 var travelTime;// 초음파수신까지 경과시간 const Triggering = () =>{ gpio.digitalWrite(TRIG,gpio.LOW); gpio.delayMicroseconds(2); gpio.digitalWrite.. 2019. 11. 15. 실습 - PWM을 이용한 LED 밝기 제어 사용한 부품 BUTTON wpi : 29 LED BLUE - wpi : 23 RED - wpi : 24 GREEN - wpi : 25 BUZZER wpi - 22 실습 내용 버튼처리는 반드시 인터럽트방식을 이용하는데, 눌렀다가 떼는 순간에 처리한다. 3색 LED처리는 반드시 PWM방식을 사용합니다 버튼을 클릭할때마다 LED가 점점 밝아진다. 단, PWM은 1~100중에서 밝아지는 단계를 5개 단계로 구분합니다.(즉, 25씩으로 증가합니다. 예, 값이 1->25->50->75->100) 버튼을 클릭할때마다 켜지는 LED의 색상은 각 단계별로 초록->청색->빨간->흰색 순이며, 그 이후에는 다시 처음으로 되돌아 갑니다. 생상이 바뀌는 시점에 부져스피커가 0.05초간 짧게 울립니다. 프로그램은 무한 실행되며,.. 2019. 10. 9. WiringPi GPIO API인 PWM이용하기 PWM PWM이랑 Pulse Width Modulation의 줄임말로 펄스폭변조 라는 뜻을 가지고 있습니다. 디지털 기기에서 아날로그 결과를 얻기 위한 기법으로(DC모터 속도제어, LED밝기제어에 활용되는 기술입니다.) 대표적인 함수는 int softPwmCreate(pin, initialValue, pwmRange);// 정상 0 리턴 void softPwmWrite(pin, value); initialValue - 한 주기(Frequency)를 세분화했을때 시작 값 pwmRange - 한 주기의 끝 값. ex) softPwmCreate(REDLED_PIN, 1, 100); value - Duty cycle 크기의 값. 단, 범위에 있어야 합니다. ex) softPwmWrite(REDLED_PIN, 1.. 2019. 10. 9. 인터럽트 방식으로 버튼 제어하기 인터럽트 처리방식 기존의 무한반복(polling) 대신에, 인터럽트 처리방식으로 센서측정하는 기법(함수) int wiringPiISR(pin, edgeType, callback) ※ 해석하자면 특정 pin에서, 지정된 인터럽트가 발생되면, 콜백함수가 자동적으로 호출됩니다. edge_type은 아래 그림을 보고 참고 하시기 바랍니다. 코드 구현 const gpio = require('node-wiring-pi'); const BUTTON = 29; const LED = 7; const DetectButton = function(){ gpio.digitalWrite(LED,1); gpio.delay(50); gpio.digitalWrite(LED,0); } process.on('SIGINT',function.. 2019. 10. 9. 이전 1 2 3 4 다음