点击上方“蘑菇云创造”可以关注我们哦

本项目要接触到舵机。舵机是一种电机,它使用一个反馈系统来控制电机的位置。可以很好掌握电机角度。大多数舵机是可以最大旋转180°的。也有一些能转更大角度,甚至360°。舵机比较多的用于对角度有要求的场合,比如摄像头,智能小车前置探测器,需要在某个范围内进行监测的移动平台。又或者把舵机放到玩具,让玩具动起来。还可以用多个舵机,做个小型机器人,舵机就可以作为机器人的关节部分。所以,舵机的用处很多。

Ardruino也提供了库,让我们使用舵机变得更方便了。

先从简单入手,套件这个9G小舵机是180°的,我们就让它在0~180°之间来回转动。

所需元件

■ 1×  DFduino UNO R3(以及配套USB数据线)

■ 1×  Micro Servo 9g

硬件连接

这个项目的连线很简单,只需按图10-1所示连接舵机三根线就可以了,连的时候注意线序,舵机引出三根线。一根是红色,连到+5V上。一根棕色(有些是黑的),连到GND。还有一根是黄色或者橘色,连到数字引脚9。

图 10-1 舵机连线图

代码编程

样例程序10-1 :

//项目十 - 舵机

#include   // 声明调用Servo.h库

Servo myservo;  // 创建一个舵机对象

int pos = 0;  // 变量pos用来存储舵机位置

void setup() {

myservo.attach(9); // 将引脚9上的舵机与声明的舵机对象连接起来

}

void loop() {

for(pos = 0; pos // 舵机从0°转到180°,每次增加1°

myservo.angle(pos);  // 给舵机写入角度

delay(15);  // 延时15ms让舵机转到指定位置

}

for(pos = 180; pos>=1; pos-=1) { //舵机从180°转回0°,每次减小1°

myservo.angle(pos);  // 写角度到舵机

delay(15);  // 延时15ms让舵机转到指定位置

}

}

代码的第一行是我们在本项目中需要学习关于库的知识。这行指令我们未曾接触过,但是在Mind+中我们能够通过以下步骤来熟悉和舵机有关的代码。

STEP1:进入扩展,点击执行器

STEP2:在界面右上角的搜索中输入“舵机”

STEP3:选择项目中所要求的0-180°舵机

STEP4:回到主界面,将新加载舵机的指令拖入“手动编辑”的输入框中,即可看见它对应的代码

所有的指令都可以通过拖进手动编辑区,对应的c代码会出现。在之后遇到新指令的代码学习,或是一时忘记指令对应的指令,都可以通过这一方式来查看和温故代码。并且这些代码都可以直接复制到手动编辑区中,但别忘记根据连接图来修改相关参数!

下载代码,下载成功后我们可以看到舵机0~180°来回转动。

图形化指令学习

代码学习

代码的开始先调用库

  1. #include // 声明调用Servo.h库

这库已经在Mind+中,打开Mind+1.6.1\Arduino\libraries\DFRobot_Servo\DFRobot_Servo.h,这就是Servo库所在位置。

库是什么?

我们怎么理解库呢?和我们前面讲到的函数意义是差不多的。函数通常按一个个功能来划分的,就像一个个小的储物柜,函数名好比储物柜标签名。我们使用的时候,直接看标签就好了,方便我们使用。那库是什么呢?库则是把多个函数封装打包起来,好比大的储物柜,里面含有一个个小的储物柜。不知道这样说,你是不是能理解库和函数的关系?

对象

同样,大储物柜也需要一个标签,这标签的学术名叫做“对象”。所以这里叫创建一个对象。就是我们接下来的这句语句:

Servo myservo;   // 创建一个舵机对象

库中函数的调用

setup()函数中有一条语句:

myservo.attach(9);

这里就开始调用Servo库中的函数了,和我们以前函数调用有点区别。这里,我们需要先指明这是哪个库中的函数。所以,先指出对象名,再指出函数名。每次要用到储物柜的东西就要先指明这个标签。这样程序才知道要去哪里找东西。

