AI嵌入式K210项目(20)-MicroPython介绍

news2024/9/23 5:31:01

文章目录

  • 前言
  • 一、MicroPython是什么?
  • 二、官方文档学习
  • 实验过程
  • 总结


前言

单片机嵌入式编程经历了汇编、 C 语言的发展历程,可以说是一次编程革命,其背后的原因是单片机的速度越来越快,集成度越来越高。而这一趋势并没停止,摩尔定律仍然适用。在未来,单片机上很可能直接跑机器语言。在 2014 年, MicroPython 在英国诞生了,对于电子爱好者来说无疑拉开了新时代的序幕,用 python 这个每年用户量不断增长的编程语言来开发嵌入式,加上无数开源的函数模块,让嵌入式开发变得从未如此的简单。

前几章我们介绍K210使用C语言裸机开发方法,大家对K210内部的硬件和各种加速器有了初步的了解,但是开发人工智能相关程序,使用C语言的话复杂度比较高,因此接下来我们逐步学习基于K210芯片使用python开发人工智能相关程序,我们从基础的开始介绍;

一、MicroPython是什么?

我看到MicroPython这个名字,第一感觉应该是"小Python",估计是Python的阉割版;

然后去官网看了下:“MicroPython 是 Python 3 编程语言的精简高效实现,包括 Python 标准库的一小部分,并且经过优化,可以在 Microcontrollers(微控制器)和有限的环境中运行。

MicroPython 包含许多高级功能,如交互式提示,任意精度整数,闭包,列表理解,生成器,异常处理等。然而它非常紧凑,可以在 256k 的代码空间和 16k的 RAM 内运行。MicroPyhon 旨在尽可能与普通 Python 兼容,以便您轻松地将代码从电脑传输到微控制器或者嵌入式系统。”

原来, Micropyton 是指在微控制器上使用Python 语言进行编程,学习过单片机和嵌入式开发的小伙伴应该都知道早期的
单片机使用汇编语言来编程,随着微处理器的发展,后来逐步被 C 所取代,现在的微处理器集成度越来越高了,那么我们现在可以使用 Python 语言来开发了。Python 的强大之处是封装了大量的库,开发者直接调用库函数则可以高效
地完成大量复杂的开发工作。 MicroPython 保留了这一特性,常用功能都封装到库中了,以及一些常用的传感器和组件都编写了专门的驱动,通过调用相关函数,就可以直接控制 LED、按键、伺服电机、 PWM、 AD/DA、 UART、 SPI、 IIC 以及 DS18B20温度传感器等等。以往需要花费数天编写才能实现的硬件功能代码,现在基于MicroPython 开发只要十几分钟甚至几行代码就可以解决。

二、官方文档学习

具体的语法我就不多此一举了,大家可以参考官方文档
官网文档网址:https://developer.canaan-creative.com/canmv/main/canmv/demo/index.html#multimedia
建议学习顺序:先了解MicroPython基础语法->按照例程进行实验->分析源码
在这里插入图片描述

实验过程

为了让大家体验下C和MicroPython开发方式的不同,这里做个简单实验吧,还记得当时我们做的点灯实验吗?AI嵌入式K210项目(3)-GPIO控制
硬件原理图:可以看到他们分别连接到了IO12-IO14上,不同的IO控制不同颜色的灯,设置IO为输出模式,当IO设置为高电平时,对应的灯熄灭,当IO设置为低电平时,对应的灯点亮;
在这里插入图片描述

from maix import GPIO
from fpioa_manager import fm
import utime
#注册 IO,这里是fpioa的使用方法
fm.register(12, fm.fpioa.GPIO0)

#初始化 IO
LED_R = GPIO(GPIO.GPIO0, GPIO.OUT)


while True:

    LED_R.value(0) #点亮 LED_R,红灯
    utime.sleep_ms(1000)
    LED_R.value(1) #熄灭 LED
    utime.sleep_ms(1000)

实验现象
在这里插入图片描述


总结

使用MicroPython开发效率得到了极大地提高,后面我们逐步介绍一些示例和模型训练方法

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux第35步_在“移植uboot”前安装“libncurses5-dev,bison和flex”工具

在“移植uboot”前,需要在Ubuntu中安装“libncurses5-dev,bison和flex”工具,否则在“编译uboot”时,会报错。 一、了解相关知识 1、libncurses5-dev库是一个在Linux/Unix下广泛应用的图形函数库。 2、bison是用C编写的语法解析…

excel甘特图怎么做?这种方法一目了然

excel甘特图怎么做?在现代项目管理中,甘特图作为一种可视化工具,被广泛应用于规划、执行和监控项目进度。在Excel中创建甘特图是一个强大的工具,可以用来规划和跟踪项目进度。下面就教教你如何使用Excel制作甘特图。 一、了解甘特…

泥土

当我们置身于大自然中,或许很少有人会特别留意到泥土,因为它显得如此平凡而不起眼。然而,泥土却是地球上最基础、最重要的元素之一,是生命的孕育之源。 泥土,那深埋在地底的黑褐色质地,看似普通无比&#…

C++——类型转换与特殊类设计

我们在C语言中经常会使用到强制类型转换,例如指针和整形之间的转换是最为常见的,但是 在C中,C设计师认为这种强制类型转换是不安全的,所以在C标准中加入了四种强制 类型转换风格,这就是我将要介绍的强制类型转换。 在某…

《Windows核心编程》若干知识点实战应用分享

