自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(180)
  • 收藏
  • 关注

原创 个人对智能家居平台选择的思考

为了了解物联网行业所使用的智能家居开发平台,本人在网上提问,暂时没有业内人士回答,一个回答(如下图)声明包含AI辅助创作,个人感觉可以大致反映行业情况,但仅供参考。而对于了解Python/MicroPython的用户来说,由于ESP32C3正逐渐取代ESP8266,性能和容量均足以运行MicroPython,如果希望实现自动化和定制化程度更高的智能家居,MicroPython是更好的方案。通过MicroPython实现智能家居,除了发挥自动化的特性外,也要多运用HTML功能,开发出用于控制设备的网页。

2023-08-08 17:08:39 1389

原创 ESP32(MicroPython)四轮差速底盘遥控

遥控器程序有两种模式,第一种模式通过测量两个摇杆y轴电压分别控制两边电机pwm占空比,第二种模式通过左摇杆y轴控制速度,通过右摇杆x轴控制转向。遥控方面,本项目使用HC-14模块,实测连接到电脑可以通过串口接收遥控器数据,遥控器有线连接底盘上的主控也能正常使用,但通过HC-14模块接收数据时没有响应,需要更换其它方案,但本质上都是通过串口透传来控制。oled.fill_rect(10,-b//32+63,16,5,1) #画填充矩形。if mode==0: #直接通过两边摇杆y轴控制底盘两边电机转速。

2023-08-06 21:57:09 450

原创 QGC调试px4飞控问题总结

4.遥控器校准应当力求操作准确,可以多利用遥控器的机械限位,并且避免操作校准时无需操作的轴(如进行右摇杆横轴校准,应当注意纵轴保持中心位置)。另外要注意各通道是否需要反相。2.传感器校准时尽量不要放到桌子上调,这是因为桌子可能不平整,会影响校准精度,放在地面上调会好一些。1.如果使用碳纤维机架,要在电源板背面增加绝缘层以防短路。如果自行焊接导线,应当检查是否短路。注:本文主要讨论本人遇到的问题,由于各操作步骤已有不少文章说明具体操作方法,本文不再赘述。3.使用前应当先进行电调校准,否则会导致电机无法启动。

2023-08-06 21:35:11 593

原创 ESP32(MicroPython) 四足机器人(五)功能补充

def crawl(step,angle): #爬行,第一个参数为步骤数,第二个参数为相比直立状态降低的角度,步长随第二个参数的增大而增大。def walk(step,angle): #步行,第一个参数为步骤数,第二个参数为相比直立状态降低的角度,步长随第二个参数的增大而增大。elif mode==3: #步行功能(由于只有两个步骤,无正反向调节,可能不能正常使用,后续视实际测试情况进行调整)def function(i1, i2): #功能函数,执行连续进行的动作。

2023-07-30 17:07:23 296 1

原创 ESP32(MicroPython) 四足机器人(四)串口控制

def crawl(step,angle): #爬行,第一个参数为步骤数,第二个参数为相比直立状态降低的角度,步长随第二个参数的增大而增大。def walk(step,angle): #步行,第一个参数为步骤数,第二个参数为相比直立状态降低的角度,步长随第二个参数的增大而增大。if mode==3: #步行功能(由于只有两个步骤,无正反向调节,可能不能正常使用,后续视实际测试情况进行调整)tilt(Height1,Height1) #先降低高度。tilt(Height1,Height1) #先降低高度。

2023-07-30 12:18:13 392

原创 ESP32(MicroPython) 四足机器人(三)步态

由于之前提到的舵机虚位问题,这次的步态程序没有对两个步骤之间的舵机的具体角度进行控制,在行进过程中机器人的高度会有变化。def crawl(step,angle): #爬行,第一个参数为步骤数,第二个参数为相比直立状态降低的角度,步长随第二个参数的增大而增大。def walk(step,angle): #步行,第一个参数为步骤数,第二个参数为相比直立状态降低的角度,步长随第二个参数的增大而增大。def straight(angle): #直行,给所有转向舵机写入相应角度以调整方向。

2023-07-30 11:51:01 253

原创 ESP32(MicroPython) 四足机器人(二)转向与倾斜

这部分程序实现了四足机器人的直行(向正前方直行或斜向移动)、转向(前后的转向舵机向反方向旋转)和前后倾斜功能。实测发现之前的方案供电不足的问题比较严重,后续会换一个5v10a的供电方案,但只能插电使用。def tilt(height1,height2): #前后倾斜,局部变量与全局变量通过大小写区分。def straight(angle): #直行,给所有转向舵机写入相应角度以调整方向。代码如下(由于供电问题,倾斜功能使用较小的倾斜角度以降低舵机负载)Height1=0 #前部高度,0为最高。

2023-07-30 11:43:08 433

原创 ESP32(MicroPython) 四足机器人(一)

舵机连接到PCA9685的顺序按序号增大依次为左前、右前、左后、右后,依次连接上、中、下三层舵机。最下一层舵机在上图位置的角度为120度,其余均为90度,这样安排主要考虑到在四足弯曲时能有更大运动空间。考虑到之前提到的PCA9685对电压稳定性要求高的问题,供电采用USB二拖一方案,目前功率达到20w,但还是不够用。后续增加5v3a的充电宝,并改用性能更高的杜邦线,如果功率仍然不足就考虑其它方案。最近决定研究一下四足机器人,但市面上的产品,要么性价比低,要么性能达不到要求。(轮子作为装饰,使用铜柱固定)

2023-07-29 21:51:06 982 1

原创 ESP32(MicroPython) 两轮差速五自由度机械臂小车

机械臂使用PCA9685进行驱动,舵机为MG996R,由于希望达到6v电压以充分发挥舵机性能,本人尝试了6v电池和使用LM7806对7.4v电池降压的方案,均不能正常运行。为了方便操作,控制机械臂的主控也连接到底盘上的主控发出的热点。底盘采用闭环控制,由于对实时性要求高,不适合用同一块主控运行网页,因此使用另一块主控提供网页,并通过串口转发指令,此外还开启热点以便在户外连接。由于专门的编码器电机驱动尚无标准化设计,性价比较低,本人使用杜邦线连接编码器电机的接口,电机驱动使用经典的L298N。

2023-07-25 23:55:41 500

原创 机械臂运动学分析,向量方法

(单位:mm,舵机编号从下到上,底板底部为坐标原点,与舵盘顶部等高且与机械臂上层部分中心点x坐标相同处为关节位置。得夹爪开口:(98sin(angle1),98cos(angle2)+105cos(angle3),136+98sin(angle2)+105sin(angle3))关节2到关节3的长度:98 方向向量:(sin(angle1),cos(angle2),sin(angle2))得关节3:(98sin(angle1),98cos(angle2),136+98sin(angle2))

2023-07-22 00:34:03 160

原创 ESP32(MicroPython) 网页控制两轮差速底盘(发出热点、串口输出)

由于本人目前没有Linux开发板,为了方便对两轮差速底盘进行闭环控制的调试,本人制作了在另一个主控上使用的程序以便通过网页向控制底盘的主控发送数据。实测发现在有负载时两轮差速底盘的P、I值可以增大,目前调到P=10、I=2,在目标速度为0.5m/s以上时响应速度良好。

2023-07-21 16:46:19 134

原创 ESP32(MicroPython) 网页控制环形WS2812

本程序用于提供网页控制环形WS2812,为了不影响网页正常运行,本程序取消了流水灯形式,改为每个灯或每2个灯或每4个灯取随机亮度,延时和亮度可调。主控换成ESP32C3,感觉网页流畅度比ESP32-EROOM32低一些。ESP32(MicroPython)网页控制环形WS2812。

2023-07-19 20:58:14 1036 1

原创 ESP32(MicroPython)编码器电机PID距离控制

本程序通过PID控制编码器电机的转动距离,程序运行时输入目标距离(距离为编码器计数,目标距离为距当前位置的距离,如果距离计数改为不归零则可以控制距开始位置的距离),程序累加编码器计数作为距离计数并计算与目标值的偏差,并据此进行PID控制。增大P值有助于确保电机正常启动。实测增大D值对减少抖动、加快距离稳定有明显帮助。最终P值调到8,I调到5,D调到6。由于难以准确评估不同调校的效果,上述参数不一定是最佳参数。认定是否到达目标位置时可以按实际需要留一定余量以加快相应,还要结合结束时的速度进行判断。

2023-07-19 00:52:01 705

原创 ESP32(MicroPython) 网页控制两轮差速底盘

本程序用于通过网页控制两轮差速底盘,由于闭环控制容易导致网页不能正常运行,本程序使用开环控制,把200/1023作为启动的占空比,需要转向对两轮的占空比进行增减,低速时则在启动占空比的基础上加上转向时两轮占空比的差。热点版本(ESP32发出热点,名称为ESP32_Motor_Control,无密码,通过ip地址192.168.4.1进行连接)局域网版本(连接WiFi)

2023-07-17 23:09:57 163

原创 ESP32(MicroPython) 网页控制五自由度机械臂

本程序通过网页控制五自由度机械臂,驱动方案改用PCA9685。ESP32(MicroPython) 网页控制五自由度机械臂。

2023-07-17 22:18:41 292

原创 ESP32(MicroPython) 串口控制五自由度机械臂

输入数值时一次输入5个舵机的角度,每个舵机的角度占3位,适合作为下位机程序。本程序使用PCA9685作为舵机驱动,库文件可在。

2023-07-17 15:14:51 347

原创 ESP32(MicroPython) 编码器电机PID调参

之前的闭环控制程序只调节了I参数,这次的程序写了完整的增量式PID算法,电机无负载,实测P=10,I=2时响应快并且无明显抖动。ESP32(MicroPython)编码器电机PID调参。

2023-07-16 18:07:12 872

原创 ESP32(MicroPython) 两轮差速底盘串口控制(更新)

本程序用于通过串口对两轮差速底盘进行闭环控制。在测试过程中发现ESP32对多路编码器的检测不准确,估计是因为只能通过中断进行检测,实测电机正转时有丢步但波动不大,电机反转时检测误差大,因此反转时改为开环控制。另外,检测的周期也要适当延长,实测周期调到100ms比较合适。要注意的是,不同编码器应当调用不同定时器进行检测,在外设驱动中应当把两个编码器分别封装为类。

2023-07-16 14:44:49 226

原创 ESP32(MicroPython) 编码器电机闭环控制

上的程序读取编码器计数,然后另写了控制程序,有两个版本。程序把目标速度与实际速度的差乘以预设的倍数载加到PWM占空比上,相当于PID控制中的P,后续视实际需要做其它功能。本人最近查找资料时,发现ESP32上的使用MicroPython的编码器电机相关程序较少,闭环控制程序都是Pyboard上的,与ESP32不完全兼容。这个程序每隔一段时间取随机目标转速,并且可以从串口输出相关数据,主要用于调参。这个程序用于通过串口输入目标速度并调速。

2023-07-15 23:29:55 957

原创 ESP32(MicroPython) 网页控制四自由度机械臂

本程序用于通过网页控制四自由度机械臂,由于接收网页请求并写入角度后便可继续运行网页功能,不需要多线程,网页响应相对较快,但还是不适合实时性要求高的场景。视频为了便于录制,使用了手机网页,实际上电脑网页能一次显示所有内容,更适合用于操作这个程序。ESP32(MicroPython) 网页控制四自由的机械臂。

2023-07-15 14:54:09 436

原创 个人Scratch程序合集 第二版 主页

本程序为本人的转换为HTML的Scratch程序制作的第二个主页。改用了响应式图片廊+文字说明的形式,对不同尺寸的页面适配较好,但在一些分辨率上右侧空白区域过大。由于通常只有文字说明行数相同的图片才能并排,本人虽然调整了顺序,但在每行显示三张图片或两张图片的情况下还是有两行没显示满。博客地址为本人在CSDN发布相应程序的文章的网址,为了精简页面,这一版本不显示具体网址。个人Scratch程序合集 第二版 主页。

2023-07-15 12:15:24 134

原创 Scratch 放置建筑

本程序的功能是放置和删除建筑。点击鼠标时建筑会复制并从初始位置向鼠标指针移动,每次复制都更换外观,距离鼠标指针较近时停止移动并调至垂直方向,延时0.5秒。延时过后鼠标指针接触到建筑每隔0.1秒进行判断,3次都在建筑上则删除建筑。Scratch 放置建筑。

2023-07-14 17:42:53 128

原创 Scratch 多场景收集物品

本程序开始运行时4种物品各复制10次并移动到随机位置,交通工具角色跟随鼠标,碰到上述4种物品后删除物品,物品清空后切换到下一个背景、更换交通工具角色并重新生成4种物品。交通工具角色的切换通过判断背景变量的值来实现的,未使用的交通工具角色会设为最小。Scratch 多场景收集物品。物品角色(4种物品程序相同)

2023-07-14 14:41:53 244

原创 Scratch 接篮球

本程序的功能是“篮球”每0.2秒复制,复制后向随机方向移动,碰到边缘反弹,碰到角色“Jamal”后删除且该角色切换到接球动作。鼠标点击后角色“Jamal”复制并移动到鼠标位置,延时0.5秒,复制的角色碰到鼠标后删除。Scratch 接篮球。

2023-07-14 14:13:14 166

原创 Scratch 环绕版打砖块

本程序的功能是使用鼠标控制小球的发射方向,小球在屏幕中间发射,因此称为环绕版。“砖块”随机生成,小球碰到“砖块”后“砖块”消失,小球向相应方向旋转90度以模拟反弹效果,小球碰到边缘后消失。另外,小球采取了旋转后回弹的形式以提高可靠性,在回弹前要加延时以免影响“砖块”的判定。Scratch 环绕版打砖块。“砖块”(两种程序相同)

2023-07-14 13:24:29 171

原创 Scratch 随机平台跳跃与背景切换

本程序在随机平台跳跃程序的基础上增加了到达箭头切换背景的功能,切换背景后回到起点,在需要时也可以点击箭头切换平台布局。降落到平台的判定改为按照颜色判定,角色上半部分接触到平台仍会下落。Scratch 随机平台跳跃与背景切换。按键(消息内容与按键名称相同)平台(两种平台程序相同)用于触屏操作的版本界面如下。

2023-07-14 08:52:14 294

原创 ESP32(MicroPython) 网页显示温湿度+RGB点阵新版

本程序对网页显示温湿度+RGB点阵控制进行更改,视频中只显示RGB点阵部分,其余未更改。本程序模式一为隔列显示同一颜色后隔行显示同一颜色后,模式二把模式一改为在每行/列上显示两种随机颜色,模式三把之前的同心矩形随机颜色模式改为左右两边各显示不同颜色。ESP32(MicroPython) RGB点阵新版。

2023-07-14 00:01:24 257

原创 ESP32(MicroPython) RGB流水灯随机颜色

本程序把“RGB流水灯新版”程序改为随机颜色,分三色和六色。RGB灯每循环一圈在设定的亮度范围内取随机颜色,对亮度的更改也要到循环一圈后生效。ESP32(MicroPython) RGB流水灯随机颜色。

2023-07-13 22:09:29 236

原创 ESP32(MicroPython) 网页显示温湿度+RGB点阵控制

本程序整合了RGB点阵+可交互超声波云台+网页显示温湿度程序和网页控制WS2812程序的功能,对一些参数进行了调整。去掉了图标以加快加载速度,去掉了超声波云台和按键控制以简化接线并实现RGB点阵更新周期可调,由于RGB点阵更新周期相对较长,网页一般能正常运行。

2023-07-13 00:16:15 531

原创 ESP32(掌控板) 陀螺仪读数+倾斜移动图案

本程序对陀螺仪进行读数、显示角度并根据倾角和倾斜方向移动屏幕上的图案、调节RGB灯颜色和亮度,通过触摸按键调节RGB灯最大亮度。ESP32(掌控板) 陀螺仪读数+倾斜移动图案。MicroPython代码如下。

2023-07-11 15:11:02 407

原创 个人Scratch HTML程序合集 主页

此程序是本人制作的Scratch HTML程序合集的主页,使用HTML+CSS编写,整合了本人近期发布的转换为HTML的Scratch程序的内容,可以通过主页内的链接打开相应的程序和博客。主页在本地运行,大家可以在。个人Scratch HTML程序合集 主页。下载主页文件及相关资源。

2023-07-11 14:26:00 565

原创 Scratch 星际飞船

本程序主要增加了背景切换功能,飞船跟随鼠标移动,接触到右边的方块时切换到下一张背景,切换后飞船移动到左边,左边的椭圆则相反。随机生成另外两种飞船角色为背景,接触到边缘后移除。背景中的飞船(两种飞船程序相同)Scratch 星际飞船。

2023-07-11 10:06:06 280

原创 Scratch 随机平台发球

本程序整合了之前发布的“随机平台跳跃”和“棒球发球与反弹”程序的功能。球被设为跟随角色以确保发球位置正常,增加的功能主要是球在碰到平台时可以结合上一个坐标判断接触到平台上方还是下方并向相应方向旋转90度以更好地模拟反弹效果,角色增加发球动作,通过延时功能依次播放各动作。按键(消息名称与按键名称相同)Scratch 随机平台发球。平台(两种平台程序相同)适用于触屏设备的版本。

2023-07-11 08:52:44 74

原创 Scratch 随机平台跳跃

本程序转换为HTML后运行。程序在随机位置生成红、蓝平台各13个,通过W、A、S、D键控制角色移动,移动时把标记下落的变量设为1。该变量为1时角色下落,碰到边缘或平台时结束下落,变量设为0。这种方案的缺陷是角色可以卡在平台上。另外,本人还制作了改用屏幕上的按键操作的版本,适用于触屏设备,界面如下(由于未对平台生成区域进行限制,平台可能会生成到按钮上)Scratch 随机平台跳跃。平台(两种平台一样)按钮(消息为按钮名称)

2023-07-10 19:53:04 566

原创 Scratch 足球打蛤蟆

本程序转换为HTML后运行。“足球”角色和角色“麦克斯”跟随鼠标,点击鼠标时“足球”角色复制并向鼠标方向开始移动,碰到边缘反弹,移动一定步数后删除。“蛤蟆”角色每0.5秒在随机位置和方向生成,碰到足球角色后删除并+1分,碰到角色“麦克斯”后删除并-2分。Scratch 足球打蛤蟆。

2023-07-10 17:08:09 105

原创 Scratch 抓小狗

本程序转换为HTML后运行。“小狗”角色每0.7秒复制并移动到随机位置和方向,碰到边缘反弹,碰到其它角色后删除,得分+1。其它4个角色第一个跟随鼠标,其它的跟随前面的角色,后面3个角色碰到“小狗”角色则得分-3。Scratch 抓小狗。其余4个角色从前往后。

2023-07-10 16:27:30 131

原创 Scratch 猴子踢球

本程序转为HTML后运行,“猴子”角色跟随鼠标移动,“沙滩球”角色开始时生成20个并移动到随机位置,在碰到“猴子”角色时开始移动,碰到边缘或其它角色时反弹。scratch 猴子踢球。

2023-07-10 15:24:13 181

原创 Scratch 棒球发球与反弹

本程序考虑实际运行需要,转换为HTML后运行。转换时可以选择较高帧率,在scratch上应当降低移动的步长。本程序的功能是“棒球”初始位置不变,点击鼠标时复制“棒球”并向鼠标方向开始移动,碰到边缘反弹,移动一定步数后删除以防屏幕上球的数量过多。scratch 棒球发球与反弹。

2023-07-10 12:09:53 322

原创 ESP32(MicroPython) 网页控制WS2812

MicroPython提供了网页功能,可以使用HTML和CSS的大部分功能,并通过请求来调整变量的值和显示的文字,但不能添加图片(在线版FontAwsome可以正常使用)。本程序实现了通过网页调节RGB渐变流水灯程序的参数,视频只展示了网页的内容。要注意的一点是多线程功能启动后可能无法连接WiFi,需要把连接WiFi的代码放到进程内容前面。网页居中排列各内容,未使用框架形式以实现每一行灵活分配按钮数量。按钮颜色分别设置,使用渐变形式。实际运行时发现部分参数的设定会干扰其它参数,原因尚不明确。

2023-07-10 00:19:45 1265

原创 scratch 角色追踪

本程序中一个角色移动到随机位置和方向后向前移动,碰到边缘反弹;另一个角色跟随前一个角色,两个角色接触后前者重新取随机位置。scratch 角色追踪。

2023-07-08 18:19:18 759

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除