요약
이 로봇은 우리가 워크샵에서 아두이노를 사용하여 보행 로봇을 제어하는 방법을 가르치는 데 사용했던 로봇입니다.
로봇은 오직 전진과 후진만 할 수 있었지만, 사용자들에게 조이스틱, 전원 스위치, 배터리, 서보 모터를 Arduino에 연결하는 방법을 보여주었고, 그런 다음 모든 것을 작동하도록 프로그래밍하였습니다.
지시사항
// 3D 프린트된 로봇을 위한 코드
// 자세히 알아보세요:http://www.instructables.com/id/3D-Printed-Robot/
// 이 코드는 공용 도메인에 있습니다.
//
// 서보 라이브러리를 추가하세요.
포함하세요.
//두 개의 서보 인스턴스를 만들기
서보 myservo;
서보 myservo1;
인트 프론트 핀 = 9;
백π인
서보가 중심을 맞추될 때까지 이 숫자들을 바꾸세요!!!!
理论적으로는 90이 완벽한 중심이지만, 대부분의 경우 위나 아래로 조금 더 나올 거예요.
인트 프론트 밸러ं스드 = 91;
백 센터드
각도 int angle = 25;
앞 부분이 이동할 때 균형의 중심을 되찾기 위한 변수들.
오른쪽 뒤쪽 = 중간 위치 - 10;
백 왼쪽 = 백 중심 + 10;
인트 xPin = A4;
인트 yPin = A5;
const int FRONT = 1;
const int BACK = 2;
const int LEFT = 3;
const int RIGHT = 4;
// 서보의 초기 상태를 설정하고 2초를 기다리세요.
비어있는 setup() 함수.
{
내서보1.attach(frontPin);
내 서보.attach(백 핀);
내 서보1.write(FrontBalanced);
내 서보(myservo)는 BackCentered를 쓰습니다.
// delay(5000);
serial.begin(9600);
그것은...
void frontLeg(int x) {
내 서보1.write(x);
그것은...
void backLeg(int x) {
내 서보(myservo).write
그것은...
비어있는 loop() 함수.
{
인트 x = 아날로그 리드(xPin);
인트 y = 아날로그 리드(analogRead)
Serial.print("x :");
Serial.println(x);
Serial.print("y :");
Serial.println(y);
방향 = 0;
만일 (x > 700)이면,
방향 = 뒤로;
그렇지 않으면, (x < 300) 일 경우에는,
방향 = 앞쪽;
그것은...
만일 y가 700보다 큰 경우에는,
// 방향 = 오른쪽;
// } else if (y < 300) {
// 방향 = 왼쪽;
// }
switch (방향) {
케이스 프론트:
프론트();
중단하세요;
케이스 뒷면:
돌아가기();
중단하세요;
왼쪽의 케이스:
왼쪽으로();
중단하세요;
오른쪽의 케이스:
오른쪽으로();
중단하세요;
기본값:
직선으로();
중단하세요;
그것은...
지연(1);
그것은...
// 보행 기능
비어있는 프론트() :
프론트 레그(프론트 밸러ं스 + 角度);
지연(50);
뒷다리(중간 위치 - 각도);
지연(200);
프론트 레그(프론트 밸러ं스드 - 角度);
지연(50);
뒷다리(BackCentered + 각도);
지연(200);
그것은...
비어있는 백(back):
뒷다리(중간 위치 - 각도);
지연(50);
프론트 레그(프론트 밸러ं스 + 角度);
지연(200);
뒷다리(BackCentered + 각도);
지연(50);
프론트 레그(프론트 밸러ं스드 - 角度);
지연(200);
그것은...
// 보행 기능
void left(){
앞다리(FrontBalanced + 각도 - 5);
지연(100);
뒷다리(중간 위치 - 각도);
지연(300);
frontLeg(FrontBalanced - 각도 - 5);
지연(100);
뒷다리(BackCentered + 각도);
지연(300);
그것은...
// 보행 기능
비어있는 오른쪽()
프론트 레그(FrontBalanced + 각도 + 5);
지연(100);
뒷다리(중간 위치 - 각도);
지연(300);
전방 다리(FrontBalanced - 각도 + 5);
지연(100);
뒷다리(BackCentered + 각도);
지연(300);
그것은...
비어있는 상태에서 직선을 그립니다.
앞다리(FrontBalanced);
뒷다리(중간에 위치한 뒷다리);
그것은...
Etiketler
Model Kaynağı
