【雕爷学编程】MicroPython动手做(24)——掌控板之拓展掌控宝2

news2024/9/22 23:25:44

掌控拓展板(parrot)是掌控板衍生的一款体积小巧、易于携带的拓展板。支持电机驱动、语音播放、语音合成等功能的IO引脚扩展板,可扩展12路IO接口和2路I2C接口。

在这里插入图片描述

技术参数

该板具有以下特性:

两路DC马达驱动,单路电流150mA

支持音频功放和喇叭输出(掌控板P8,P9引脚)

支持文字转语音(Text To Speech)的语音合成

扩展12路IO接口、2路I2C接口

体积小巧、便携,易于携带

支持锂电池供电和外接USB电源供电两种方式

内置330mAH锂电池,支持锂电池循环充电

工作电压:3.3V

最大输出电流: 1A@3.3V

充电电流: 最大170mA

在这里插入图片描述
在这里插入图片描述

快递刚到,为做系列实验,特入手了二套拓展板掌控宝(带350ma电池)

在这里插入图片描述
在这里插入图片描述

组装好是这样的

在这里插入图片描述
4、掌控拓展板-按键控制TT电机

作为动作输出,接受高电平时可以通过连续旋转来给应用提供动力,可正反向,速度可调。这里使用单轴TT直流减速电机做实验。

技术参数
工作电压:VCC 3.3-5V
XH2.54间距端子线
单轴TT直流减速电机
模块30x70mm

在这里插入图片描述
在这里插入图片描述

#MicroPython动手做(24)——掌控板之拓展掌控宝
#按键控制TT电机

#MicroPython动手做(24)——掌控板之拓展掌控宝
#按键控制TT电机

from mpython import *

import time

import parrot

def on_button_a_down(_):
    global aaa
    time.sleep_ms(10)
    if button_a.value() == 1: return
    parrot.set_speed(parrot.MOTOR_1, 80)
    time.sleep(1)
    parrot.set_speed(parrot.MOTOR_1, 0)
    parrot.set_speed(parrot.MOTOR_2, 0)
    time.sleep(1)

button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)


mPython 图形编程

在这里插入图片描述
在这里插入图片描述

5、按键控制小车前进、后退与旋转

#MicroPython动手做(24)——掌控板之拓展掌控宝
#按键控制小车前进、后退与旋转

#MicroPython动手做(24)——掌控板之拓展掌控宝
#按键控制小车前进、后退与旋转

import parrot

from mpython import *

def forward():
    parrot.set_speed(parrot.MOTOR_1, 80)
    parrot.set_speed(parrot.MOTOR_2, 80)
    oled.fill(0)
    oled.blit(image_picture.load('face/Information/Forward.pbm', 0), 32, 0)
    oled.show()

def retreat():
    parrot.set_speed(parrot.MOTOR_1, -80)
    parrot.set_speed(parrot.MOTOR_2, -80)
    oled.fill(0)
    oled.blit(image_picture.load('face/Information/Backward.pbm', 0), 32, 0)
    oled.show()

def right():
    parrot.set_speed(parrot.MOTOR_1, 80)
    parrot.set_speed(parrot.MOTOR_2, -80)
    oled.fill(0)
    oled.blit(image_picture.load('face/Information/Right.pbm', 0), 32, 0)
    oled.show()

import time

def on_button_a_down(_):
    global aaa
    time.sleep_ms(10)
    if button_a.value() == 1: return
    rgb.fill((int(0), int(102), int(0)))
    rgb.write()
    time.sleep_ms(1)
    forward()
    time.sleep(2)
    Left()
    time.sleep(1)
    retreat()
    time.sleep(2)
    right()
    time.sleep(1)
    oled.fill(0)
    parrot.set_speed(parrot.MOTOR_1, 0)
    parrot.set_speed(parrot.MOTOR_2, 0)
    rgb.fill( (0, 0, 0) )
    rgb.write()
    time.sleep_ms(1)
    oled.show()

def Left():
    parrot.set_speed(parrot.MOTOR_1, -80)
    parrot.set_speed(parrot.MOTOR_2, 80)
    oled.fill(0)
    oled.blit(image_picture.load('face/Information/Left.pbm', 0), 32, 0)
    oled.show()

image_picture = Image()

