【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境2

知识点:Micropython的来历

MicroPython是英国剑桥大学的教授 Damien George(达米安·乔治)所发明,Damien George 是一名计算机工程师,他每天都要使用 Python 语言工作,同时也在做一些机器人项目。有一天,他突然冒出了一个想法:能否用Python语言来控制单片机,进行实现对机器人的操控呢?

大家都知道,Python 是一款非常容易使用的脚本语言,它的语法简洁,使用简单,功能强大,容易扩展。而且python有强大的社区支持,有非常多的库可以使用,它的网络功能和计算功能也很强,可以方便的和其它语言配合使用,使用者也可以开发自己库,因此python被广泛应用于工程管理、网络编程、科学计算、人工智能、机器人、教育等许多行业,python语言也长期在编程语言排行榜上处于前五的位置。更重要的是python也是完全开源的,不像Windows、Java那样受到某些大公司的控制和影响,它完全是靠社区在推动和维护,所以python受到越来越多的开发者青睐。不过遗憾的是,因为受到硬件成本、运行性能、开发习惯等一些原因的影响,前些年python并没有在通用嵌入式方面得到太多的应用。

随着半导体技术和制造工艺的快速发展,芯片的升级换代速度也越来越快,芯片的功能、内部的存储器容量和资源不断增加,而成本却在不断降低。特别是随着象ST公司和乐鑫公司高性价比的芯片和方案应用越来越多,这就给python在低端嵌入式系统上的使用带来了可能。

Damien 花费了六个月的时间开发了MicroPython。MicroPython本身使用GNU C进行开发,在ST公司的微控制器上实现了Python 3的基本功能,拥有完善的解析器、编译器、虚拟机和类库等。在保留了python语言主要特性的基础上,他还对嵌入式系统的底层做了非常不错的封装,将常用功能都封装到库中,甚至为一些常用的传感器和硬件编写了专门的驱动。我们使用时只需要通过调用这些库和函数,就可以快速控制LED、液晶、舵机、多种传感器、SD、UART、I2C等,实现各种功能,而不用再去研究底层模块的使用方法。这样不但降低了开发难度,而且减少了重复开发工作,可以加快开发速度,提高了开发效率。以前需要较高水平的嵌入式工程师花费数天甚至数周才能完成的功能,现在普通的嵌入式开发者用几个小时就能实现类似的功能,而且要更加轻松和简单。

在这里插入图片描述

MicroPython系统结构
由微控制器硬件(这里使用Maixduino开发板)、MicroPython固件和用户程序组成。硬件和MicroPython固件时最为基础也是相对固定的,而用户程序可以随时改变,可以存放多个用户程序到系统中随时调用或切换,这也是使用MircoPyton的一大优势和特点。板子刚下流水线或者官方有新版固件,用户可以重新下载MicroPython固件,类似于电脑重装系统,如果用户在应用中不小心"搞坏"了MicroPython固件,可以通过板子上的按键操作恢复出厂设置。

MicroPython特点
Python 3 语法
完整的Python词法分析器, 解析器,编译器,虚拟机和运行时。
包含命令行接口,可离线运行。
Python 字节码由内置虚拟机编译运行.
有效的内部存储算法,能带来高效的内存利用率。整数变量存储在内存堆中,而不是栈中。
使用Python decorators特性,函数可以被编译成原生机器码,虽然这一特性会带来大约2倍的内存消耗,但也使python有更快的执行速度。
函数编译可设置使用底层整数代替python内建对象作为数字使用。有些代码的运行效率可以媲美c的效率,并且可以被python直接调用,适合做时间紧迫性,运算复杂度高的应用。
通过内联汇编功能,应用可以完全接入底层运行时,内联汇编器也可以像普通的python函数一样调用。
基于简单和快速标记的内存垃圾回收算法,运行周期少于4ms,许多函数都可以避免使用栈内存段,因此也不需要垃圾回收功能。

在这里插入图片描述
MzixPy项目

在这里插入图片描述
在这里插入图片描述
1、安装开发板串口驱动
正常情况下,win10 ,linux3.0+ ,mac os都可以自动识别并安装串口驱动。如果遇到驱动失败,可以去 FTDI 官网下载对应的 VCP 驱动程序。
https://www.ftdichip.com/Drivers/VCP.htm
win驱动下载地址:http://www.ftdichip.com/Drivers/CDM/CDM21228_Setup.zip

如果到驱动安装不正确,请彻底卸载原驱动,下载官方驱动,切断网络并安装驱动即可解决问题。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、下载K210开发板固件,更新MaixPy固件相当于给开发板烧录系统,使用Type C 线连接开发板和电脑,下载开发板固件,方式有两种:

(1)GitHub发布的固件(下载最新版本)

https://codeload.github.com/sipeed/MaixPy/zip/master

在这里插入图片描述
2)官方最新提交的固件版本

https://dl.sipeed.com/MAIX/MaixPy/release/master/

这里选择了v0.5.0_31版本

在这里插入图片描述

应该是选择最后这个(固件完整版)

通常一个固件文件中至少有四个文件,以“maixpy_v0.5.0_31_gd3e71c0”固件为例,具体说明如下:
maixpy_v0.5.0_31_gd3e71c0_m5stickv:M5STACK环境;
maixpy_v0.5.0_31_gd3e71c0_minimum: MaixPy固件最小集合,不支持 MaixPy IDE, 不包含OpenMV的相关算法;
maixpy_v0.5.0_31_gd3e71c0_with_lvgl.elf:完整版的MaixPy固件。
这里我们需要使用maixpy_v0.5.0_31_gd3e71c0_with_lvgl.elf:完整版的MaixPy固件。

在这里插入图片描述

3、下载烧录软件kflash_gui 应用,直接下载GitHub项目工程,下载完成点击“kflash_gui.exe”文件安装。

资料页

https://github.com/sipeed/kflash_gui

下载页面

https://github.com/sipeed/kflash_gui/releases

在这里插入图片描述

只下载了V1.5版本,其他还在下载之中…

出错了,无法安装kflash_gui.exe

在这里插入图片描述
后来只好把所有版本都下载,逐一试试…

在这里插入图片描述

经测试,1.24、1.25和1.32都能打开(这里使用v1.32版本来烧录固件)

几个选项选好

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
附:kflash_gui 特性
支持 *.bin 和 *.kfpgk 文件, 支持文件选择器选择
支持开发板选择
可选择程序烧录到 Flash 或者 SRAM
自动检测电脑上的串口
波特率可编辑
黑白两种皮肤可供选择
界面支持中英文切换
支持烧录进度显示和烧录速度显示
支持取消下载进程
支持合并多个 bin 文件为一个 bin 文件
支持把 kfpkg 文件转换为一个 bin 文件
支持使能 bin 文件
自动识别文件是不是固件

kflash_gui 使用方法
下载文件(kflash_gui_v*.*) 下载地址:release页面
解压, 并双击 kflash_gui.exe 或 kflash_gui
可以自行建快捷方式或者固定到开始页面或者固定要任务栏方便使用; 如果是 Linux, 可以修改 kflash_gui.desktop 里面的路径, 然后用管理员身份复制到/usr/share/application 目录, 然后就可以在系统菜单里面找到kflash_gui的图标了,点击即可打开
选择 bin 文件或者 kfpkg 文件, 如果是bin文件需要指定地址,如果是固件需要指定0x0000地址
选择开发板
选择烧录到开发板的哪个位置 Flash(速度慢但是重新上电还可运行) 或者 SRAM(RAM中运行,下载快断电丢失程序)
选择串口
选择波特率,推荐1.5M
点击 下载 按钮来开始下载
如果需要取消,点击 取消 按钮

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/47924.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

出海周报|Temu在美状告shein、ChatGPT安卓版上线、小红书回应闪退

工程机械产业“出海”成绩喜人,山东相关企业全国最多Temu在美状告shein,跨境电商战事升级TikTok将在美国推出电子商务计划,售卖中国商品高德即将上线国际图服务,初期即可覆盖全球超200个国家和地区ChatGPT安卓版正式上线&#xff…

字典序排数(力扣)思维 JAVA

给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。 你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。 示例 1: 输入:n 13 输出:[1,10,11,12,13,2,3,4,5,6,7,8,9] 示例 2: 输入:n 2 输…

【LeetCode】101.对称二叉树

题目 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false提示: 树中节点数…

pg三种插件验证

sr_plan 创建extension, 他会创建保留执行计划的表 创建表并插入数据 开启sr_plan.write_mode, 允许sr_plan收集SQL和执行计划 查看QUERY 1的执行计划 PostgreSQL支持merge join、GroupAggregate(通过INDEX SCAN),所以这个CASE,非常快,并…

Dubbo 指定调用固定ip+port dubbo调用指定服务 dubbo调用不随机 dubbo自定义调用服务 dubbo点对点通信 dubbo指定ip

1. 在写分布式im时nami-im: 分布式im, 集群 zookeeper netty kafka nacos rpc主要为gate(长连接服务) logic (业务) lsb (负载均衡)store(存储) - Gitee.com,需要指定某一…

FANUC机器人SRVO-050碰撞检测报警和SRVO-053干扰值过大故障报警总结

