openmv学习笔记(24电赛备赛笔记)

     #openmv简介

        openmv一种小型,可编程机器视觉摄像头,设计应用嵌入式应用和计算边缘,是图传模块,或者认为是一种,具有图像处理功能的单片机,提供多种接口(I2C  SPI  UART CAN ADC  DAC )OpenMV 使用 MicroPython 作为编程语言。

        同时是一个开源的机器视觉项目,主要由 OpenMV 公司维护。它提供了硬件(OpenMV Cam 开发板)和软件(OpenMV IDE 和固件)解决方案,用户可以在此基础上进行二次开发和定制。

                ​​​​​​​                 ​​​​​​​        ​​​​​​​

#供电和烧录识别固件

        通常使用usb数据线进行烧录和供电,同时可以使用杜邦线进行供电,但是使用杜邦线供电时,需要注意通过 VIN   GND 进行供电,不能通过 3.3V  和GND 进行供电,3.3V 是直连接STMH7芯片引脚,直接连接会导致烧穿芯片。

        如果使用的是正版openmv,在通过usb连接电脑的同时,烧录驱动会自动安装,COM端口会自动识别出来,同时正版开发摄像头已经提前注册好的,openmv_IDE开发软件是不会提示,

#烧录程序

        通过usb连接电脑的时候,电脑会自动出现一个,在U盘中有main.py,文件,如果需要烧录程序只需要将在IDE中将.py文件保存在这个U盘中,就算是烧录到 flash 里面了。

        在IDE中选择这选项,就能烧录程序到U盘里面,成功之后,断开连接,在此上电就能运行程序在摄像头中,如果对flash的需求比较高,可以插入SD卡,最大支持32G的内存卡。

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

#证书问题(Liscence  )

        如果是购买的官方的Liscence在发货前,就已经注册好了,在连接IDE的时候不会有对话框进行注册。

#开发语言

        openmv,使用micropython开发,底层使用C语言进行控制,上层代码通过python进行封装,使用python上手非常简单,不需要考虑内存的申请和释放,用完变量之后不用考虑内存问题,解释性语言(定义变量不需要加类型)python会自动处理内存问题,有很多库进行调用,但是不同兼容python的库函数。

        micropython和python中的库函数不能相互调用的,在openmvIDE编辑器中打开串口调试助手,可以写python代码,这个是支持的。

        同时嵌入式开发python语法用到的不是特别多,主要是 变量    列表    元组   函数   ,在串口中对openmv进行调试的时候需要,断开IDE的usb连接,在串口调试助手中,连接端口才不会进行报错。

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

        串口调试助手,是支持运行python代码的,这个串口终端之中,可以写代码,下面介绍基本python语法,作为复习。

#print

print('ABC')#打印字符串
print(100)#打印数字
print(100+20)#打印计算结果
print('world','being','peace')#输出没有连接   ,  被空格代替

#声明变量

        python声明变量不需要定义类型,这种声明变量不需要定义类型的语言,是一种动态语言,需要定义类型的语言是静态语言,像是C语言。

Intergrate  = 10
String_1 = "a"
String_1 = 100

        动态语言不需要定义变量类型,变量赋值是没有限制的,可以使随意的。

#list

        列表像是C语言中的数组,list可以添加删除元素,同时也是通过索引进行访问元素,同时支持负数索引,python库中,内置len()  append() 计算list长度  添加元素。

test_list = [10, 2 , 58, 789, 2, 3]
test_list[-1]
len(test_list)
test_list.append(1)
test_list.insert(2,a)

#tuple

        元组一种不可变的序列数据类型,一旦被创建就不能被修改保证了数据的安全性,如果创建元组只有一个数据,需要再后面加上  , 如果不加只有   () ,会被编译判定为数学中的小括号,不是元组

single_element_tuple = (1,)
print(single_element_tuple)  # 输出: (1,)

# if  while判断语句

        python语法中没有 {} 表示执行语句块的规定,使用相同位置缩进,代表是同一语句块里面的代码,判断语句后面只要缩进相同就是同一个语句块。

if a<20:print("Same statement block")print("Same statement block")print("Same statement block")
while True:print("Same statement block")
for i in list:print(i)