目录 1、进程的虚拟内存分区与小于0x10000的小地址内存区 1.1、进程的虚拟内存分区 1.2、小于0x10000的小地址内存区 2、保存线程上下文的CONTEXT结构体 3、从汇编代码角度去理解多线程运行过程的典型实例 4、调用TerminateThread强制结束线程会导致线程中的资源没有释放…

『OpenCV-Python|鼠标作画笔』

Opencv-Python教程链接:https://opencv-python-tutorials.readthedocs.io/ 本文主要介绍OpenCV-Python如何将鼠标作画笔绘制圆或者矩形。 示例一:图片上双击的位置绘制一个圆圈 首先创建一个鼠标事件回调函数,鼠标事件发生时就会被执行。鼠标…

Git学习笔记(第9章):国内代码托管中心Gitee

目录 9.1 简介 9.1.1 Gitee概述 9.1.2 Gitee帐号注册和登录 9.2 VSCode登录Gitee账号 9.3 创建远程库 9.4 本地库推送到远程库(push) 9.5 导入GitHub项目 9.6 删除远程库 9.1 简介 9.1.1 Gitee概述 众所周知,GitHub服务器在国外,使用GitHub作为…

51-15 视频理解串讲—TimeSformer论文精读

今天读的论文题目是Is Space-Time Attention All You Need for Video Understanding? Facebook AI提出了一种称为TimeSformer视频理解的新架构,这个架构完全基于transformer,不使用卷积层。它通过分别对视频的时间和空间维度应用自注意力机制&#xff…

山西电力市场日前价格预测【2024-01-26】

日前价格预测 预测说明: 如上图所示,预测明日(2024-01-26)山西电力市场全天平均日前电价为309.45元/MWh。其中,最高日前电价为587.20元/MWh,预计出现在18:15。最低日前电价为0.00元/MWh,预计出…

2016年认证杯SPSSPRO杯数学建模A题(第一阶段)洗衣机全过程文档及程序

2016年认证杯SPSSPRO杯数学建模 A题 洗衣机 原题再现: 洗衣机是普及率极高的家用电器,它给人们的生活带来了很大的方便。家用洗衣机从工作方式来看,有波轮式、滚筒式、搅拌式等若干种类。在此基础上,各厂商也推出了多种具体方案…

mac电脑安卓文件传输工具:Android File Transfer直装版

Android File Transfer(AFT)是一款用于在Mac操作系统上与Android设备之间传输文件。它允许用户将照片、音乐、视频和其他文件从他们的Android手机或平板电脑传输到Mac电脑,以及将文件从Mac上传到Android设备。 下载地址:https://w…

Cesium介绍及3DTiles数据加载时添加光照效果对比

一、Cesium简介 Cesium原意是化学元素铯,铯是制造原子钟的关键元素,通过命名强调了Cesium产品专注于基于时空数据的实时可视化应用。熟悉GIS开发领域的读者都知道,Cesium是一个用于创建3D地理空间应用程序的开源JavaScript库,它允…

文件包含技术总结

开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这中文件调用的过程一般被称为文件包含。 allow_url_fopen On(是否允许打开远程文件) allow_url_include On&…

书生·浦语大模型--第五节课笔记作业--LMDeploy 大模型量化部署实践

文章目录 大模型部署背景LMDeploy简介动手实践创建环境服务部署在线转换离线转换TurboMind推理API服务Gradio 作为前端 Demo演示TurboMind 服务作为后端TurboMind 推理作为后端 作业 大模型部署背景 部署:将训练好的模型在特定软硬件环境中启动的过程 挑战&#x…

BurpSuite Pro 2023.12.1.2下载与破解-最新版BurpSuite Pro

本文在我的博客地址是:https://h4cker.zip/post/f05ae2e66da503f6383dffe48cdf5bac 上一次BurpSuite的分享还是在2020年 由于CSDN有防盗链,我自己的博客都无法访问这篇博文的图片了 至于为什么再写一次,是因为我看到群里这张图:…

前端开发提高效率的两大工具

一、浏览器中的开发者工具 怎么启动开发者工具? 在浏览器中按下F12或者鼠标右键点击检查 怎么利用(常用的几点)? 1、元素 点击标红的图标可以用于在页面选择元素,同时右侧会找到元素在前端代码中的位置 点击下方红…

飞驰云联与中兴新支点、中科红旗完成兼容认证 助力国产信创落地

近日,Ftrans飞驰云联自主研发的“Ftrans文件数据交换平台软件产品”、“Ftrans文件大数据传输管控平台软件产品”、“Ftrans信创文件安全传输软件产品”等,分别与广东中兴新支点技术有限公司的新支点电信级服务器操作系统V5、V6,以及中科红旗…

从零开始:Git 上传与使用指南

Git 是一种非常强大的版本控制系统,它可以帮助您在多人协作开发项目中更好地管理代码版本,并确保每个团队成员都能及时地获取最新的代码更改。在使用 Git 进行版本控制之前,您需要先进行一些设置,以确保您的代码能够顺利地与远程仓…

Linux之快速入门

一、Linux目录结构 从Windows转到Linux最不习惯的是什么: 目录结构 Windows会分盘,想怎么放东西就怎么放东西,好处自由,缺点容易乱 Linux有自己的目录结构,不能随随便便放东西 /:根目录/bin:二进制文件&…

蓝桥杯备战——3.定时器前后台

1.STC15F2k61S2的定时器 阅读STC15系列的手册,我们可以看到跟STC89C52RC的定时器还是有不同之处的: 由上图可以看到我们可以通过AUXR寄存器直接设置定时器的1T/12T模式了 在定时器0/1模式上也可以设置为16位自动重装载。 另外需要注意IAP15F2K61S2只有…