玩转物联网外设之步进电机 -《神奇的物联网》

简介: 电机是在IoT领域经常用到的一个重要模块,大到使用在农业中的水泵、电动大棚,小到机器人、甚至镜头中的微型马达,都需要使用到电机,可以说电机是为设备提供机械动力的重要来源之一。

1.电机简介

电机是在IoT领域经常用到的一个重要模块,大到使用在农业中的水泵、电动大棚,小到机器人、甚至镜头中的微型马达,都需要使用到电机,可以说电机是为设备提供机械动力的重要来源之一。

而步进电机又是电机中较为复杂的一类,它是基于最基本的电磁铁原理,它接收外部的电脉冲信号,通过其内部的逻辑电路,控制步进电机的绕组以一定的时序正向或反向通电,从而产生电磁场,使得电机正向/反向旋转,或者锁定。步进电机的角位移量与输入的脉冲个数严格成正比,而且在时间上与脉冲同步。因而只要控制脉冲的数量、频率和电机绕组的相序,即可获得所需的转角、速度和方向。

本文就以时下最火的HaaS100开发板为例,描述一下如何控制步进电机


2.核心模块

HaaS100核心板

HaaS100是一款物联网场景中的标准硬件,并配套嵌入到硬件中的软件驱动及功能模块,为用户提供物联网设备高效开发服务。

HaaS100核心板有着丰富的外设接口,如下所示,足够用来控制电机,以及驱动器了:

步进电机

电机型号:42BYGH39-401A

电流:1.5A 输出力矩:0.4Nm(牛米)

机身长度:39mm出轴长度:21mm

出轴轴径:5mm

出轴方式:单/双出轴(默认发单轴)

出线方式: 二相四根引出线 (黑色A+绿色A-红色B+蓝色B-)

电机驱动器

驱动器型号:TB6600升级版

脉冲信号3.3v/5V/24V兼容,不需要窜电阻

输入电压: DC(直流)9~42V 适应恶劣的电网环境

电流:4A 的速度自适应电路,电流自动寻优

细分数:6400细分


3.硬件接线方法

电机和驱动器有两种接法,本文采用共阴极接法

HaaS100和驱动器接线如下:

HaaS100接口

驱动器接口

功能

PIN3(GND)

ENA-

接地

PIN10(GPIO_P2_2)

ENA+

电机使能

PIN4(GND)

DIR-

接地

PIN12(GPIO_P2_3)

DIR+

电机方向控制

PIN7(GND)

PUL-

接地

PIN9(GPIO_P2_5)

PUL+

PWM脉冲信号输出

4.软件开发

4.1 首先根据https://help.aliyun.com/document_detail/184184.html?spm=a2c4g.11186623.6.701.d706566froCbj8的快速开始搭建好HaaS100的软件开发环境。

4.2 在solution/helloworld_demo.c中添加gpio和pwm的依赖:

## 第二部分:依赖信息

depends:

 - cli: dev_aos

 - osal_aos: dev_aos

 - haas100: dev_aos

 - gpio: dev_aos

 - pwm: dev_aos

4.3.在components/drivers/peripheral/gpio/gpio_example.c中增加电机相关控制代码

int vfs_gpio_motor_test(){

   int ret = 0;

   int fd = 0;

   int i=0;

   int val=0;

   char buffer[16];

   struct gpio_io_config config;


   fd = open("/dev/gpio", 0);

   ddkc_info("open gpio %s, fd:%d\r\n", fd >= 0 ? "success" : "fail", fd);



   if (fd >= 0) {

    //驱动器是能端ENA+

       config.id = 18; //GPIO2_2

       config.config = GPIO_IO_OUTPUT | GPIO_IO_OUTPUT_PP;

       config.data = 0;

       ret = ioctl(fd, IOC_GPIO_SET, (unsigned long)&config);

       ddkc_info("gpio write %d return %d\r\n", config.data, ret);

       usleep(1000000);

       

       //驱动器是能端DIR+

       config.id = 19; //GPIO2_3

       config.config = GPIO_IO_OUTPUT | GPIO_IO_OUTPUT_PP;

       config.data = 1;

       ret = ioctl(fd, IOC_GPIO_SET, (unsigned long)&config);

       ddkc_info("gpio write %d return %d\r\n", config.data, ret);

       usleep(1000000);

   }

}




struct cli_command vfs_gpio_cli_cmds[] = {

   { "gpiot", "gpio test", vfs_gpio_cli_cmd, },

   { "gpio_out_pp", "gpio test output pp", vfs_gpio_motor_test, },

};

4.4.在components/drivers/peripheral/gpio/package.yaml中添加example

source_file:

- "src/*.c"

- "example/gpio_example.c"  //要打开注释

4.5.编译和烧录

4.6.启动板子在串口中输入:

#控制gpio口

gpio_out_pp

#控制pwm脉冲输出,3表示PWM3,100HZ频率,持续输出10s

pwm 3 100 10  


5.结语

至此,步进电机已经可以转动了,通过调节频率以及DIR的高低电平变可以控制电机的转速和方向。另外在开发过程中有任何问题,欢迎在我们的官网:

https://haas.iot.aliyun.com/

询问“HaaS百事通”

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
传感器 物联网 开发工具
基于华为物联网云平台设计的智能家居控制系统(STM32+ESP8266)
现在可以接入的物联网云平台非常多,阿里云物联网云平台、OneNet中国移动物联网云平台,还有机智云、涂鸦智能、百度云平台、华为云平台等等。
1008 15
|
传感器 数据采集 编解码
基于STM32的物联网环境监测系统
基于STM32的物联网环境监测系统
522 0
基于STM32的物联网环境监测系统
|
物联网 芯片 智能硬件
国产芯片WiFi物联网智能插座—项目简介
国产芯片WiFi物联网智能插座—项目简介
国产芯片WiFi物联网智能插座—项目简介
|
传感器 算法 物联网
国产芯片WiFi物联网智能插座—电耗采集功能设计
国产芯片WiFi物联网智能插座—电耗采集功能设计
国产芯片WiFi物联网智能插座—电耗采集功能设计
|
安全 物联网 芯片
国产芯片WiFi物联网智能插座—电源功能设计
国产芯片WiFi物联网智能插座—电源功能设计
国产芯片WiFi物联网智能插座—电源功能设计
|
传感器 物联网 vr&ar
可穿戴式物联网可以做什么
在物联网方面,可穿戴设备最早出现在上世纪初,有蓝牙耳机等,可以与用户的手机和电脑进行通信。
309 0
可穿戴式物联网可以做什么
|
物联网
树莓派4来袭,看完秒懂物联网那些事儿
阿里云多位物联网MVP携手阿里云技术专家,结合不同行业场景,分享多年IoT实战经验。您可以在本期专题中,了解到热门的树莓派4、全自动洗车机解决方案、实战能耗和环境实时监测控制等最佳实践。
2364 0

热门文章

最新文章