#python对象

        在python中,对象是类的实例,类是对象的蓝图,对象可以拥有属性和函数,像是C语言中的结构体类型  和结构体的关系。

class Dog:# 初始化方法(构造函数)def __init__(self, name, age):self.name = name  # 实例属性self.age = age    # 实例属性# 实例方法def bark(self):print(f"{self.name} is barking.")# 实例方法def get_age(self):return self.age# 创建对象(实例)
my_dog = Dog("Buddy", 5)# 访问属性
print(my_dog.name)  # 输出: Buddy
print(my_dog.age)   # 输出: 5# 调用方法
my_dog.bark()       # 输出: Buddy is barking.
print(my_dog.get_age())  # 输出: 5

        类的对象可以调用,对象中定义地方法,同时具有类的相同属性,只需要进行声明即可。

                        欢迎指正,希望对你,有所帮助!!!

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

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

相关文章

204、【动态规划】牛客网 ——DP3 跳台阶扩展问题(Python版本)

题目描述 原题链接&#xff1a;DP3 跳台阶扩展问题 解题思路 一个DP问题&#xff0c;相比于普通爬楼&#xff08;只能爬一层或者两层&#xff09;对应的状态函数为 d p [ i ] d p [ i − 1 ] d p [ i − 2 ] dp[i] dp[i - 1] dp[i - 2] dp[i]dp[i−1]dp[i−2]。本题的dp…

vue3+g2plot实现词云图

