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://www.rhkb.cn/news/381862.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux云计算 |【第一阶段】ENGINEER-DAY4

主要内容&#xff1a; 配置Linux网络参数、配置静态主机名、查看/修改/激活/禁用网络连接、指定DNS、虚拟网络连接、虚拟机克隆、SSH客户端、SCP远程复制、SSH无密码验证&#xff08;SERVICE-DAY5&#xff09;、虚拟网络类型 一、网络参数配置 修改网卡配置文件主要是需要配置…

人工智能与社交变革:探索Facebook如何领导智能化社交平台

在过去十年中&#xff0c;人工智能&#xff08;AI&#xff09;技术迅猛发展&#xff0c;彻底改变了我们与数字世界互动的方式。Facebook作为全球最大的社交媒体平台之一&#xff0c;充分利用AI技术&#xff0c;不断推动社交平台的智能化&#xff0c;提升用户体验。本文将深入探…

资源调度的艺术:大规模爬虫管理的优化策略

摘要 本文深入探讨了在处理大规模数据抓取项目时&#xff0c;如何通过优化资源调度策略来提升爬虫管理的效率与稳定性。从技术选型到策略实施&#xff0c;揭示了优化的核心技巧&#xff0c;助力企业与开发者高效驾驭大数据采集的挑战。 正文 在互联网信息爆炸的时代&#xf…

TypeScript 开发或面试中常见问题合集

目录 typescript 与 babel 区别编译编译器 模块模块解析规则 命名空间interface 合并逻辑声明合并 普通项目怎么从 js 迁移到 ts解决冲突 第三方工具生成.d.ts文件三斜线指令模块解析逻辑types 发布书写 ts 的声明文件Property includes does not exist on type number[] globa…

RSA非对称加密

前言 RSA是一种非对称加密算法&#xff0c;也是目前最常用的加密算法之一。它由三位发明家&#xff08;Rivest、Shamir、Adleman&#xff09;于1977年提出&#xff0c;并以他们的姓氏命名。RSA算法使用了两个密钥&#xff1a;公钥和私钥。公钥可用于对数据进行加密&#xff0c…

《Exploring Aligned Complementary Image Pair for Blind Motion Deblurring》

