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

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

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

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值