嵌入式实训day3

1、

# 82261773
# y6ufuT9yGQxddpSzSe3zZpbP
# BJsEfKFNGOwHtLuKoHsfVIWrGWjXVKut



"""
    1、PC需要联网
    2、不能使用MicroPython解释器
"""
from aip import AipFace
import base64

# 查看REST-API-SDK
if __name__ == "__main__":
    # 设置APP_ID、API_KEY、SECRECT_KEY
    APP_ID = "82261773"
    API_KEY = "y6ufuT9yGQxddpSzSe3zZpbP"
    SECRECT_KEY = "BJsEfKFNGOwHtLuKoHsfVIWrGWjXVKut"
    # 连接百度人脸识别库
    client = AipFace(APP_ID, API_KEY, SECRECT_KEY)

    # 配置选项
    options = {
        # 人脸检测选项:年龄,颜值,表情,脸型,性别,眼镜,人种,脸的形状
        "face_field":
        "age,beauty,expression,face_shape,gender,glasses,race,face_type"
    }

    # 指定要识别的图片
    filename = './images/test1.WEBP'
    #filename = './images/test2.jpg'

    # 打开图片,对图片进行识别并打印结果
    image_file = open(filename, 'rb')
    # 将读取到的内容经过编码base64成字符串
    image = str(base64.b64encode(image_file.read()), 'utf-8')
    # 类型为BASE64
    data = client.detect(image, 'BASE64', options)
    print(type(data))
    # 获取人脸检测结果
    face = data['result']['face_list'][0]

    # 对结果进行解析
    print('age:', face['age'])
    print('beauty:', face['beauty'])
    print('expression:', face['expression']['type'])
    print('face_shape:', face['face_shape']['type'])
    print('gender:', face['gender']['type'])
    print('glasses:', face['glasses']['type'])
    print('race:', face['race']['type'])

    # 关闭图片文件(释放资源)
    image_file.close()







2、

class Student:
    def __init__(self,name,age,score):
        self.name=name
        self.age=age
        self.score=score
        print("我叫{},今年{}岁,四级考试分数是{}".format(
        self.name,self.age,self.score))
        
    def learn(self,course):
        print("{}在学习{}课程".format(self.name,course))
    
    
if __name__=="__main__":
    student1=Student("老张",20,426)
    student2=Student("老王",22,459)
    student3=Student("老吴",28,498)
    student1.learn("英语")
    student1.learn("python")
    student1.learn("嵌入式软件开发")

3、

SyntaxError: 发生在代码中有语法错误时
 IndentationError: 缩进错误,通常是因为缩进不一致导致
NameError: 使用了未定义的变量或函数
TypeError: 数据类型不匹配或操作不支持
ValueError: 函数的参数值不合法
ImportError: 导入模块失败或不存在
KeyError: 字典中查找不存在的键
IndexError: 访问列表或元组的索引超出范围
ZeroDivisionError: 除以0的错误
FileNotFoundError: 文件不存在或无法打开
TypeError: 不支持的操作类型. 


4、

# try:
#     num1=int(input("num1="))
#     num2=int(input("num2="))
#     print("num1/num2=",num1/num2)
# except ZeroDivisionError:
#     print("除0错误")
# except ValueError:
#     print("输入的数据不是数字")
#     
# print("执行其他代码")

try:
    num1=int(input("num1="))
    num2=int(input("num2="))
    print("num1/num2=",num1/num2)
except Exception as ex:
    print("Error:",ex)
   
print("执行其他代码")

5、

#直流电机控制实验
from machine import Pin
import time
if __name__=="__main__":
    #直流·电机控制对象
    dc_motor=Pin(15,Pin.OUT,value=0)
    #GPIO-->电机驱动芯片-->直流电机
    dc_motor.value(1)#电机开启
    time.sleep(3)
    dc_motor.value(0)#电机关闭

6、

"""
    按键控制实验(轮训)
"""

from machine import Pin
import time

# 定义按键的控制引脚
key1 = Pin(27, Pin.IN, Pin.PULL_UP)
key2 = Pin(26, Pin.IN, Pin.PULL_UP)

