micropython 自动化_Micropython Turnipbit自动窗帘模拟系统
今天我们继续来研究Turnipbit这块板子的功能,这个实验灵感并不是我想出来的,办公室是背阴的,早上中午都见不到太阳,坐在对面的同事每天下午四点,都要去拉窗帘,我都能感觉到太阳直晒他眼睛,(眯眯眼)。所以就想到了这个。
所需器件:
ü TurnipBit 开发板 1块
ü 下载数据线 1条
ü 微型步进电机(28BYJ-48) 1个
ü 步进电机驱动板(ULN2003APG) 1块
ü 光敏传感器 1个
ü TurnipBit 扩展板 1块
ü 接入网络的电脑 1台
ü 在线可视化编程器
http://turnipbit.com/PythonEditor/editor.html
步进电机的介绍
本次实验采用的是28BYJ-48 四相八拍电机,电压DC5V~12V。
24BYJ48名称的含义:
24:电机外径24mm
B:步进电机中步字的拼音首字母
Y:永磁中永字的拼音首字母
J:减速的减字拼音首字母
48:四相8步
步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数字程序控制系统中的主要执行元件,应用极为广泛。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
驱动原理
当连续不断的给电机发送控制脉冲时,电机就会不断的转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,对应转子就会转过一定的角度(步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。
四相步进电机可以在不同的通电方式下运行,常见的通电方式:
四拍(单相绕组通电):A-B-C-D-A…
双四拍(双相绕组通电):AB-BC-CD-DA-AB-...
八拍: A-AB-B-BC-C-CD-D-DA-A…
器件的连接
1、将步进电机白色接头插到驱动板对应的座子上。
2、TurnipBit对应插入扩展板,记住带有LED灯和按键的一面朝向扩展板带有针脚的一侧。
3、将驱动板与TurnipBit扩展板连接起来。接线图如下:
TurnipBit扩展板
ULN2003APG驱动板
P5
IN1
P8
IN2
P11
IN3
P12
IN4
+5V
5V正极
GND
负极
4、将光敏传感器与TurnipBit扩展板连接起来。接线图如下:
TurnipBit扩展板
光敏传感器
3.3V
VCC
GND
GND
P0
AO
开始编程
之前的教程一直都是使用拖拽可视化编程,这种方式可以快速让零基础小伙伴入门,但是在实际项目或工作中,还是要直接敲代码的。今天就给大家介绍一下TurnipBit的可视化编程器的另一项功能——代码编程。(其实是这个拼插编程太麻烦了
)
之前看过编程的小伙伴,不难发现,一打开编辑器首先进入的就是代码编程器界面。
5.4.2、接下来用代码实现对步进电机的控制和光照数据的采集。
ü 当光照变弱时,步进电机顺时针旋转一周,模拟关闭窗帘的操作;
ü 当光照变强时,步进电机逆时针旋转一周,模拟打开窗帘的操作;
完成源代码:
# 在这里添加Python代码
from microbit import *
Pin_All=[pin5,pin8,pin11,pin12]
#转速(ms) 数值越大转速越慢 最小值1.8ms
speed=5
STEPER_ROUND=512 #转动一圈(360度)的周期
ANGLE_PER_ROUND=STEPER_ROUND/360 #转动1度的周期
isOpen=False#表示窗帘的状态 True:打开 False:关闭
def SteperWriteData(data):
count=0
for i in data:
Pin_All[count].write_digital(i)
count+=1
def SteperFrontTurn():
global speed
SteperWriteData([1,1,0,0])
sleep(speed)
SteperWriteData([0,1,1,0])
sleep(speed)
SteperWriteData([0,0,1,1])
sleep(speed)
SteperWriteData([1,0,0,1])
sleep(speed)
def SteperBackTurn():
global speed
SteperWriteData([1,1,0,0])
sleep(speed)
SteperWriteData([1,0,0,1])
sleep(speed)
SteperWriteData([0,0,1,1])
sleep(speed)
SteperWriteData([0,1,1,0])
sleep(speed)
def SteperStop():
SteperWriteData([0,0,0,0])
def SteperRun(angle):
global ANGLE_PER_ROUND
val=ANGLE_PER_ROUND*abs(angle)
if(angle>0):
for i in range(0,val):
SteperFrontTurn()
else:
for i in range(0,val):
SteperBackTurn()
SteperStop()
while True:
light=pin0.read_analog()#读取光敏传感器传递过来的模拟量数据
#数值越大说明光照度越小
if light>400:
if isOpen:
isOpen=False
SteperRun(-360)#光照小于设定的值,关闭窗帘
else:
if isOpen==False:
isOpen=True
SteperRun(360)#光照大于设定的值,打开窗帘
micropython 自动化_Micropython Turnipbit自动窗帘模拟系统相关推荐
- Micropython Turnipbit自动窗帘模拟系统
今天我们继续来研究Turnipbit这块板子的功能,这个实验灵感并不是我想出来的,办公室是背阴的,早上中午都见不到太阳,坐在对面的同事每天下午四点,都要去拉窗帘,我都能感觉到太阳直晒他眼睛,(眯眯眼) ...
- micropython控制板_MicroPython开发实例之TurniBit开发板DIY自动窗帘模拟系统
一.准备工作 üTurnipBit 开发板 一块 ü下载数据线 一条 ü微型步进电机(28BYJ-48) 一个 ü步进电机驱动板(ULN2003APG) 一块 ü光敏传感器 一个 üTurnipBit ...
- MicroPython开发实例之TurniBit开发板DIY自动窗帘模拟系统
2019独角兽企业重金招聘Python工程师标准>>> 一.准备工作 üTurnipBit 开发板 一块 ü下载数据线 一条 ü微型步进电机(28BYJ-48 ...
- proteus仿真micropython_[MicroPython]TurniBit开发板DIY自动窗帘模拟系统
一.准备工作 üTurnipBit 开发板 一块 ü下载数据线 一条 ü微型步进电机(28BYJ-48) 一个 ü步进电机驱动板(ULN2003APG) 一块 ü光敏传感器 一个 üTurnipBit ...
- [MicroPython]TurniBit开发板DIY自动窗帘模拟系统
一.准备工作 üTurnipBit 开发板 一块 ü下载数据线 一条 ü微型步进电机(28BYJ-48) 一个 ü步进电机驱动板(ULN2003APG) 一块 ü光敏传感器 一个 üTurnipBit ...
- JAVA窗帘_利用TurniBit开发板DIY一套自动窗帘模拟系统
一.准备工作TurnipBit 开发板 一块 下载数据线 一条 微型步进电机(28BYJ-48) 一个 步进电机驱动板(ULN2003APG) 一块 光敏传感器 一个 TurnipBit 扩展板 一块 ...
- 物联无线自动窗帘:窗帘收放更自如-智能家居
物联无线自动窗帘:窗帘收放更自如- 智能家居 大家都知道,窗帘是生活中最常见的一种设备,具有设计装饰.遮阳隔热.调节室内光线和营造舒适家居氛围的功能,同时也是保护家庭私密性一道"防火墙&qu ...
- python抢货程序_Python自动化xpath实现自动抢票抢货代码示例
本篇文章小编给大家分享一下Python自动化xpath实现自动抢票抢货代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 总代码: for i i ...
- 使用gulp+browser-sync搭建Sass自动化编译以及自动刷新所需要的插件
使用gulp+browser-sync搭建Sass自动化编译以及自动刷新所需要的插件 按照gulp需求插件 安装browser-sync(在命令行中输入) npm install --save-dev ...
最新文章
- python学习——01循环控制
- Python 列表 sort() 方法
- eureka/zookeeper/consul 三个注册中心的异同点
- 12bit灰度图像映射到8bit显示及python 实现
- QuickWAP V1.5利用ASP读取Access记录集一例
- Enum枚举类|注解Annotation
- python无法打开_脚本 - Python3.8突然无法运行
- Eclipse 插件 在线安装 收集
- 专业管理系统-包含VB源代码(数据库)
- easyui 合并单元格
- Flink-CEP快速入门
- android开发之嵌入广告
- 用NE5532运算放大器制作降噪耳机
- 通过三点用Java求三角形周长和面积
- 苹果新专利:紧急情况下可用指纹或特定输入操作悄悄呼救
- 基础设施即代码(IAC),Zalando Postgres Operator 简介
- 全球最值得模仿的230个网站
- 监控Kafka(kafka_exporter)
- win7系统下共享电脑网络
- 导入多段落文档排版计算机作业,2011级计算机基础操作Word作业说明_论文排版.pdf...
热门文章
- xp链接wifi显示未连接服务器,xp无线网络未连接
- 应届生offer长什么样_你的offer长什么样? 拿到offer就是被录取了吗?
- java计算机毕业设计教材管理系统-源程序+mysql+系统+lw文档+远程调试
- 解决电脑给手机开热点问题
- 矿井水除氟,污水除氟的工艺分析
- 获5.3亿美金融资,亚马逊、红杉入局,自动驾驶“梦之队”Aurora还藏了哪些秘招?...
- 如何让右键菜单出现“命令行在这里”,即cmd here
- 2021.12.19【读书笔记】丨生物信息学与功能基因组学(第五章 高级数据库搜索 下)
- 作为一名HR,有哪些证书可以考?
- windows 杀死进程