Micropython
文章平均质量分 68
Irving.Gao
中国科学技术大学在读研究生,自动驾驶场景理解方向。
研究方向:自动驾驶3D计算机视觉感知任务,图像分割,BEV,目标检测。
本科经历:大创项目-基于物联网的沙漠治理智能机器人集群、智能车、ROBOCON等机器人相关比赛,曾获挑战杯、智能车等国家一等奖四项等数十项国家级奖项,曾在杭州宇树科技、深圳科创学院智能驾驶中心、上海纽励科技、商汤科技实习。
展开
-
Micropython——使用Pico刷固件并配置VsCode开发环境
Pico引脚图二、为Pico烧录Micropython固件1.准备 / 下载固件下载链接:固件下载MicroPython固件为:pico_micropython_20210121.uf2文件。2.烧录固件务必按顺序操作!否则会烧录失败!(1)一直按住树莓派Pico板上的BOOTSEL按键,将树莓派Pico通过Micro USB线接到电脑;(注意:Micro USB线必须为自带的串口线!如果用的线不是串口线就会出现无法识别等问题!)(2)将准备好的固件pico_micropython_20原创 2021-07-07 21:51:28 · 8056 阅读 · 1 评论 -
Micropython——使用匿名上位机工作站实现电机参数实时绘图并PID调参
感谢龙哥指导使用如此优秀的上位机调参软件快速实现基于pyb开发的机器人PID参数的调节整定。匿名工作站上位机简介【经验篇】匿名上位机4.34简单上手使用匿名工作站上位机可以快速完成对机器人底盘电机的PID参数整定,而且绘图速度极快,基本无延时,所以用起来很方便,只需要使用Micorpython写通串口通信的协议,即可实现和上位机的通信。串口通信协议代码在Micropython中打通和上位机的串口通信协议,从而实现下位机个上位机通过串口发送数据,上位机可以正确解读从而在上位机软件中实现绘图功能.原创 2021-04-21 19:50:02 · 2768 阅读 · 9 评论 -
Micropython——基于Micro-USB口实现和UART上下位机串口通信
其实本质上Micropython的USB口就是一个UART,就是板子上没有的UART0,所以这里我们只需要使用一个pyb内置类pyb.USB_VCP,就可以通过函数去控制VCP,和PC进行数据通信。pyb.USB_VCP一直以来,用USB串口时,直接用print函数就可以实现单片机在USB串口的数据发送功能,但是无法实现上位机发下来的数据的接收功能,所以用VCP就可以很好地实现数据的读取和发送功能。PYB端在使用pyb.USB_VCP时,只需要先声明,然后就基本和UART的API使用方法相同了。.原创 2021-03-09 17:31:00 · 3151 阅读 · 0 评论 -
Micropython——九轴MPU9250模块的使用
在写ROS上位机的时候发现航向角yaw必须通过地磁仪进行校正解算,6轴的MPU6050缺少地磁仪模块,所以需要使用九轴的MPU9250。文章目录某宝上大概20元左右即可购买一个MPU9250模块,MPU-9250是一种由两个芯片组成的系统封装(SIP):MPU-6500,包含三轴陀螺仪和三轴加速度计和AK8963,这是一个三轴数字罗盘。micropython-mpu9250的Python项目详细描述IMU 计算 yaw,pitch 和rollhttps://github.com/tuupo.原创 2021-02-02 14:59:20 · 4192 阅读 · 1 评论 -
python机器人开发——基于Micropython的智能机器人底层控制开发
因为一直想去从零开始完全手写代码做一个ROS机器人,同时目前手里会的技能有基于micropython的STM32单片机编程、基于python的ROS学习基础,再多一点就是基于PaddlePaddle的AI视觉部分的部署应用,关于激光雷达、路径规划方面的了解很少,所以会在写博客的时候边学习边完善知识体系。因为我在看白茶-清欢的博客从零搭建ROS机器人的时候,发现这里的系列博客是用纯C/C++去编写整个ROS机器人的代码的,而对于博主这种对于STM32库函数不太熟,又觉得不想浪费那么长时间去学习;同时上位机.原创 2021-01-27 15:59:29 · 2162 阅读 · 0 评论 -
Micropython——报错解决:TypeError: object with buffer protocol required
报错:检查报错处代码仔细检查可以发现,是括号放错位置,导致函数无法正常执行,故报错!一般情况下,Micropython除硬件如定时器中断内存溢出等硬件本身报错外,其他均为语法错误!原创 2021-01-25 18:48:56 · 11388 阅读 · 1 评论 -
Micropython——六轴MPU6050模块的使用
想做用PYB做ROS机器人的主控,陀螺仪和加速度计怎么能少呢?文章目录MPU6050模块硬件连接代码MPU6050库文件主程序参数解析三轴加速度计三轴陀螺仪数据处理与实现校准卡尔曼滤波MPU6050模块MPU6050是一种非常流行的空间运动传感器芯片,可以获取器件当前的三个加速度分量和三个旋转角速度。由于其体积小巧,功能强大,精度较高,不仅被广泛应用于工业,同时也是航模爱好者的神器,被安装在各类飞行器上驰骋蓝天。MPU6050芯片内自带了一个数据处理子模块DMP,已经内置了滤波算法,在许多应用中.原创 2021-01-25 17:57:13 · 10210 阅读 · 7 评论 -
python——基于pyqtgraph和下位机串口通信并实现实时数据绘图
想在上位机端实时调下位机的pid,所以需要看一下波形,拒绝盲调。同时使用pyqtgragh可以轻松地将数据进行动态可视化。文章目录环境准备串口通信基本连接串口动态参数可视化实时效果展示环境准备pyserialpip install pyserialpyqtgraphpip install pyqtgraphpip install PyQt5串口通信基本连接import serialser = serial.Serial("COM3", 9600, timeout=1, .原创 2021-01-24 21:47:30 · 4014 阅读 · 4 评论 -
python——适用于基于python或Micropython开发的上下位机间通信的协议
文章目录本地转换格式模拟通信过程运行结果展示PYB和树莓派通信实现元组数据互传上位机端(树莓派)下位机端(这里使用的是PYB)PYB端接收因为博主最喜欢使用的单片机是基于micropython开发的,均使用python编程,可以兼容python间的数据格式。同时,在已经实现了PYB和树莓派进行串口通信的基础上,我们需要对通信数据的格式加以规范化。而元组作为python中内存占用最小的多数据存储格式,可以说是比列表、字典等更好的选择,所以本篇博客基于元组作为通信的主要数据格式进行讲解。本地转换格式模拟原创 2021-01-18 23:40:15 · 1679 阅读 · 0 评论 -
Micropython——基于树莓派的GPIO实现UART串口通信
因为我的USB-TTL模块出了问题,所以只好使用GPIO口和树莓派实现通信,在此记录。文章目录GPIO引脚功能图(4B)硬件连接UART通信代码上位机树莓派端下位机PYB端通信效果树莓派端PYB端本文采用树莓派的GPIO口实现UART通信功能。读者若想使用USB转TTL实现UART通信,参考文章:通过UART实现和树莓派的上下位机串口通信GPIO引脚功能图(4B)再具体一些:硬件连接PYB树莓派TX(X3)RX(15)RX(X4)TX(14)GNDGN原创 2021-01-18 22:14:35 · 2125 阅读 · 0 评论 -
python——节省内存空间的数据存储格式:bytes和编码转换
最近在使用基于python的单片机pyboard,所以会考虑到单片机内存的问题,希望使用一种可以节省内存空间的数据存储格式,所以进行了相关的研究。文章目录python内置函数`__sizeof__()`python可用的内置编码格式对比结果结论python内置函数__sizeof__()通过__sizeof__()可以对变量的内存进行检查,将不同的编码格式的内存情况打印出,对比得出较好的编码格式。该方法返回给定对象所占用的内部空间大小(以字节为单位)。python可用的内置编码格式直接转换为.原创 2021-01-18 20:05:48 · 1302 阅读 · 0 评论 -
Micropython——基于utime库实现程序执行时间的计时
utime – 时间相关函数具体API用法可以参考上面的官方文档。以下为测试程序的计时代码:import utimestart = utime.ticks_ms()'''你需要测试运行时间的程序'''end = utime.ticks_ms()print("running time:", end - start)...原创 2021-01-18 18:29:04 · 2308 阅读 · 0 评论 -
Micropython——基于单片机的三轴机械臂的控制
文章目录三轴机械臂的控制原理三轴机械臂接线三轴机械臂控制垂直坐标系控制立体空间坐标系控制三轴机械臂的控制原理参考我写的博客:Algorithm——逆解算三轴机械臂运动公式得到运动坐标三轴机械臂接线机械臂舵机PYB轴1X1轴2X2轴3X3注意:舵机的5V和GND最好外接足额的5V供电,板载的V+接口供电不足5V,可能会导致舵机无法转动!!只会嗡嗡响。三轴机械臂控制博主采用PYB作为主控,利用Servo库进行直接控制。垂直坐标系控制只用两个轴即可完成原创 2020-10-11 14:15:40 · 3312 阅读 · 11 评论 -
Micropython——RT-Thread开发板固件烧写
首先向官方文档吐个槽,真的就没个适合新手入门的教程!!!!!!文档里很多东西都是拼凑而出,第一次接触根本无法正常进行操作,而且文档经常性的只出现结果,无视中间步骤,对新手及其不友好。好,吐槽到此为止。文章目录软硬件准备硬件软件固件BSP编译1.配置Env2.编译固件剩余操作软硬件准备硬件博主用的是IoT Board 潘多拉开发板。如下图所示,看起来挺香的,支持基于python的物联网开发。软件env,是适用于RT-Thread板子的调试终端(下载链接:官网下载)STM32 ST.原创 2020-10-10 16:09:37 · 1368 阅读 · 1 评论 -
Micropython——使用北斗模块实现实时读取经纬度信息
文章目录北斗模块接线接收代码串口接收数据截图北斗模块接线北斗模块PYBVCCVCCGNDGNDRXX1(UART4,TX)TXX2(UART4,RX)接收代码if __name__ == "__main__": bd = UART(4, 9600) while True: if bd.any(): print(bd.readline())串口接收数据截图...原创 2020-10-03 22:54:25 · 2690 阅读 · 2 评论 -
Micropython——使用I2C通信的OLED显示屏
文章目录I2C通信OLED屏接线SSD1306库主函数代码效果展示I2C通信I2C通信是一种单片机常用的通信协议,它具有一根总线设计,具有一个主机,可以挂载多个设备在总线上作为从机,主机通过选定不同的发送地址来发送内容给不同的从机。OLED屏采用具有4针脚的,支持I2C通信的OLED屏。接线使用X9、X10引脚PYBOLEDVCC3.3VGNDGNDX9SCLX10SDASSD1306库ssd1306.py# MicroPython原创 2020-10-03 20:45:31 · 4108 阅读 · 2 评论 -
Micropython——基于PYB的霍尔编码器电机的PID控制
因为打算用PYB做机器人核心板,那么作为机器人底盘的最基本控制算法PID必然不可或缺。我自己写了一个PID算法的小py文件,可以在主函数中直接进行调用,采用PID算法可以让机器人的行驶速度达到设定的速度,同时,可以将pid应用在两轮之间,实现两轮速度差的消除,使机器人能够真正实现闭环走直线。文章目录PID算法理论基础自己写的PID模块采用电机实战验证硬件使用基础算法应用测试控制系统分析关键问题分析测试代码算法应用PID算法理论基础这里可以直接参阅我写的这篇关于PID控制理论的博客,读者如果还是觉得.原创 2020-10-03 16:44:24 · 6425 阅读 · 7 评论 -
Micropython——使用vs code进行PYB开发调试及py工程文件上传下载
最终调试和上传工程文件的效果图因为博主也是看了各种教程,但是还是没法装好,最终自己摸索,找到正确配置和使用的方法。为证实本博客方案的成功性,先上图。测试部分:上传本地工程文件夹到PYB软重启板子进行开发调试将PYB文件夹的内容成功上传至板子基础安装配置教程根据此文链接进行基础配置即可,不过多赘述。使用Visual Studio Code进行MicroPython环境配置具体核心配置及踩坑核心配置文件pymakr.json该文件为我的pymakr.json配置详情(如果找不到原创 2020-09-27 13:21:19 · 4530 阅读 · 1 评论 -
Micropython——使用定时器中断报错: uncaught exception in Timer(X) interrupt handler
报错内容报错原因因为在定义回调函数时,必须要给回调函数一个无意义的输入值!否则就会报错回调函数正确定义方式此处的t无意义,在此打印一下,内容为定时器具体信息。以下为print(t)的结果:...原创 2020-09-26 17:25:10 · 2517 阅读 · 0 评论 -
Micropython——报错解决:定时器相关报错:ValueError: Pin(B8) doesn‘t have an af for Timer(8)
报错问题分析经过博主多番排查,发现问题在于:定时器在定义时错误使用定时器前缀!!!!当遇到此类问题,读者应当仔细排查定时器定义相关代码!成功解决!原创 2020-09-26 00:06:50 · 1429 阅读 · 0 评论 -
Micropython——使用PS2手柄实现远程遥控
文章目录PS2遥控手柄遥控原理接线代码PS2手柄的基本配置代码指令接收主程序按键对应数据图PS2遥控手柄此处使用的是较为低级便宜的PS2遥控手柄,不过可以实现绝大部分的控制基本功能,有想玩无级变速之类的小伙伴可以去买更为高级的手柄~遥控原理遥控器端有信号发送装置,接收端具有接收装置,将PS2的接收装置与PYB相连,即可完成接收器与单片机的接线。每当在遥控器端按下一个按键时,接收端即可接收到一个固定的字符串(或数字),代表这个按键,所以通过不同按键对应的数字,我们即可得到这个按键是什么,再对他进行相原创 2020-09-25 12:54:36 · 3356 阅读 · 8 评论 -
Micropython——使用定时器编写中断程序
定时器中断在定时器计数满后,执行一次中断程序,例如,当定时器频率为1时,即定时器的频率为1Hz,每秒计数1次,然后就会执行中断程序。代码示例此处以一个定时器中断实现LED定时翻转为例,进行讲解:from pyb import Timer, LED#中断程序的类class Blink: def __init__(self, timer, led): self.led = led timer.callback(self.cb) #定义中断程序 #定义中断函原创 2020-09-11 22:09:44 · 2399 阅读 · 0 评论 -
Micropython——基于USB-TTL模块实现和树莓派的上下位机串口通信
文章目录使用USB转TTL连接PYB和树莓派树莓派端安装serial库查找usb口号找到上位机收发代码实现效果PYB端下位机收发代码使用USB转TTL连接PYB和树莓派USB转TTL模块PYBVCCVCCGNDGNDRXX1(UART4,TX)TXX2(UART4,RX)将PYB的USB数据线和电脑相连,方便调试。将USB转TTL的USB端与树莓派相连,进行上下位机通信。树莓派端安装serial库pip install serial查原创 2020-09-05 23:18:42 · 2088 阅读 · 0 评论 -
Micropython——基于PYB的霍尔编码器电机测速与使用
文章目录编码器电机简介霍尔传感器编码器电机接线编码器读取代码编码器电机简介霍尔传感器编码器电机接线DM420驱动器PYB编码器A相X1(TIM2,CH1)编码器B相X2(TIM2,CH2)编码器5VV+(Vin)编码器GNDGND电机12V12V电源电机GND电源GND编码器读取代码from pyb import Timer, Pin#定义引脚p1 = Pin("X1")p2 = Pin("X2")tim=pyb.Time原创 2020-07-24 19:54:23 · 10898 阅读 · 17 评论 -
Micropython——PWM控制驱动器+步进电机
from pyb import Pin, Timer#左轮left1 = Pin('PA1')left2 = Pin('PA2')#左轮对应定时器tim1 = Timer(2, freq=1000) #要实现每秒0.1ms量级left_go = tim1.channel(2, Timer.PWM, pin=left1)left_stop = tim1.channel(3, Timer.PWM, pin=left2)dir_ahead = Pin("PA3", Pin.OUT_PP)dir原创 2020-07-16 23:07:11 · 6651 阅读 · 0 评论 -
Micropython——UART串口(蓝牙)
文章目录HC-06蓝牙模块接线连接手机APP调试调试注意事项测试代码测试发送代码测试接收代码发送数据接收数据HC-06蓝牙模块HC-06蓝牙模块简介接线HC-06蓝牙模块TPYboardVCCVCCGNDGNDRXX1(UART4,TX)TXX2(UART4,RX)博主所用的TPYboard的引脚图连接手机APP调试博主所用安卓APP:蓝牙调试宝如图所示,表示连接成功:调试注意事项将数据格式都调整为“utf-8”如有其它问题,可以参原创 2020-07-08 17:50:52 · 1844 阅读 · 3 评论 -
Micropython——L298N电机驱动模块
文章目录L298N电机驱动模块PWM调速原理直流电机接线PWM代码L298N电机驱动模块L298N 电机驱动模块可以直接驱动两路 3-16V 直流电机,并提供了 5V 输出接口(输入最低只要 6V),可以给5V单片机电路系统供电 (低纹波系数),支持3.3V MCU ARM 控制,可以方便的控制直流电机速度和方向,也可以控制2相步进电机, 5线4相步进电机,是智能小车必备利器。PWM调速原理PWM全称为“Pulse Width Modulation”。中文:脉冲宽度调制。脉冲宽度指的是 脉冲持续的原创 2020-07-02 13:31:23 · 5227 阅读 · 2 评论 -
Micropython——HC-SR04超声波测距模块
文章目录HC-SR04超声波测距模块超声波测距原理接线代码HC-SR04超声波测距模块超声波测距模块HC-SR04是市面上常见的超声波测距模块,价格便宜,精度高,可提供2cm-400cm的非接触式距离感测功能,测距精度可达3mm;模块包括超声波发射器、接收器与控制电路,检测角度为30°,广泛用于DIY制作中:超声波测距原理超声测距模块HC-SR04的使用接线HC-SR04TPYboardVCCVIN(5V)TrigX2EchoX1GndGND原创 2020-07-02 00:09:08 · 3345 阅读 · 1 评论 -
Micropython——DHT11温湿度传感器
文章目录DHT11温湿度传感器简介接线库文件`dht11.py`代码主文件`main.py`代码DHT11温湿度传感器简介DHT11是一款有已校准数字信号输出的温湿度传感器。 精度湿度±5%RH, 温度±2℃,量程湿度20-90%RH, 温度0~50℃。接线DHT11TPYboard+VIN(5V)OUTX12-GND库文件dht11.py代码在Flash盘符中新建dht11.py文件,并写入以下代码:import pybfrom pyb impo原创 2020-07-01 23:45:49 · 3977 阅读 · 4 评论 -
Micropython——PWM舵机控制
文章目录舵机简介舵机的接线舵机的控制原理接线代码舵机简介舵机,又称伺服马达,是一种具有闭环控制系统的机电结构。舵机主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。 其工作原理是由控制器发出PWM(脉冲宽度调制)信号给舵机,经电路板上的IC处理后计算出转动方向,再驱动无核心马达转动, 透过减速齿轮将动力传至摆臂,同时由位置检测器(电位器)返回位置信号,判断是否已经到达设定位置,一般舵机只能旋转180度。舵机的接线舵机有3根线,棕色为地,红色为电源正,橙色为信号线,但不同牌子的舵机,线的颜色原创 2020-07-01 23:29:26 · 2646 阅读 · 0 评论 -
MicroPython——将固件烧写到STM32开发板上
博主是在 win10环境下,将MicroPython固件烧录到stm32F407开发板上。因为博主想学一波STM32F407,有python基础,但c语言基础一般,觉得学库函数觉得太过复杂,且以后方向可能不太搞嵌入式硬件,所以就用MircoPython做硬件。文章目录资源准备软件准备固件准备硬件准备固件烧写验证固件是否烧写成功资源准备软件准备必备:准备ST-link Utility软件;(用于STM32开发板的hex文件烧写)非必备:准备Dfu file manager软件;(若读者.原创 2020-06-13 23:56:53 · 12169 阅读 · 25 评论 -
Micropython——通过putty实现实时交互和调试(包含putty界面黑屏bug解决方法)
文章目录pyboard驱动的安装安装驱动文件使用putty连接pyboardpyboard驱动的安装通过usb线将pyboard和电脑连接,打开“设备管理器”,查看端口中pyboard对应的串口,Windows会将开发板是 串口驱动,但是我们需要安装pyboard的特定驱动,才鞥呢正确识别开发板。安装驱动文件更新驱动程序手动安装驱动程序从计算机中选取驱动程序从磁盘中安装驱动文件选择驱动文件使用putty连接pyboard...原创 2020-06-13 11:36:34 · 3592 阅读 · 0 评论 -
PYB——恢复出厂设置
TPYBoardv1.01 恢复出厂设置因为某些原因造成TPYBoard故障,可以恢复到出厂设置,就像Windows系统重新用Ghost恢复一样。文章目录TPYBoardv1.01 恢复出厂设置进入安全模式恢复出厂设置首先要做的事情是进入安全模式:这将临时跳过 boot.py 和 main.py 的执行,直接获取默认的 USB 设定。如果对于文件系统有困惑的话可以尝试出厂重置,其将把文件...转载 2020-04-16 10:30:09 · 816 阅读 · 0 评论