词云图 效果预览: 核心代码: import {WordCloud } from @antv/g2plot;fetch(https://gw.alipayobjects.com/os/antfincdn/jPKbal7r9r/mock.json).then((res) => res.json()).then((data) => {const wordCloud = new WordCloud(container, {data,wordField: x,weigh…

秒懂Linux之权限

目录 一.Linux用户 二.文件权限 2.1 权限属性 chmod命令 chown与chgrp命令 2.2 文件类型 file指令 常见类型 2.3 常见权限问题 问题一&#xff1a; 问题二&#xff1a; 问题三&#xff1a; 一.Linux用户 Linux 下有两种用户&#xff1a;超级用户&#xff08; root …

kettle从入门到精通 第八十课 ETL之kettle kettle中的json对象字段写入postgresql中的json字段

场景&#xff1a;源数据库表为mysql的其中有json字段&#xff0c;通过kettle 查询出来 插入到目标数据库 postgresql中&#xff0c;对应的表中也有json字段。。但是报错&#xff0c;提示kettle查询出来是varchar的的字段&#xff0c;无法插入到目标数据库中。 1、创建测试表。 …

VBA技术资料MF180:将某个文件夹中的某类图片导入Word

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

【C++进阶学习】第九弹——哈希的原理与实现——开放寻址法的讲解

前言&#xff1a; 在前面&#xff0c;我们已经学习了很多存储机构&#xff0c;包括线性存储、树性存储等&#xff0c;并学习了多种拓展结构&#xff0c;效率也越来越高&#xff0c;但是是否有一种存储结构可以在大部分问题中都一次找到目标值呢&#xff1f;哈希可能能实现 目录…

【C++】C++应用案例-翻转数组

翻转数组&#xff0c;就是要把数组中元素的顺序全部反过来。比如一个数组{1,2,3,4,5,6,7,8}&#xff0c;翻转之后就是{8,7,6,5,4,3,2,1}。 &#xff08;1&#xff09;另外创建数组&#xff0c;反向填入元素 数组是将元素按照顺序依次存放的&#xff0c;长度固定。所以如果想要…

C++ | Leetcode C++题解之第283题移动零

题目&#xff1a; 题解&#xff1a; class Solution { public:void moveZeroes(vector<int>& nums) {int n nums.size(), left 0, right 0;while (right < n) {if (nums[right]) {swap(nums[left], nums[right]);left;}right;}} };

Go语言编程 学习笔记整理 第2章 顺序编程 前半部分

前言&#xff1a;《Go语言编程》编著 许式伟 吕桂华 等 1.1 变量 var v1 int var v2 string var v3 [10]int // 数组 var v4 []int // 数组切片 var v5 struct { f int } var v6 *int // 指针 var v7 map[string]int // map&#xff0c;key为string类型&#xff0c;value为in…

shell脚本(fifteen day)

一、shell概述 1、shell概念 &#xff08;1&#xff09;shell 英文翻译过来是外壳的意思&#xff0c;作为计算机语言来理解可以认为它是操作系统的外壳。可以通过shell 命令来操作和控制操作系统&#xff0c;比如Linux中的shell命令就包括 ls、cd、pwd 等等。 &#xff08;2&a…

postgres启动错误

说明&#xff1a;记录一次在Linux上启动postgres数据错误&#xff1b; 问题&#xff1a;安装好postgres数据库后&#xff0c;我使用systemctl启动数据库&#xff0c;报下面的错误 ● postgresql-15.service - PostgreSQL 15 database serverLoaded: loaded (/usr/lib/systemd…

【研路导航】保研英语面试高分攻略,助你一路过关斩将

面试攻略之 千锤百炼英语口语 写在前面 在保研面试中&#xff0c;英语口语往往是让许多同学感到头疼的一部分。如何在面试中展现出自信和流利的英语表达能力&#xff0c;是我们今天要探讨的主题。以下是一些有效的英语口语练习方法和常见题型解析&#xff0c;帮助你在保研面试…

使用PyTorch导出JIT模型:C++ API与libtorch实战

PyTorch导出JIT模型并用C API libtorch调用 本文将介绍如何将一个 PyTorch 模型导出为 JIT 模型并用 PyTorch 的 CAPI libtorch运行这个模型。 Step1&#xff1a;导出模型 首先我们进行第一步&#xff0c;用 Python API 来导出模型&#xff0c;由于本文的重点是在后面的部署…

Java-----栈

目录 1.栈&#xff08;Stack&#xff09; 1.1概念 1.2栈的使用 1.3栈的模拟实现 1.4栈的应用场景 1.5栈、虚拟机栈、栈帧有什么区别呢 1.栈&#xff08;Stack&#xff09; 1.1概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操…

Java基础入门14:常用API(Object(s)类、包装类、Math、Arrays、日期时间、Lambda表达式、方法引用)

Object类 Object类是Java中所有类的祖宗类&#xff0c;因此&#xff0c;Java中所有类的对象都可以直接使用Object类中提供的一些方法。 Object类的常见方法&#xff1a; package com.itchinajie.d12_api_object;public class Test {public static void main(String[] args) {…

mybatis-plus默认字段填充以及批量数据插入优化

日常开发中&#xff0c;我们需要设置一些数据库的默认字段填充&#xff0c;比如创建时间、创建人、更新时间、更新人等等&#xff0c;那么mybatis-plus给我们提供了一个这样的接口去做这件事情 MetaObjectHandler。 1、首先可以创建一个实现类来实现MetaObjectHandler接口 C…

DBMotion x Chat2DB:高效迁移,优雅同步,数据腾飞不再愁

DBMotion 基本介绍 数据传输服务DBMotion是一款轻量、绿色的数据库迁移、同步、校验工具。支持国产化数据迁移、支持容灾演练、支持两地三中心和异地多活&#xff1b;源库无感知、简单易集成、丝滑高性能。助您在多云之间随心迁移、自由容灾。 功能介绍 已支持的数据库 v1.…

7月22日JavaSE学习笔记

Collection接口&#xff0c;还有一个父级接口Iterable可迭代的 Collection继承树 Set 集合 Set的底层是用Map实现&#xff08;存储在key中&#xff0c;value中是空的Object对象&#xff09; 有序&#xff1a;取出的顺序和添加的顺序是一样的。 List是有序的&#xff0c;Set是…

“软件质量”,构筑企业值得信赖的护城河

引子 质量是产品的生命线&#xff0c;质量问题不仅会导致企业财产损失&#xff0c;还可能引发业务中断、客户满意度下降、企业品牌声誉受损等负面影响。如何在软件开发过程中全方位构建产品质量防护盾&#xff0c;是各行业保障产品高质量的重要课题。 如何保障软件质量&#…

五、SpringIoC/DI的使用

1. 类注解、方法注解 告诉spring管理bean—>bean的存储 1、类注解&#xff1a;五大注解 Controller&#xff08;控制器存储&#xff09;、 Service&#xff08;服务存储&#xff09;、 Repository&#xff08;仓库存储&#xff09;、 Component&#xff08;组件存储&#xf…