库函数调用格式如下:

对象名.函数名();

不要忘了中间的“.”!myservo是我们前面设的标签(对象),然后调用的函数是:

attach(pin);

attach(pin)函数有一个传递参数——pin, 任意一个数字引脚(不建议使用数字0,1)。我们这里选择数字引脚9。

进入主函数,有两个for循环,第一段是从0开始,循环到180,每次增加1度。第二个for循环则是从180开始,每次减小1度,一直减到0。在回到上面那个循环中……

for循环中又调用了一个Servo库中的函数myservo.angle(pos),我们可以不用管函数内部复杂的程序,只要先会使用就可以了。

myservo.angle(pos);

和上面那个函数调用一样,先要指明是哪个库。该函数的传递参数就是角度,单位为“°”。

如果还想了解DFRobot_Servo库中还有哪些好用的函数的话,可以到Mind+官网中的教程和论坛查看,里面会有相关介绍的。

我们这里对舵机的硬件部分就不做详细说明了,先学会简单的使用即可。如果还想了解更多的话,可以借助我们的网络资源。

DF创客社区:www.dfrobot.com.cn

———————  正文完    ———————

教育的目的是为了培养学生协作能力、沟通能力、批判思维以及创造力,其中最核心的是创造力,蘑菇云创客教育作为国内为数不多的一站式创客教育服务供应商旨在培养孩子的创造力。

为让学生们在课堂上学习到的知识更好地连接现实世界,蘑菇云将指导学校规划、建立、运营自己的创客空间。并根据学生年龄段的不同,在设计与布局上进行了区分

小学创客空间注重趣味性,

强调互动场景;

初中创客空间注重实用性,

强调学习场景;

高中创客空间注重技术性,

强调应用场景;

在内容上, 蘑菇云和国内一线创客名师联手,编纂了一系列适合国内创客教育的教材。并拥有一套完整的创客教育课程体系,包括课程内容及教具,课程培训,技术答疑。同样根据学生年龄段的不同,在课程分类与设计上也会有所区别。

小学通过游戏化和体验化的方式来开展,要以“玩中学”为主。

初中引导学生在实际动手过程中进行探究式学习,促进“做中学”。

高中基于问题和设计的学习,需要教师为学生创设相关的真实情境,使高中生在“思中学”。

推荐阅读:

【震动传感器】基于Mind+ Ardunio入门教程08

【温度报警器】基于Mind+Arduino入门教程07

【报警器】基于mind+Arduino入门教程06

【政策解读】探讨智能时代下的“教与学”改革

【炫彩 RGB LED】基于Mind+Arduino入门教程05

【呼吸灯】基于Mind+Arduino入门教程04

【互动交通信号灯】基于Mind+Arduino入门教程03

【S.O.S求救信号】基于Mind+ Ardunio入门教程02

【LED闪烁】基于Mind+Arduino入门教程01

【初识Arduino & Mind+】基于mind+ Arduino入门教程00

我知道你在看

