【雕爷学编程】Arduino动手做(171)---micro:bit 开发板

news2024/12/21 1:20:11

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来—小小的进步或是搞不定的问题,希望能够抛砖引玉。

【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百七十一: BBC microbit micro:bit,bit go,bit club python图形编程开发板

在这里插入图片描述
知识点:Micro:bit
(全称BBC micro:bit),是一款由英国广播公司(BBC)推出的,用于青少年编程教育的ARM开发板。采用了基于ARM Cortex-M0的nRF51822处理器,集成蓝牙功能,板载5×5 LED点阵、两个可编程按键、加速度计、三轴地磁和温度计等资源。还引出了20+5pin的扩展接口,可轻松胜任各种编程相关的教学与开发场景,包括编写电子游戏、机器人控制、科学实验和可穿戴装置开发等; 仅有信用卡一半大小(4cm×5cm),可以集成到诸多便携的项目中。

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

在线编程
BBC还提供了在线的编程网站(https://makecode.microbit.org/),可以通过图形化的编程界面,或者通过python或javascript等你自己喜欢的编程语言进行编程。最后,可以通过蓝牙把编写好的程序上传到microbit板子上查看实际效果。下面动图显示的就是如何通过图形化的界面编写一个简单的心跳小程序。最棒的一点是micro bit官网提供了板子的仿真程序,可以实时预览编程效果,所以不必购买真正的小板子也能开始使用micro bit,而且这一切都是免费的。

在这里插入图片描述
软件方面,支持微软开发的PXT图形化编程界面:
支持Windows、macOS、iOS、安卓等多种操作系统
编程环境基于Web服务,无需额外下载编译器
电脑端通过USB烧写、仿真程序
移动端通过蓝牙无线烧写、仿真程序
还支持包括Javasript、Python、Mbed C在内的
多种主流的编程语言:
Microsoft TouchDevelop IDE
Microsoft Blocks
CodeKingdoms Javascript
MicroPython
mbed enabled

硬件方面参数如下:
nRF51822处理器
16 MHz 32位 ARM Cortex-M0内核
蓝牙4.0低功耗/2.4GHz RF无线
16kB RAM
256kB Flash
KL26Z单片机
48 MHz ARM Cortex-M0+内核
128 KB Flash
地磁传感器 - MAG3110,I2C,获取三轴地磁数据
加速度传感器 - MMA8652,I2C,获取三轴加速度数据
3V电源接口
复位按键
Micro USB接口 - 可接入电脑烧写/仿真,串口通信
5x5 LED点阵 - 可显示文字、图形等
按键A/B - 可编程按键
I/O扩展接口 - 含SPI、UART、I2C、AD、PWM等接口

在这里插入图片描述
在这里插入图片描述
I/O
I/O包括环孔连接器:3个GPIO(P0、P1、P2),1个电源(3V),1个接地(GND),可以使用鳄鱼夹或4 mm香蕉插头;边缘连接器的针脚标号为micro:bit设备抽象层(DAL)指定的:P3、P0、P4-P7、P1、P8-P12、P2、P13-P16、3V(3个)、P19-P20、GND(3个),共19个可设置的GPIO,其中设置了:6个模拟输入(P0-P4、P10),可选的1路SPI总线(P13-P15),1路I²C总线(P19-P20);可设置出:3个PWM输出,1对UART串行收发[11]。 P3、P4、P6、 P7、P9、P10结合于LED阵列显示屏, P5、P11结合于按钮A、B。

在这里插入图片描述

micro:bit电原理图

在这里插入图片描述
从属芯片
Micro:bit有一个真正扮演从属角色的芯片,是美国Freescale(已由荷兰NXP购并)的Kinetis KL26微控制器芯片,这颗晶片受nRF51822所控管,而它提供整个Micro:bit系统板两个主要作用,一是运作电压调节,另一是USB介面传输的仲介。Micro:bit是透过Micro USB连接器取得运作电力,但电压为5V,主控芯片nRF51822最高只能承受3.6V,无福消受5V,所以是由KL26充当电压调节器,透过KL26转成3.3V,再供系统板上各部位取用电力,最大可供应120mA电流,这一供电线路上也有装设瞬态电压抑制器(Transient Voltage Suppressor, TVS)以好避免静电放电(ElectroStatic Discharge, ESD)可能造成的破坏与影响。

严格来说,Micro:bit有三处取得电力的来源,Micro USB是一处,也可透过电池连接器(battery connector)或端缘接脚连接器(edge connector,Micro:bit上的特有词,因为Micro:bit系统板在电路板的边缘设置一排接脚,这个边缘就称之为edge)来取得,且透过二极体对供电来源进行切换,避免某一处供电来源对其他供电来源进行供电,避免错误。另一功用是传输仲介,Micro:bit接上电脑后,在电脑上开发好的程式要传到Micro:bit上,是先透过Micro USB连接器连到KL26,而后KL26再将程式传给nRF51822,反之亦然。在Micro:bit的官方网页上,主控芯片也称为应用程式处理器,因为使用者/开发者开发出的应用程式是由主控芯片所执行(多数系统均如此设计),而从属的KL26也因其作用而被称为介面处理器,此处所言的介面正是指USB/Micro USB介面。有趣的是,通常系统板上是以运算力最强的芯片充当主控芯片,因为该芯片最有效能余裕掌控与协调系统全局,但在Micro:bit上却不是,KL26无论在核心、核心频率、记忆体资源等各方面都高过nRF51822,但却只用来供电与USB介面仲介,KL26的GPIO与相关周边电路均没派上用场。另外,KL26支援USB 2.0与OTG(On-The-Go),而且支援USB Mass Storage Device的类别(class),所以接上电脑后可以在「我的电脑」里看到一个新加入的USB随身碟,其实就是指Micro:bit系统板。

在这里插入图片描述
主控芯片
Micro:bit的主控芯片是挪威Nordic Semiconductor公司的nRF51822,其实是颗低功耗蓝牙(Bluetooth Low Energy, BLE)的无线通讯收发器芯片,在一般的系统设计上这颗芯片多是扮演从属( slave)的角色,将无线收发讯息传递给系统上的主控芯片(host),但在Micro:bit上它就是个主控芯片,有点「蜀中无大将,廖化当先锋」的感觉。nRF51822芯片只有16KB的RAM、128KB的ROM,官方的资料显示,此芯片的主要想定应用是蓝牙滑鼠/键盘/触控板、游戏或家电遥控器、智慧手环、Beacon等。nRF51822在Micro:bit上至少要执行三件事,一是蓝牙的通讯协定堆叠,二是作业系统程式(根基于ARM主导的mbed OS),三是使用者(user/developer)开发并载入的应用程式。nRF51822芯片本身也有GPIO、PWM、I2C、ADC等功能,其中Micro:bit上的加速度感测器、磁阻感测器即是透过I2C介面与nRF51822芯片连接。

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

Arudino IDE可以应对很多高级复杂的项目,这是其他所欠缺的,比如MicroPython会遇到内存不足的问题,而MakeCode封装了组件从而是开发变得简单,但也因此失去了自由书写代码的能力。这里先尝试添加NRF5x 开发板支持,因为micro:bit所使用的nRF51控制器并没有被Arduino IDE原生支持,需要手动添加。

在Arduino中,转到“首选项”并添加 https://sandeepmistry.github.io/ … 5_boards_index.json 到“其他Board Manager URL”文本框中。

如果这不是您的第一个,请确保使用逗号分隔网址。

在这里插入图片描述

没想到体积还挺大的,下载了快二个小时…

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

从菜单栏打开工具>开发板>开发板选择————选择BBC micro:bit板子。

在这里插入图片描述

设置SoftDevice为S110。

在这里插入图片描述
端口设置为BBC micro:bit

在这里插入图片描述
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百七十一: BBC microbit micro:bit,bit go,bit club python图形编程开发板

项目:使用Arduino IDE尝试给 Micro:bit 编程

Arduino参考开源代码

/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百七十一: BBC microbit micro:bit,bit go,bit club python图形编程开发板

项目:使用Arduino IDE尝试给 Micro:bit 编程
*/

const int COL1 = 3;     
const int LED = 26;   

void setup() {  
  Serial.begin(9600);
  
  Serial.println("microbit is ready!");

  pinMode(COL1, OUTPUT);
  digitalWrite(COL1, LOW);
  pinMode(LED, OUTPUT);   
}

void loop(){
  Serial.println("world blink!");
  
  digitalWrite(LED, HIGH);
  delay(500);
  digitalWrite(LED, LOW);
  delay(500);
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百七十一: BBC microbit micro:bit,bit go,bit club python图形编程开发板

项目:点亮Micro:bit当中那颗LED

Arduino参考开源代码

/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
 实验一百七十一: BBC microbit micro:bit,bit go,bit club python图形编程开发板
项目:点亮Micro:bit当中那颗LED
*/

#define LED_ROW2 27
#define LED_COL3 10

void setup() {

  // put your setup code here, to run once:

  pinMode(LED_ROW2, OUTPUT);

  pinMode(LED_COL3, OUTPUT);

}


void loop() {

  // put your main code here, to run repeatedly:

  digitalWrite(LED_ROW2, 1);

  digitalWrite(LED_COL3, 0);

}

Arduino实验场景图

在这里插入图片描述

Micro:bit通过手机安卓线连接电脑后,显示为U盘。

在这里插入图片描述

hex是Micro:bit的程序格式,出厂演示代码(OutOfBoxExperience-v2.hex)用C ++编写的,因此不会在MakeCode或python编辑器中加载,直接在电脑上拖放操作就行。

在这里插入图片描述

在这里插入图片描述
Micro:bit - 初始/预装程序,出厂演示例程
你也可以在(https://support.microbit.org/sup … rience-demo-program)找到它。
#原厂预装程序都做了什么,怎么玩?

请看 Intro to the BBC micro:bit(https://make.techwillsaveus.com/ … -for-the-first-time) 此文介紹:

  1. LED闪烁
  2. 滚动显示 HELLO 字符串
  3. 指示玩家按 A 键
  4. 指示玩家按 B 键
  5. 滚动显示 SHAKE! 字符串,摇晃主板把所有的LED灯都摇亮
  6. 滚动显示 CHASE THE DOT 字符串,用常亮的光点去吃掉闪烁的光点
  7. 滚动显示 GREAT! NOW GET CODING! 字符串.
  8. 各种图案不断的变换出现

就这样,沒了吗? A+B两键同时按下去看看,哇!有彩蛋!是个类似贪吃蛇的小游戏。

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

常用的 micro:bit 程序编辑器按照底层核心技术主要分为四类:

Scratch 编辑器(图形指令)
微软 makecode 编辑器(图形指令)
Python 代码编辑器(代码指令)
Ming+综合编辑器(图形指令+Arduno+microPython)

1、Scratch3.0 编辑器(离线版)

在WIN10的应用商店下载免费的Scratch link,并安装

在这里插入图片描述
同时用拖拉方式,在micro:bit板子上拷入驱动“scratch-microbit-1.1.0.hex”

(这里下载 https://downloads.scratch.mit.ed … robit-1.1.0.hex.zip)

通过蓝牙同步,不用下载,程序可以保存在电脑本地。

在这里插入图片描述
2、微软 makecode 编辑器(图形指令)
在线版本,链接 https://makecode.microbit.org/v1#editor

编好程序,下载到本地,在电脑上拖放操作即可。

在这里插入图片描述
在这里插入图片描述
3、Python在线编辑器

编程语言:支持流行的 Python 编程语言;
功能:支持更多的 micro:bit 操控功能,例如,让 micro:bit 上的 LED 灯按照不同的亮度点亮,这个功能目前只能在代码编程中才能实现。

链接 https://python.microbit.org/v/1.1

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

在这里插入图片描述
偶然发现WIN10应用商店里面有《MakeCode》的离线版本
《MakeCode for micro:bit》,安装了,挺方便的

在这里插入图片描述
使用百度翻译的相关介绍:

micro:bit的makecode
micro:bit是一种有趣的方式,任何人都可以通过物理计算获得创造力。此应用程序将允许您使用易于学习、基于块的Microsoft MakeCode语言和JavaScript直接编程micro:bit。即使没有micro:bit设备,您也可以使用内置模拟器尝试虚拟micro:bit。

除了对micro:bit进行编码之外,这个应用程序在makecode.microbit.org的编辑器上还有一些额外的功能,这些功能可以在micro:bits上使用最新的接口固件:
-通过USB自动编程micro:bit,无需将文件拖放到micro:bit驱动器上。
-直接从您的micro:bit读取串行数据,用于数据记录和其他有趣的实验

自2016年12月起出售的位将自动与上述功能。对于较老的micro:bits(例如那些属于英国免费辍学的部分),请参见https://makecode.microbit.org/device/windows-app/troubleshoot
有关该设备的更多详细信息,请参见http://microbit.org。

此版本的新增功能
makecode的实时版本已经更新,因此w10应用程序现在使用最新版本的makecode。更改的完整列表可以在这里找到:https://support.microbit.org/sup … locks-editor-update。如果你想使用旧版本的makecode,你仍然可以在https://makecode.microbit.org/v0上在线使用。

目前,即时闪烁和串行数据读出将在接口固件v0241或更新版本的micro:bits上工作,其中包括自2016年12月以来销售的所有micro:bits。如果你有一个micro:bit作为英国bbc推出的一部分免费提供,你可以升级到最新的固件。请参阅此处的疑难解答页面:https://makecode.microbit.org/device/windows-app/troubleshoot
请使用下面的支持链接报告任何问题,并说明您正在使用MakeCode Windows 10应用程序。

功能
用makecode编码micro:bit
直接控制 micro:bit
创造惊人的项目和游戏

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

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

相关文章

“VCMessage”任务意外失败

从网上查到很多都是说设置这个位置,但是我的已经是对的,还是出现 “VCMessage”任务意外失败这个错误。 又查到一个人说解决方法是更正OutputPath或从父级继承:右键单击项目,然后转到"属性">"链接器">"常规&q…

开源项目注意事项

fork项目后,记得另外开启一个分支然后在新分支上进行开发,push到仓库后从分支往原项目提交。 否则会出现Partially verified(导致提交pr后auto-merge失败) 注意git提交操作 https://blog.csdn.net/sonichenn/article/details/13…

matplotlib从起点出发(3)_Tutorial_3_Image

1 图像教程 matplotlib可以简单地处理并显示图像,当然,它不是一个专业的图像处理库,所以也不要拿它来与opencv进行比较。 2 启动命令 首先,让我们启动IPython。它是对标准python提示符的最出色的增强,它与matplotli…

OpenHarmony与HarmonyOS联系与区别

目录 1. 背景 2.OpenHarmony 3.HarmonyOS 4.鸿蒙生态 5.OpenHarmony与HarmonyOS的技术上实现区别 1.语言支持 2.SDK 的不同 3.运行调测方式不同 4.对APK的兼容性不同 5.包含关系 6.调试命令 6.何时选择OpenHarmony或是HarmonyOS? 1. 背景 开篇就说“关于…

企业数字化转型中容易出现哪些误区?

对信息化和数字化的投入产出认识有误 在和一些从事企业信息化数字化建设的朋友的沟通中,发现很多企业老板对信息化和数字化投入产出认知上确实有偏差,他们总觉得投入一部分,就得有相应的产出,在他们心里信息化的投入产出如下图曲线…

强化学习SAC算法对数概率公式推导

强化学习 SAC算法 对数概率推导 先上原论文: 首先对公式 ( 20 ) (20) (20) 做推导。 公式 ( 20 ) (20) (20) 的数据流应该是这样的: s → π ( u ∣ s ) → u → a tanh ⁡ ( u ) → a \mathbf{s}\rightarrow \pi(\mathbf{u}|\mathbf{s}) \rightar…

Vue3标签(Tag)

APIs 参数说明类型默认值必传closable标签是否可以关闭booleanfalsefalsecolor标签颜色,预置多种常用颜色:success, processing, error, warn, pink, red, orange, green, cyan, blue, purplestring‘’falseicon设置图标string | slot‘’false Event…

【深度学习】【Image Inpainting】Generative Image Inpainting with Contextual Attention

Generative Image Inpainting with Contextual Attention DeepFillv1 (CVPR’2018) 论文:https://arxiv.org/abs/1801.07892 论文代码:https://github.com/JiahuiYu/generative_inpainting 论文摘录 文章目录 效果一览摘要介绍论文贡献相关工作Image…

MySQL数据备份与恢复练习

目录 1.创建student和score表 2.为student表和score表增加记录 3.备份数据库school到/backup目录 4.备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库 5.直接将MySQL数据库压缩备份 6.备份MySQL数据库某个(些)表。此例备…

『Python学习笔记』Python代码打包成pip包(可pip install)|查看安装torch、cuda和cudnn版本号

Python代码打包成pip包(可pip install)|查看安装torch、cuda和cudnn版本号 文章目录 一. pip包的好处二. 简单小例子2.1. 创建Python包2.2. 构建Python包2.3. 上传到PyPI2.4. pip安装测试 三. CLIP多模态模型相关例子3.1. Chinese-CLIP例子3.2. CLIP-ONNX例子3.3. 问题1和问题…

vue使用driver.js完成页面引导的功能

需求:用户首次进入的时候肯定不知道一些功能是干什么在哪里,之后给用户一个页面引导,教他怎么做。 点击插件driver.js官方文档 效果: 1.下载driverjs 我默认下载的是最新版 "driver.js": "^1.0.5",&#x…

MySQL 高级SQL语句(一)

目录 一、高级SQL语句(进阶查询) 1.1 select 1.2 distinct 1.3 where 1.4 and 和 or 1.5 in 1.6 between 1.7 通配符 1.8 like 1.9 order by 一、高级SQL语句(进阶查询) 先准备2个表 一个location表: use m…

私人记账本程序cashbook

什么是 cashbook ? cashbook 是一个私人或家庭记账程序,支持私有化部署,商用或其他使用不受约束。建议使用者每年创建一个账本,图表功能可以起到分析全年数据的效果。 官方提供了演示站点,但不建议记录真实数据 演示账…

ardupilot 遥控的输入控制模式

目录 本节主要记录自己整理ardupilot的遥控器的输入控制模式:正常模式、简单模式、超简单模式的理解。 1.正常模式(有头模式) 在不用简单和超简单的模式的情况下,无人机操作员操作的控制输入是对应着不断旋转着的飞行器进行操作的。如上方图所示举例,当无人机操作员进行…

flask中的werkzeug介绍

flask中的werkzeug Werkzeug是一个Python库,用于开发Web应用程序。它是一个WSGI(Web Server Gateway Interface)工具包,提供了一系列实用功能来帮助开发者处理HTTP请求、响应、URLs等等。Werkzeug的设计非常灵活,可以…

基础入门-SpringBoot-自动配置特性

一、自动配好Tomcat 引入Tomcat依赖。配置Tomcat <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><version>2.3.4.RELEASE</version><scope>compile</sco…

同城跑腿小程序怎么做

同城跑腿小程序是一款基于地理位置的服务平台&#xff0c;为用户提供了便捷的日常生活服务。以下是该小程序的主要功能介绍&#xff1a; 1. 快速下单&#xff1a;用户可以通过小程序平台快速填写订单信息&#xff0c;包括取送地址、物品类型和重量等信息&#xff0c;然后选择合…

LabVIEW开发环境试验箱控制器

LabVIEW开发环境试验箱控制器 环境或气候试验箱是一种外壳&#xff0c;用于模拟各种材料&#xff08;包括工业产品、生物物质、复合材料、电子设备和航空航天部件&#xff09;的特定环境条件&#xff0c;并评估调节对这些材料的影响。 环境试验箱&#xff08;ETC&#xff09;…

存储过程——游标

1.游标 什么是游标&#xff0c;以及游标使用的相关语法。 #声明游标&#xff0c;存储查询结果集 #准备&#xff1a;创建表结构 #开启游标 #获取游标中的记录 #插入数据到新表中 #关闭游标 create procedure p11(in uage int) begindeclare uname varchar(100);declare upro …

Istio 故障注入与重试的实验

故障注入 Istio流量治理有故障注入的功能&#xff0c;在接收到用户请求程序的流量时&#xff0c;注入故障现象&#xff0c;例如注入HTTP请求错误&#xff0c;当有流量进入Sidecar时&#xff0c;直接返回一个500的错误请求代码。 通过故障注入可以用来测试整个应用程序的故障恢…