# LED控制对象
led1 = Pin(15, Pin.OUT, value=0)
led2 = Pin(2, Pin.OUT, value=0)

# 定义按键值
KEY1_PRESS = 101
KEY2_PRESS = 102

# 0有某个按键按下,1没有按键按下
key_flag = 1 

# 按键扫描函数,有按键按下返回按键值,没有返回0
def key_scan():
    global key_flag # 声明是全局变量
    if key_flag==1 and (key1.value()==0 or key2.value()==0):
        time.sleep_ms(10) # 按键消抖
        key_flag=0
        if key1.value() == 0:
            return KEY1_PRESS
        elif key2.value() == 0:
            return KEY2_PRESS
    elif key1.value()==1 and key2.value()==1:
        key_flag = 1
            
    return 0 # 没有按键按下   

if __name__ == "__main__":
    while True:
        key = key_scan()
        if key == KEY1_PRESS:
            print("Key1按下")
            led1.value(not led1.value())
        elif key == KEY2_PRESS:
            print("Key2按下")
            led2.value(not led2.value())
        else:
            pass 



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

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

相关文章

数字电路中二进制的数据表达

文章目录 1. 二进制数据表达 1.1 二进制简介 1.2 用二进制表达文字 1.2.1 最开始的表达方式 1.2.2 通讯系统的编码和解码 1.2.3 集成电路 1.2.4 ASCII编码 1.2.5 GBK编码 1.2.6 Unicode编码 2. 用二进制表达图像 2.1 图片像素化 2.2 像素数字化 2.3 二值图像 2.4…

C++ 43 之 自增运算符的重载

#include <iostream> #include <string> using namespace std;class MyInt{friend ostream& operator<< (ostream& cout , MyInt& int1); public:MyInt(){this->m_num 0;}// 前置自增&#xff1a; 成员函数实现运算符的重载 返回的是 引用&a…

ARTS Week 32

Algorithm 本周的算法题为 1512. 好数对的数目 给你一个整数数组 nums 。 如果一组数字 (i,j) 满足 nums[i] nums[j] 且 i < j &#xff0c;就可以认为这是一组 好数对 。 返回好数对的数目。 示例 1&#xff1a;输入&#xff1a;nums [1,2,3,1,1,3]输出&#xff1a;4解释…

使用python绘制三维散点图

使用python绘制三维散点图 三维散点图三维散点图的用途效果代码 三维散点图 三维散点图&#xff08;3D Scatter Plot&#xff09;是一种用于展示三维数据的图表。与二维散点图类似&#xff0c;三维散点图通过点在三维空间中的位置来表示数据点的三个特征。每个点在 x、y 和 z …

如何清除anaconda3缓存?

如果长期使用anaconda不清理缓存&#xff0c;会导致anaconda占用磁盘空间越来越多&#xff0c;甚至系统磁盘撑爆。 清除包缓存&#xff1a; 打开 Anaconda Prompt 或者命令行窗口。运行以下命令清除包缓存&#xff1a;conda clean --all这会清除所有的包缓存&#xff0c;释放磁…

一次基于 rebase 的 PR 提交

目录标题 基于 rebase 的 PR 提交git 命令idea 操作 基于 rebase 的 PR 提交 git 命令 &#xff11;・git fetch &#xff12;・git checkout -b dev2 origin/dev2 新拉分支dev2&#xff13;・date >> 1.txt && git add . && g…

Midjourney提示词终极指南(完整版)

在这篇博客中&#xff0c;我们深入研究了使用提示的艺术&#xff0c;以利用Midjourney的AI功能的力量。我们将探索各种技术&#xff0c;以创建个性化和迷人的图像&#xff0c;将你的创意想法转变为令人惊叹的视觉杰作。 1. 了解提示词 提示是简短的文字描述或关键词&#xff…

人工智能在风险管理中的创新之路及案例分析

随着科技的日新月异&#xff0c;人工智能&#xff08;AI&#xff09;技术已广泛应用于各个领域&#xff0c;特别是在风险管理方面&#xff0c;其展现出的巨大潜力和实际应用价值引人瞩目。本文将结合具体案例&#xff0c;深入探讨AI在风险管理中的创新应用及其带来的行业变革。…