FANUC机器人SRVO-050碰撞检测报警和SRVO-053干扰值过大故障报警总结 前面和大家分享了关于SRVO-050碰撞检测报警和SRVO-053干扰值过大的原因分析以及处理方法,感兴趣的朋友可以参考以下链接中的内容: FANUC机器人SRVO-050碰撞检测报警原因分析及处理对策

图书馆荐书《乡村振兴战略下传统村落文化旅游设计》

图书馆荐书《乡村振兴战略下传统村落文化旅游设计》 书名:乡村振兴战略下传统村落文化旅游设计 索取号:F592.3/47 作者:许少辉 简介:我国传统村落具有宝贵的历史价值、农业价值和生态价值等价值特色,在生动开展基于…

Android 通用带箭头提示窗

简介 自定义PopupWindow, 适用于提示类弹窗。 使用自定义Drawable设置带箭头的背景,测试控件和弹窗的尺寸,自动设置弹窗的显示位置,让箭头指向锚点控件的中间位置,且根据锚点控件在屏幕的位置,自动适配弹窗显示位置。…

vue项目开发环境和生产环境代理的配置问题

1.跨域 跨域解决方案: 1.JSONP 通过动态 script标签跨域 2.document.domain iframe跨域 3.location.hash iframe 4.window.name iframe跨域 5.postMessage 跨 window 通信 6.跨域资源共享(CORS) 7.nginx代理跨域 8.nodejs中间件代理跨域 9…

283. 移动零

题目 题解一: 反向收集不是0 的数字放到一个数组里面,用原数组大小减去收集数组的大小就是0 的个数 /*** 反向收集不是0 的数字放到一个数组里面,用原数组大小减去收集数组的大小就是0 的个数* param nums*/public static void moveZeroes(i…

8. Spring Boot 日志文件

目录 1. 日志的作用 2. 如何使用日志 3. 自定义日志打印 3.1 获取日志对象 3.2 设置打印的内容 3.3 常见的日志框架 3.4 日志格式说明 4. 日志级别 4.1 日志级别的作用 4.2 日志级别的分类 4.3 日志级别的使用 4.4 设置日志级别 4.5 分目录设置日志级别 5. 日志…

《Docker与持续集成/持续部署:构建高效交付流程,打造敏捷软件交付链》

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

Qt5.14.2+VS2019配置MSVC2017

问题: The compiler " Microsoft Visual C Compiler 16 . 11 . 32106 . 194 ( amd64 x86 )( x86-windows-msvc2019-pe-32bit ) cannot produce code for the Qt version " Qt5.14.2 MSVC2017 64bit " ( x86-windows-msvc2017-pe-64bit 编译器“…

区间预测 | MATLAB实现QRBiGRU双向门控循环单元分位数回归多输入单输出区间预测

区间预测 | MATLAB实现QRBiGRU双向门控循环单元分位数回归多输入单输出区间预测 目录 区间预测 | MATLAB实现QRBiGRU双向门控循环单元分位数回归多输入单输出区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRBiGRU双向门控循环单元分位数回归…

选读SQL经典实例笔记14_层次查询

1. 结果集 1.1. sql select empno,mgrfrom emp order by 2EMPNO MGR ---------- ----------7788 75667902 75667499 76987521 76987900 76987844 76987654 76987934 77827876 77887566 78397782 7…

Hadoop生态体系-2

目录标题 1、MapReduce介绍2、数据仓库3、HIVE4、HQL4.1 hive读写文件机制4.2 Hive数据存储路径 1、MapReduce介绍 思想:分而治之 map:“分”,即把复杂的任务分解为若干个“简单的任务”来处理。可以进行拆分的前提是这些小任务可以并行计算&#xff0c…

第四章 HL7 架构和可用工具 - 查看数据结构

文章目录 第四章 HL7 架构和可用工具 - 查看数据结构查看数据结构查看代码表使用自定义架构编辑器 第四章 HL7 架构和可用工具 - 查看数据结构 查看数据结构 当单击“数据结构”列中的名称时,InterSystems 会显示该数据结构中的所有字段。这是 HL7 数据结构页面。…

网络安全法律法规

数据参考:CISP官方 目录 国家立法体系网络安全法解析网络安全相关法律 一、国家立法体系 1、我国的立法体系 我国的立法体系在网络空间治理中扮演着基础工作的角色。为了应对快速发展的网络技术和威胁,我国采取了多级立法机制来完善网络空间的法律…

在linux中怎样同时运行三个微服务保证退出时不会终止

前言 1.maven中打jar包 使用插件打包,必须在pom.xml中添加插件,否则不能在linux中编译运行 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version&g…

207. 课程表 Python

文章目录 一、题目描述示例 1示例 2 二、代码三、解题思路 一、题目描述 你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, …