玩转 Lee Humanoid robot 开发

IoTSmartSensor
Erlang/OTP领域新星创作者
博客专家认证
2022-11-07 16:59:45

 

 

 

 

模型及相关资料下载:https://www.printables.com/model/167489-lee-humanoid-robot

推荐IDE: https://github.com/technologiescollege/ArduinoTechnoEduc

所需其他库:

BatReader9.h (新建BatReader9文件夹及BatReader9.h,加到:ArduinoTechnoEduc\portable\sketchbook\libraries\BatReader9 路径下)

/******************************************************************************
* Battery Reader Library  
* @author Raul de Pablos Martin
* Adapted for OTTO
******************************************************************************/
#ifndef __BATREADER9_H__
#define __BATREADER9_H__

#if defined(ARDUINO) && ARDUINO >= 100
  #include "Arduino.h"
#else
  #include "WProgram.h"
  #include "pins_arduino.h"
#endif

////////////////////////////
// Definitions            //
////////////////////////////
//#define BAT_PIN A7
#define BAT_MAX	4.2
#define BAT_MIN	3.25
#define ANA_REF	5
#define SLOPE	100/(BAT_MAX - BAT_MIN)
#define OFFSET	(100*BAT_MIN)/(BAT_MAX - BAT_MIN)

class BatReader9
{
public:
	////////////////////////////
	// Enumerations           //
	////////////////////////////

	////////////////////////////
	// Variables              //
	////////////////////////////

	////////////////////////////
	// Functions              //
	////////////////////////////
	// BatReader -- BatReader class constructor
	//BatReader();
 void init(byte  BAT_PIN);
	// readBatPercent
	double readBatVoltage(void);
	
	// readBatPercent
	double readBatPercent(void);
	
	

private:	
	////////////////////////////
	// Enumerations           //
	////////////////////////////
	
	
	////////////////////////////
	// Variables              //
	////////////////////////////
	
	
	////////////////////////////
	// Functions              //
	////////////////////////////
	byte BAT_PIN;
	
};

#endif // BATREADER2_H //

项目源代码:

#include <Otto9Humanoid.h>
Otto9Humanoid Otto;
#include <Servo.h>

int Velocidad;
int Pausa;
int Centro;
int Mov_Cabeza;
int Cabeza_LH;
int Cabeza_RH;

#define PIN_YL 2 // left leg, servo[0]
#define PIN_YR 3 // right leg, servo[1]
#define PIN_RL 4 // left foot, servo[2]
#define PIN_RR 5 // right foot, servo[3]
#define PIN_LA 6 //servo[4]  Left arm
#define PIN_RA 7 //servo[5]  Right arm
#define PIN_Trigger 8 // ultrasound
#define PIN_Echo 9 // ultrasound
#define PIN_NoiseSensor A6
#define PIN_Buzzer  13 //buzzer
Servo servo_10;
long temps1=0 ;

void setup() {
  Otto.initHUMANOID(PIN_YL, PIN_YR, PIN_RL, PIN_RR, PIN_LA, PIN_RA, true, PIN_NoiseSensor, PIN_Buzzer, PIN_Trigger, PIN_Echo);
  servo_10.attach(10);
}

void loop() {
  if ((millis()-temps1)>=1*1000) {
    temps1=millis();
    delay(500);
    Otto.sing(S_mode3);
    delay(500);
    Otto.walk(1, 2000 ,1); // FORWARD
    Otto.walk(1, 2000 ,1); // FORWARD
    delay(500);
    Velocidad = 30;
    Pausa = 200;
    Centro = 80;
    Mov_Cabeza = 80;
    Cabeza_LH = 120;
    Cabeza_RH = 40;
    Otto.moonwalker(1,  2000 ,  40 , -1);
    while (Cabeza_RH <= Mov_Cabeza) {
      servo_10.write(Mov_Cabeza);
      Mov_Cabeza = Mov_Cabeza - 1;
      delay(Velocidad);
    }
    delay(Pausa);
    Otto.sing(S_sleeping);
    while (Mov_Cabeza <= Centro) {
      servo_10.write(Mov_Cabeza);
      Mov_Cabeza = Mov_Cabeza + 1;
      delay(Velocidad);
    }
    delay(Pausa);
    Otto.moonwalker(1,  2000 ,  40 , 1);
    while (Cabeza_LH >= Mov_Cabeza) {
      servo_10.write(Mov_Cabeza);
      Mov_Cabeza = Mov_Cabeza + 1;
      delay(Velocidad);
    }
    delay(Pausa);
    Otto.sing(S_sleeping);
    while (Mov_Cabeza >= Centro) {
      servo_10.write(Mov_Cabeza);
      Mov_Cabeza = Mov_Cabeza - 1;
      delay(Velocidad);
    }
    delay(Pausa);
    Otto.sing(S_mode3);
  }

}

玩的愉快!

...全文
53 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

14

社区成员

发帖
与我相关
我的任务
社区描述
物联网智能传感器
社区管理员
  • SummerGao.
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