springboot原理篇-配置优先级

springboot原理篇-配置优先级&#xff08;一&#xff09; springboot项目一个支持三种配置文件 application.propertiesapplication.ymlapplication.yaml 其中&#xff0c;优先级的顺序是&#xff1a; application.properties > application.yml > application.yaml 也…

【Unity】如何做一个很平滑的行人动画,且可以根据行人速度动态调整动画速度?

首先我们定一下不同速度对应的行人动作状态&#xff0c;设计为四种状态&#xff1a; 静止站立Stand&#xff1a;0~maxStandSpeed走路Walk&#xff1a;minWalkSpeed~maxWalkSpeed慢跑Jog&#xff1a;minJogSpeed~maxJogSpeed快跑Run&#xff1a;大于MinRunSpeed 我们可以使用A…

Linux笔记--ubuntu文件目录+命令行介绍

文件目录 命令行介绍 当我们在ubuntu中命令行处理位置输入ls后会显示出其所有目录&#xff0c;那么处理这些命令的程序就是shell&#xff0c;它负责接收用户的输入&#xff0c;并根据输入找到其他程序并运行 命令行格式 linux的命令一般由三部分组成&#xff1a;command命令、…

关于yolov5训练的那些事儿

1.YOLOv5 的模型系列包括从最小到最大的多种模型&#xff1a;YOLOv5n&#xff08;Nano&#xff09;&#xff0c;YOLOv5s&#xff08;Small&#xff09;&#xff0c;YOLOv5m&#xff08;Medium&#xff09;&#xff0c;YOLOv5l&#xff08;Large&#xff09;&#xff0c;以及 YO…

【C++】【期末考】【基本概念和语法】概括总结——期末速成

目录 1. C简介 C的历史与发展 C的特点与优势 2. 基本语法 注释 数据类型与变量 常量 运算符 输入与输出 3. 控制结构 条件语句 循环语句 4. 函数 函数定义与声明 参数传递 返回值 函数重载 5. 数组与字符串 一维数组 多维数组 字符串处理 6. 指针 指针的…

主窗体设计

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Python、QT与PyCharm配置完成后&#xff0c;接下来需要对快手爬票的主窗体进行设计&#xff0c;首先需要创建主窗体外层为&#xff08;红色框内&…

聊天页面样式

聊天页面样式 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><link rel"styleshee…

docker下载ridis

1、执行 docker pull redis:4.0.1 命令&#xff0c;下载 redis 镜像 &#xff08;需确保装有并启动bocker&#xff09; 通过docker启动redis 分配端口和端口映射 密码等 rootiZf8z985hmyc9bkejcfmqrZ:~# docker run --rm -d --name redis6379 -p 6379:6379 redis:4.0.1 --req…

atmega8 上传程序

使用icsp 烧写时先关闭串口程序&#xff0c;与串口uart连接相关的电路勿于电脑连接 接触不良 1.使用icsp 上传 1&#xff09;可以直接上传程序 如官方示例blink 或是 serial示例 2&#xff09;可以先烧录bootload 方便下次使用串口上传程序代码 A)使用专门的icsp 上传器上传…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] URL拼接(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 URL拼接(100分) 🌍 评测功能需要订阅专栏后私信联系清隆解…

建造者模式(大话设计模式)C/C++版本

建造者模式 C 参考&#xff1a;https://www.cnblogs.com/Galesaur-wcy/p/15907863.html #include <iostream> #include <vector> #include <algorithm> #include <string> using namespace std;// Product Class&#xff0c;产品类&#xff0c;由多个…

C++获取Windows系统的各个磁盘盘符及容量信息(附源码)

目录 1、调用GetLogicalDrives接口获取逻辑磁盘个数 2、调用GetLogicalDriveStrings接口获取磁盘盘符列表字串 3、从磁盘列表字串中解析出每个磁盘盘符并获取对应的磁盘类型 4、调用GetDiskFreeSpaceEx接口获取磁盘的容量信息 5、完整代码展示 VC++常用功能开发汇总(专栏…