취소

커뮤니티

가이드

서포트

전체

프로세싱 응용 아두이노 서보모터 제어하기

프로세싱으로 아두이노에 연결된 서보모터를 제어해보도록 하자, 조건은 슬라이드를 만들고, 드래그하여 서보모터가 그 위치에 맞추어 이동하는 것이다.

라이브러리 연동

프로세싱 응용 - 아두이노 제어 라이브러리 설치 프로세싱 응용 아두이노 제어 라이브러리 설치프로세싱으로 아두이노를 제어해보자, 프로세싱과 아두이노는... blog.naver.com 자세히보기

프로세싱으로 아두이노를 제어하기 위해서는 라이브러리 연동이 필요로하다. 위의 링크를 참조하여 미리 라이브러리를 설정한다.

회로도

회로배선

서보모터의 PWM을 PIN 6에 연결하고 전원은 아두이노의 전원 PIN 에서 가져온다.

소스코드

import processing.serial.*; import cc.arduino.*; Arduino arduino;   int Pos = 90; int Xline = 200;   void setup() {   size(400,200);   background(0);     println(Arduino.list());   arduino = new Arduino(this,Arduino.list()[0], 57600);   arduino.pinMode(6, Arduino.SERVO);      stroke(255);   strokeWeight(5); }   void draw() {   background(0);   arduino.servoWrite(6, Pos); // 아두이노 서보 값 입력      line(0,100, 400, 100); // 기준 라인 그리기      ellipse(Xline, 100, 20, 20); // 드래그 원, 제어기준점 }   void mouseDragged() { // 마우스 드래그시   Pos = constrain(mouseX, 0, 180); // 마우스 값 0~180 사이의 값으로 저장   Xline = mouseX; // 제어 기준점 지정   if(Xline < 0) Xline = 0; // 0보다 작아지면 0으로   if(Xline > 400) Xline = 400; // 400 보다 커지면 400으로 }

마우스가 드래그하여 변경되는 값을 정확히 0~180 사이로 치환하여, 아두이노로 전송하는 것이 중요하다. 이 값이 너무 커지거나, 마이너스가 될 경우 오작동이 될 수 있다.

테스트 결과

테스트 결과 창

슬라이드에 잇는 원이 드래그되어 움직이는 것에 맞추어서 서보모터의 각도가 변경된다.

소스코드에 정답은 없다. 다양한 생각이 있듯 다양한 방법이 있고, 그 중 하나일 뿐이다.