舵机任意角度程序_【舵机初动】基于Mind+ Ardunio入门教程10相关推荐

  1. arduino舵机达180不到_【舵机初动】基于Mind+ Ardunio入门教程10

    点击上方"蘑菇云创造"可以关注我们哦 本项目要接触到舵机.舵机是一种电机,它使用一个反馈系统来控制电机的位置.可以很好掌握电机角度.大多数舵机是可以最大旋转180°的.也有一些能转 ...

  2. pwm控制舵机转动角度程序_舵机的内部结构及工作原理

    一.舵机实物图 舵机是机器人旋转关节中的常用部件,尤其是小型机器人.其实物就像下面这张图,相信大家都不会陌生.大家一定见过春晚上哪个跳舞的小机器人,其全身各关节都是有舵机组成.我们常见到的舵机就是这个 ...

  3. 舵机任意角度程序_真香!!!飞特发布性价比超高的19kg磁编码360°双轴串口总线舵机STS3215...

    2020年4月6日,深圳飞特模型有限公司发布了2020年新款磁编码版本的TTL串口总线舵机.这款舵机是基于SCS215电位器版本开发的更高性能的磁编码版本,不仅具备了飞特SM高端系列的高性价比功能,又 ...

  4. pwm控制舵机转动角度程序_01 舵机旋转控制基础

    从今天开始,我们将学习Python代码控制舵机专题.第一节课我们将学习舵机的旋转控制基础,探究180度舵机的图形化编程控制. 一.舵机 1.舵机简介 舵机也叫伺服电机,最早用于船舶上实现其转向功能,由 ...

  5. 基于jquery插件开发入门教程

    鉴于最近要使用大量的jquery,所以总有一种捣鼓文字来抒发一下情绪的冲动.思前想后就来篇jquery插件开发入门教程吧,毕竟如果不想开发插件,那自己无论用别人的插件多牛逼,最多只是js的使用者,作为 ...

  6. stm32控制舵机任意角度_如何对舵机建模仿真?

    卓大大 您能发篇推文讲解一下舵机控制的传递函数如何求解吗 在做智能车仿真时卡在这里了. 舵机的传递函数如何建立 的确,宅在家里手里没有实际的智能车模,也无法实际调试.利用所学习的理论知识来对智能车建模 ...

  7. pwm控制舵机转动角度程序_Mixly 第15课 舵机的使用

    第15课  舵机的使用 舵机的旋转不像普通电机那样只是转圈圈,它可以根据你的指令旋转到0至180度之间的任意角度然后精准的停下来.舵机的转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的. ...

  8. python十分钟教程_简洁的十分钟Python入门教程

    [简介] Python是一种动态解释型的编程语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在Java..NET开发平台上使用. [特点] 1 Python使用C语 ...

  9. fft 估计载波频率程序_一种基于扫描精确估计载波频率的方法与流程

    本发明涉及信号处理技术领域,特别涉及一种基于扫描精确估计载波频率的方法. 背景技术: 信号的载波频率估计是通信.雷达.声纳以及电子对抗等领域信号处理中的一个重要问题.基于参数模型的谱估计.最大熵谱估计 ...

最新文章

  1. 消息幂等(去重)通用解决方案,真顶!
  2. 再见,PyTorch!
  3. 通过学习生物范式,寻找解决AI识别噪音的新方法
  4. 如何在VB例程中接收自定义消息
  5. Messages 贪心,期望,概率,模拟(2000)
  6. Codeforces 1153 C Serval and Parenthesis Sequence
  7. Android Service 之 AIDL
  8. ROI(投资回报率 Return On Investment)
  9. 为减少用户电话排队,阿里研发了智能客服调度系统
  10. Android中让Service被关闭后再重新启动
  11. mysql中count(*),count(字段),count(1)的区别
  12. ucenter 显示通信成功的条件
  13. 驱动精灵显示服务器去火星了,“用驱动精灵发现不了声卡,设备管理器上面正常”的解决方案...
  14. 用Java创建一副扑克牌
  15. android反编译脱壳,Android脱壳圣战之---如何脱掉爱加密家的保护壳
  16. html购物页面产品展示,html5 3D交互式房间购物商品展示特效
  17. ABBYY FineReader 14创建PDF文档功能解析
  18. Nacos搭建集群以及遇到的问题
  19. 前端用Mockjs模拟数据
  20. HTTP:网络请求状态码204、304

热门文章

  1. java使用socket实现一个多线程web服务器
  2. 有时候,一个人也挺好
  3. quartus仿真15:全加器和半加器及如何生成符号文件
  4. 计算机课有什么作业,计算机组成原理课堂作业
  5. node 创建静态web服务器(上)
  6. require() 源码解读
  7. 读《图解HTTP》有感-(HTTP报文内的HTTP消息)
  8. Java邮件服务学习之一:邮件服务概述
  9. 软件过程与项目管理第二周作业
  10. mysql最大、第二、第三