这篇论文的标题《Exploring Aligned Complementary Image Pair for Blind Motion Deblurring》可以翻译为《探索对齐的互补图像对用于盲运动去模糊》。从标题可以推断,论文的焦点在于开发一种算法或技术,利用成对的图像来解决运动模糊问题,特别是在不知道模糊核(即造成模糊…

第一弹:基于ABAP OLE技术实现对服务器文件进行读写操作

前言 最近遇到这样一个需求&#xff0c;需要对BW服务器上的文件进行下载的同时写入每个用户相对应的数据。之前的服务器模版是一个死模版&#xff0c;对于这样的要求&#xff0c;我就想到了OLE技术&#xff0c;那么什么是OLE技术呢&#xff1f; 一、什么是OLE技术&#xff1f…

Modbus转BACnet/IP网关快速对接Modbus协议设备与BA系统

摘要 在智能建筑和工业自动化领域&#xff0c;Modbus和BACnet/IP协议的集成应用越来越普遍。BA&#xff08;Building Automation&#xff0c;楼宇自动化&#xff09;系统作为现代建筑的核心&#xff0c;需要高效地处理来自不同协议的设备数据&#xff0c;负责监控和管理建筑内…

深入浅出mediasoup—通信框架

libuv 是一个跨平台的异步事件驱动库&#xff0c;用于构建高性能和可扩展的网络应用程序。mediasoup 基于 libuv 构建了包括管道、信号和 socket 在内的一整套通信框架&#xff0c;具有单线程、事件驱动和异步的典型特征&#xff0c;是构建高性能 WebRTC 流媒体服务器的重要基础…

使用 spring MVC 简单的案例 (1)计算器

一、计算器 1.1前端代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> …

Git报错fatal: detected dubious ownership in repository

报错信息 fatal: detected dubious ownership in repository at 解决办法 一行代码解决 git config --global --add safe.directory "*";如何使用git工具初始胡项目并且和远程仓库建立联系 git init–建立一个本地仓库 git add README.md–将README.md文件加入…

MySQL添加索引时会锁表吗?

目录 简介Online DDL概念Online DDL用法总结 简介 在MySQL5.5以及之前的版本&#xff0c;通常更改数据表结构操作&#xff08;DDL&#xff09;会阻塞对表数据的增删改操作&#xff08;DML&#xff09;。 MySQL5.6提供Online DDL之后可支持DDL与DML操作同时执行&#xff0c;降低…

算法通关:005对数器

就是你有优解&#xff0c;但是不知道对不对&#xff0c;或者你遇到了题&#xff0c;但是没有在线网站能跑&#xff0c;无法检查你的思路是否正确。 写一个随机生成符合输入要求的方法。 此时用暴力解法写一个&#xff0c;因为答案肯定是对的&#xff0c;再写一个优解方法。将两…

斐波那契数列的多种解法 C++实现,绘图部分用Python实现

斐波那契数列的多种解法 C实现&#xff0c;绘图部分用Python实现 flyfish 斐波那契数列&#xff08;Fibonacci sequence&#xff09;是一个经典的数列&#xff0c;定义如下&#xff1a; { 0 if n 0 1 if n 1 F ( n − 1 ) F ( n − 2 ) if n > 1 \begin{cases} 0 &…

HackTheBox--Knife

Knife 测试过程 1 信息收集 端口扫描 80端口测试 echo "10.129.63.56 knife.htb" | sudo tee -a /etc/hosts网站是纯静态的&#xff0c;无任何交互功能&#xff0c;检查网页源代码也未发现任何可利用的文件。 检查页面请求时&#xff0c;请求与响应内容&#xff0…

高频面试题-CSS

BFC 介绍下BFC (块级格式化上下文) 1>什么是BFC BFC即块级格式化上下文&#xff0c;是CSS可视化渲染的一部分, 它是一块独立的渲染区域&#xff0c;只有属于同一个BFC的元素才会互相影响&#xff0c;且不会影响其它外部元素。 2>如何创建BFC 根元素&#xff0c;即HTM…

RabbitMQ的学习和模拟实现|sqlite轻量级数据库的介绍和简单使用

SQLite3 项目仓库&#xff1a;https://github.com/ffengc/HareMQ SQLite3 什么是SQLite为什么需要用SQLite官方文档封装Helper进行一些实验 什么是SQLite SQLite是一个进程内的轻量级数据库&#xff0c;它实现了自给自足的、无服务器的、零配置的、事务性的 SQL数据库引擎…

lua 游戏架构 之 LoaderWallet 异步加载

定义了一个名为LoaderWallet class&#xff0c;用于管理资源加载器&#xff08;Loader&#xff09;。这个类封装了资源加载的功能&#xff0c;包括异步加载&#xff0c;以及资源的释放和状态查询。下面是对代码的详细解释&#xff1a; ### 类定义和初始化 这里定义了一个名为…

Inconsistent Query Results Based on Output Fields Selection in Milvus Dashboard

题意&#xff1a;在Milvus仪表盘中基于输出字段选择的不一致查询结果 问题背景&#xff1a; Im experiencing an issue with the Milvus dashboard where the search results change based on the selected output fields. Im working on a RAG project using text data conv…

AndroidStudio 编辑xml布局文件卡死问题解决

之前项目编写的都是正常&#xff0c;升级AndroidStudio后编辑布局文件就卡死&#xff0c;还以为是AndroidStudio文件。 其实不然&#xff0c;我给整个项目增加了版权声明。所以全部跟新后&#xff0c;布局文件也增加了版权声明。估计AndroidStudio在 解析布局文件时候因为有版…