button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)

mPython 图形编程
在这里插入图片描述
在这里插入图片描述

6、播放本地声音文件

掌控板支持播放的文件类型比较多,如mp3、WAV等。由于掌控板存放文件的空间不大,一般采用mp3格式的本地文件会更加合适。为了有效利用存储空间,掌控板接受上传的文件也不能太大,目前版本限制100KB,也不适宜存放整首音乐,用于存放音效文件还是比较适宜的。

(1)将mp3文件上传至掌控板
点击mPythonX工具栏的“文件管理”,在文件管理对话框点击“上传到板”。在打开文件对话框选择文件类型为“所有文件”,选择所需的mp3文件,点击“打开”。最后按提示选择确定上传即可完成上传。(刷入文件的时间较长,几十KB的文件可能也需1-2分钟,请耐心等待)

在这里插入图片描述

刷入完成后,在“板载文件管理”窗口可见相应文件:

在这里插入图片描述

(2)播放本地文件:播放本地mp3文件与播放网络mp3的方法是一样的,只需把网络mp3地址改为本地文件名即可。

#MicroPython动手做(24)——掌控板之拓展掌控宝
#播放本地声音文件

#MicroPython动手做(24)——掌控板之拓展掌控宝
#播放本地声音文件

from mpython import *
import time
import audio

def on_button_a_down(_):
    time.sleep_ms(10)
    if button_a.value() == 1: return
    oled.fill(0)
    oled.DispChar("播放本地音乐......", 16, 16, 1)
    oled.show()
    audio.player_init()
    audio.set_volume(66)
    audio.play("music_1.mp3")

button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)

mPython X 图形编程
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

不可错过的家装服务预约小程序商城开发指南

在当今社会,家装行业发展迅速,越来越多的人开始寻求专业的家装预约和咨询服务。对于不懂技术的新手来说,创建一个自己的家装预约咨询平台可能听起来很困难,但实际上通过一些第三方制作平台和工具,这个过程可以变得简单…

网络安全学习笔记——burp和SqlMap的tips

一、Burp 爆破 1、Burp爆账号密码 burp爆破的前提条件——该网站账号密码没有进行加密而是明文,且验证码可以重复使用,如下图数据包中直接显示账号与密码且验证码不需要重复提交(此处需要自己使用burp进行测试) 1、进入burp&am…

生态伙伴 | 华秋硬创联合长虹创投,共同打造更优生态系统

01大赛介绍 中国硬件创新创客大赛始于2015年,由深圳华秋电子有限公司主办,至今已经成功举办八届,赛事范围覆盖华南、华东、华北三大地区,超10个省市区域。 大赛影响了超过45万工程师群体,吸引了35000多名硬创先锋报名参…

Android 之 TelephonyManager (电话管理器)

本节引言: 本章节是Android基础入门教程的最后一章,主要讲解是一些零零散散的一些知识点,以及一些遗漏 知识点的补充,这些零散的知识点包括,各种系统服务的使用,比如本节的电话管理器,短信管理器…

ALLEGRO之Place

本文主要讲述了ALLEGRO的Place菜单。 (1)Manually:手动放置,常用元器件放置方法; (2)Quickplace:快速放置; (3)Autoplace:自动放置&a…

ARM裸机-9

1、ARM汇编指令集 1.1、两个概念:指令与伪指令 (汇编) 指令是CPU机器指令的助记符,经过编译后会得到一串10组成的机器码,可以由CPU读取执行。 (汇编)伪指令本质上不是指令 (只是和指令一起写在代码中),它是编译器环境提供的&…

最新版CleanMyMac X4.14.1苹果电脑系统数据清理工具

最新版CleanMyMac X 让您的Mac焕然一新,时刻保持安全CleanMyMac X是一款专业的Mac清理软件,可智能清理mac磁盘垃圾和多余语言安装包,快速释放电脑内存,轻松管理和升级Mac上的应用。同时CleanMyMac X可以强力卸载恶意软件&#xff…

【Git系列】了解什么是版本控制

🐳了解什么是版本控制 🧊1. 什么是版本控制🧊2. 为什么要有版本控制🧊3. 常见的版本控制工具🧊4. 版本控制分类🪟4.1 本地版本控制🪟4.2 集中版本控制🪟4.3 分布式版本控制 学习git之…

