거미로봇 프로토타입을 완성하였습니다. 다리가 너무 미끄러워서 끝 부분에 글르건으로 신반을 신겨주었더니 한 결 걸음 걸이가 나아졌습니다 ^^*
소소 코드는 다음과 같습니다. (코드 설명은 아이들을 위해서 최대한 전문 용어를 피하고 쉬운 용어를 사용하려고 노력하였습니다)
#include <Servo.h> #define servo_count 8 Servo servos[servo_count]; int start_pos[servo_count] = { 90, 90, 90, 90, 40, 140, 155, 40 }; void setup() { for (int i=0; i<servo_count; i++) { servos[i].attach(i+2); servos[i].write(start_pos[i]); delay(500); servos[i].detach(); } } void loop() { go_forward(); } void set_angle(int no, float angle) { servos[no].attach(no+2); servos[no].write(angle); delay(100); servos[no].detach(); } void set_start_position() { for (int i=0; i<4; i++) { servos[i].attach(i+2); servos[i].write(start_pos[i]); } } void right_front_start() { set_angle(5, start_pos[5]); set_angle(1, start_pos[1]); } void right_back_start() { set_angle(7, start_pos[7]); set_angle(3, start_pos[3]); } void right_front_forward() { set_angle(5, start_pos[5] - 40); set_angle(1, start_pos[1] + 40); set_angle(5, start_pos[5]); } void right_back_forward() { set_angle(7, start_pos[7] + 40); set_angle(3, start_pos[3] + 40); set_angle(7, start_pos[7]); } void left_front_start() { set_angle(4, start_pos[4]); set_angle(0, start_pos[0]); } void left_back_start() { set_angle(6, start_pos[6]); set_angle(2, start_pos[2]); } void left_front_forward() { set_angle(4, start_pos[4] + 40); set_angle(0, start_pos[0] - 40); set_angle(4, start_pos[4]); } void left_back_forward() { set_angle(6, start_pos[6] - 40); set_angle(2, start_pos[2] - 40); set_angle(6, start_pos[6]); } void go_forward() { right_front_forward(); left_front_forward(); right_back_forward(); left_back_forward(); right_front_start(); left_front_start(); right_back_start(); left_back_start(); }
RC Car #2 (0) | 2015.12.21 |
---|---|
거미 로봇 만들기 #3 (0) | 2015.12.19 |
거미 로봇 만들기 #1 (0) | 2015.12.18 |
쿼드콥터 제작 #5 - IRL540 (0) | 2015.12.17 |
WS2812 아두이노 연동 (0) | 2015.12.08 |