1. SG90 Å×½ºÆ® ȸ·Î ±¸¼º
( SG90 ¼º¸¸ðÅÍ 1EA, , »¡° Àü¿ø¼±(+) / °¥»ö Ground(-) / ¿À·»Áö»ö (µ¥ÀÌÅÍ) : GPIO 18¹ø ¿¬°á )
ÄÚµå ÀÛ¼º ¹× ½ÇÇà ¹æ¹ýÀº "; ¶óÁ¸®ÆÄÀÌ GPIO Æ÷Æ® ( LED, ¹öư ) Á¦¾î "; °¡À̵å ÂüÁ¶
2. SG90 Å×½ºÆ® Python ÄÚµå
import RPi.GPIO as GPIO # RPi.GPIO¿¡ Á¤ÀÇµÈ ±â´ÉÀ» GPIO¶ó´Â ¸íĪÀ¸·Î »ç¿ë
import time # time ¸ðµâ
pin = 18 # Python(BCM) 18¹ø ÇÉ »ç¿ë
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin,GPIO.OUT)
P = GPIO.PWM(pin,50) #PWM ÆÞ½ºÆø º¯Á¶, Å©±â¸¦ 50À¸·Î ÁöÁ¤
p.start(0)
try:
while True:
var = raw_input(¡°Enter L/R/C : ¡°)
if var == ¡®R¡¯ or var == ¡®r¡¯ : # R ¶Ç´Â r ÀÔ·ÂµÇ¸é °¢µµ Right Á¶Á¤
print ¡°Right¡±
p.ChangeDutyCycle(2.5) #DutycycleÀ» ÀÎÀÚ·Î ¹Þ¾Æ ½ÇÇà Áß¿¡
time.sleep(0.5)
elif var == ¡®L¡¯ or var == ¡®l¡¯ : # L ¶Ç´Â l ÀÔ·ÂµÇ¸é °¢µµ Left Á¶Á¤
print ¡°Left¡±
p.ChangeDutyCycle(12.5)
time.sleep(0.5)
elif var == ¡®C¡¯ or var == ¡®c¡¯ : # C ¶Ç´Â c ÀÔ·ÂµÇ¸é °¢µµ Center Á¶Á¤
print ¡°Center¡±
p.ChangeDutyCycle(7.5)
time.sleep(0.5)
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()
3. SG90 Å×½ºÆ® C ÄÚµå
#include <stdio.h> // stdio.h ÆÄÀÏ Æ÷ÇÔ( printf() »ç¿ëÇϱâ À§ÇØ )
#include <wiringPi.h> // wiringPi.h ÆÄÀÏ Æ÷ÇÔ
#include <softPwm.h>
#define SERVO 1 // wiringPi GPIO 1¹ø = Python(BCM) 18¹ø
int main()
{
char str;
If(wiringPiSetup() == -1)
Return 1;
softPwmCreate(SERVO,0,200); // Áֱ⸦ 200À¸·Î Çϸé 20ms Áֱ⸦ °¡Áö¸ç, 20ms ¸¶´Ù
// ½ÅÈ£°¡ ³ª¿À¹Ç·Î 50hz·Î º¼ ¼öÀÖ´Ù
while(1)
{
fputs(¡°select c(Center)/r(Right)/l(Left)/q(Quit) : ¡°, stdout);
scanf(¡°%c¡±, &str);
getchar();
if(str == ¡®C¡¯ || str == ¡®c¡¯)
softPwmWrite(SERVO,15); // 0 degree
else if(str == ¡®R¡¯ || str==¡¯r¡¯)
softPwmWrite(SERVO,24); // 90 degree
else if(str == ¡®L¡¯ || str==¡¯l¡¯)
softPwmWrite(SERVO,5); // -90 degree
else if(str == ¡®Q¡¯ || str == ¡®q¡¯)
return 0;
}
return 0;
}
¾ÈÀü°Å·¡¸¦ À§ÇØ Çö±ÝµîÀ¸·Î 5¸¸¿øÀÌ»ó °áÁ¦½Ã
ÀúÈñ »çÀÌÆ®¿¡¼°¡ÀÔÇÑ ¿ì¸®ÀºÇàÀÇ ±¸¸Å¾ÈÀü¼ºñ½º¸¦
ÀÌ¿ëÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.