5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)

【花雕动手做】OTTO 机器人---体验DIY的乐趣(待续)

查看数: 4753 | 评论数: 30 | 收藏 6
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-11-15 20:41

正文摘要:

本帖最后由 eagler8 于 2020-11-17 10:26 编辑 OTTO机器人是什么? OTTO是完全开源的,任何人都可以做的交互式机器人。她与Arduino控制系统兼容,其主要外观材料可以直接3d打印而来,甚至可以说她是为培养人们学 ...

回复

eagler8 发表于 2020-11-17 10:18
  1. /*
  2. 【花雕动手做】OTTO 机器人---体验DIY的乐趣

  3.   1、安装库:IDE—工具—管理库—搜索“Servo”—安装
  4.   2、实验之二:使用9#与10#口,同时测试腿部或脚部的二只舵机
  5. */

  6. #include <Servo.h>

  7. Servo servo1;   //建立舵机对象servo1
  8. Servo servo2;   //建立舵机对象servo2

  9. int pos = 0;   
  10. void setup() {
  11.   servo1.attach(10);    //servo1对象接在扩展板10#端口。
  12.                         //servo1端口是由Arduino的10号引脚来控制的。
  13.   servo2.attach(9);     //servo2对象接在扩展板9#端口。
  14.                         //servo2端口是由Arduino的9号引脚来控制的。
  15. }

  16. void loop() {
  17.   //以下程序将控制servo1输出轴左右旋转180度
  18.   for (pos = 0; pos <= 180; pos += 1) {
  19.     servo1.write(pos);              
  20.     delay(15);                       
  21.   }
  22.   for (pos = 180; pos >= 0; pos -= 1) {
  23.     servo1.write(pos);   
  24.     delay(15);      
  25.   }
  26.   
  27.   //以下程序将控制servo2输出轴左右旋转180度
  28.   for (pos = 0; pos <= 180; pos += 1) {
  29.     servo2.write(pos);              
  30.     delay(15);                       
  31.   }
  32.   for (pos = 180; pos >= 0; pos -= 1) {
  33.     servo2.write(pos);   
  34.     delay(15);      
  35.   }  
  36. }
复制代码

欢迎继续阅读楼主其他信息

eagler8 发表于 2020-11-17 09:58
3、Servo-writeMicroseconds()函数(精确控制)

以微秒(uS)为单位写入一个值,从而相应地控制轴。在标准伺服系统上,这将设置轴的角度。在标准伺服器上,参数值1000完全是逆时针方向,2000完全是顺时针方向,中间是1500。


请注意,某些制造商并未非常严格地遵循此标准,因此,伺服器通常会对700到2300之间的值做出响应。可以随意增加这些端点,直到伺服器不再继续增加其范围为止。但是请注意,尝试将伺服驱动器驱动通过其端点(通常由嘶嘶声表示)是高电流状态,应避免使用。连续旋转伺服器将以类似于写入功能的方式响应writeMicrosecond功能。


句法

servo.writeMicroseconds(uS)


参量

伺服:伺服类型的变量

us:参数值(以微秒为单位)(int)



#include <Servo.h>


Servo myservo;


void setup()

{

  myservo.attach(9);

  myservo.writeMicroseconds(1500);  // set servo to mid-point

}


void loop() {}



4、Servo-read()函数(读取)

读取伺服器的当前角度(该值传递给对write()的最后一次调用)。


句法

servo.read()


参量

伺服:类型变量Servo

反馈

伺服角度为0到180度。



5、Servo-Attached()函数(附加)

检查是否将Servo变量附加到引脚上。


句法

servo.attached()


参量

伺服:类型变量Servo

反馈

true如果伺服系统连接到引脚上;false除此以外。


6、Servo-detach()函数(分离)

从其引脚上拆下伺服变量。如果所有伺服变量均已分离,则可以使用AnalogWrite()将引脚9和10用于PWM输出。


句法

servo.detach()


参量

伺服:类型变量Servo

eagler8 发表于 2020-11-17 09:58
使用Servo库

1、Servo-attach()函数(连接)

将伺服变量附加到引脚上。请注意,在Arduino 0016及更早版本中,Servo库仅在两个引脚上仅支持舵机:9和10。


句法

servo.attach(pin)

servo.attach(pin, min, max)


参量

伺服:类型变量Servo

pin:伺服器连接的引脚号

min(可选):脉冲宽度(以微秒为单位),对应于伺服器上的最小(0度)角度(默认为544)

最大(可选):脉冲宽度(以微秒为单位),对应于伺服器上的最大(180度)角度(默认为2400)



#include <Servo.h>

Servo myservo;

void setup()

{

  myservo.attach(9);

}

void loop() {}


2、Servo-write(x)函数(写入)

将值写入伺服器,从而相应地控制轴。在标准伺服器上,这将设置轴的角度(以度为单位),将轴移动到该方向。在连续旋转伺服系统(360度舵机)上,这将设置伺服系统的速度(0表示一个方向的全速,180表示另一方向的全速,而90左右的值表示无运动)。


句法

servo.write(angle)


参量

伺服:伺服类型的变量

angle:写入伺服的值,从0到180



#include <Servo.h>

Servo myservo;

void setup()

{

  myservo.attach(9);

  myservo.write(90);  // set servo to mid-point

}

void loop() {}


eagler8 发表于 2020-11-16 20:39
  1. /*
  2.   【花雕动手做】OTTO 机器人---体验DIY的乐趣

  3.   1、安装库:IDE—工具—管理库—搜索“Servo”—安装
  4.   2、实验之一:通过IO9口,逐一测试四只舵机
  5. */

  6. #include <Servo.h>

  7. Servo myservo;  

  8. int pos = 0;   

  9. void setup() {
  10.   myservo.attach(9);   
  11. }

  12. void loop() {
  13.   for (pos = 0; pos <= 180; pos += 1) {
  14.     // in steps of 1 degree
  15.     myservo.write(pos);              
  16.     delay(15);                       
  17.   }
  18.   for (pos = 180; pos >= 0; pos -= 1) {
  19.     myservo.write(pos);              
  20.     delay(15);                       
  21.   }
  22. }
复制代码

关闭

【站内推荐】上一条 /2 下一条

快速回复 返回顶部 返回列表