socket 基础

Socket是什么呢? ① Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。 ② Socket是连接运行在网络上的两个程序间的双向通信的端点。 ③ 网络通讯其实指…

1.1.2 SpringCloud 版本问题

目录 版本标识 版本类型 查看对应版本 版本兼容的权威——官网: 具体的版本匹配支持信息可以查看 总结 在将Spring Cloud集成到Spring Boot项目中时,确保选择正确的Spring Cloud版本和兼容性是非常重要的。由于Spring Cloud存在多个版本,因此…

Vulnhub: shenron: 3靶机

kali:192.168.111.111 靶机:192.168.111.171 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.171 修改hosts后访问目标80端口,发现是wordpress wpscan收集目标用户,爆破出密码:ilov…

台灯头灯手电筒UL153亚马逊美国站测试要求

在将台灯、头灯或手电筒上架到亚马逊美国站之前,UL153测试是必不可少的一项认证。UL153是美国安全实验室(Underwriters Laboratories)颁布的一项标准,旨在确保产品的安全性和可靠性。那么,我们应该如何办理UL153测试报…

亚马逊调整数据存档政策:超两年的订单将从9月起存档!

2023年9月起,亚马逊美国站和欧洲站宣布对订单数据存档政策进行调整。该调整意味着自2023年9月起,所有历时两年以上的订单将按月存档。此举是为了确保客户的个人隐私和数据安全,存档订单将不再包含买家的个人身份信息,如姓名、电话…

git操作:修改本地的地址

Windows下git如何修改本地默认下载仓库地址 - 简书 (jianshu.com) 详细解释: 打开终端拉取git时,会默认在git安装的地方,也就是终端前面的地址。 需要将代码 拉取到D盘的话,现在D盘创建好需要安放代码的文件夹,然后…

Linux系统管理:虚拟机Rocky Linux安装

目录 一、理论 1.Rocky Linux 2.NetworkManager配置 3.ipaddress 配置文件 4.nmtui 配置 ipaddress 二、实验 1.虚拟机Rocky Linux安装准备阶段 2.安装Rocky Linux 3.进入系统 三、问题 1.网络配置文件权限不够 一、理论 1.Rocky Linux (1&#xff0…

《2023数字化采购发展报告》发布,北京筑龙采购供应链数字化实践成功入选

近日,由亿邦智库联合中国物流采购与联合会公共采购分会共同编制的《2023数字化采购发展报告》(下文称《报告》)在第四届国有企业数智化采购与智慧供应链高峰论坛上重磅发布。作为一家服务30行业超大型及大中型国有企业的采购供应链数字化产品…

基于linux下的高并发服务器开发(第四章)- 多进程实现并发服务器(回射服务器)

1. socket // 套接字通信分两部分: - 服务器端:被动接受连接,一般不会主动发起连接 - 客户端:主动向服务器发起连接 2.字节序转换函数 当格式化的数据在两台使用不同字节序的主机之间直接传递时,接收端必然错误…

螺旋矩阵 II——力扣59

文章目录 题目描述法一 模拟 题目描述 法一 模拟 初始化一个二维向量&#xff0c;名为matrix&#xff0c;它有n行和n列。向量的每个元素都是一个整数&#xff0c;初始化为0。初始化二维向量的语法如下&#xff1a;vector<vector<int>> matrix(n, vector<int>…

unity 添加动画步骤

动画中不能有这俩组件会冲突 1.创建动画控制器 2.在需要做动画的节点添加动画组件 Animatr 3.把动画器拉到Animatr组件控制器中去 4.创建动画&#xff0c;把创建的动画推拽到动画器中。 5.点击绑定Animatr的节点把动画拖拽到动画播放器中。 6.点击动画可以调节速度 7. 配置参数…

Linux操作系统学习,Linux基础命令大全

目录 第一章、Linux简介和安装1.1&#xff09;Linux简介和分类1.2&#xff09;安装VMware虚拟机&#xff0c;在虚拟机中安装CentOS 7 第二章、虚拟机中Linux的IP地址配置详解2.1&#xff09;什么是IP地址&#xff0c;如何查看2.2&#xff09;虚拟机NAT模式中Linux的IP地址设置有…