亲子编程玩Micro:bit-动力小车“麦昆”
少儿编程之风已经吹进各大城市,编程猫、乐博机器人、童程童美等专业培训机构逐渐进入大家的视野,年龄段已经从K12逐渐降低到幼儿园中班。其实,少儿编程的门槛并不高,它不会让孩子一上手就去接触代码,而是会通过图形、模块、游戏等形式,从声音、光、外形等多种途径,帮助孩子们走进计算机世界。本文以一个父亲的角度,讲述如何与孩子一起,用图形化的方式,构建一个好玩的动力小车。
1. 基础
首先讲讲基础,从孩子和父亲两个方面来看。
孩子目前是幼儿园大班,在幼儿园中班的时候开始玩乐高,特别喜欢车,有一定的动手组装能力(乐高的大颗粒和小颗粒都玩过,就是小颗粒有些费劲),可以在大人的指导下,拼搭模型。
父亲是理工男,有编程能力和基础,所以可以快速入门后面的图形化编程。不过我相信,图形化编程这么简单,大部分没有基础的父母同样可以轻松入门。
2. 套件选择
套件和品牌有很多,淘宝上都可以买到,如DFRobot、makeblock和seeed等国内厂商都会生产自己的产品,或者代理国外的产品。Micro:bit 是一款由英国BBC设计的ARM架构的单片机,板载蓝牙、加速度计、电子罗盘、三个按钮、5 x 5 LED点阵,主要用于青少年的编程教育。用户可以利用它实现任何酷炫的小创意。淘宝上也有很多为Micro:bit设计的外围器件,包括各类传感器、显示屏、按钮、车架等等。这里使用的是国内厂商DFRobot生产为Micro:bit设计的小车车架“麦昆”。特性如下:
- 支持Microsoft makecode,支持Scratch及python
- 体积迷你,移动灵活
- 全金属微型减速电机,质量优良,驱动力强
- 巡线、氛围灯、LED车灯、超声波接口、蜂鸣器、I2C接口、金手指接口、机械扩展螺孔等等,功能齐全,扩展性强
- 独家定制的赛钢材料支撑轮,灵活可靠,越障能力强
- 安装简单,轻松上手
3. 构建和组装
拿到套件以后,拆开来,得到各个组件,包括车体(出厂已安装好电机和支撑轮)1个、轮子2个、3节7号电池盒1个、双面胶1片。如下图所示。
另外,如果要远程遥控,还需要一个手柄,手柄和两块Micro:bit板子如下图(小车车架用一块Micro:bit,遥控手柄也用一块Micro:bit)。
小车车架安装的步骤不多,首先是安装轮子,把轮胎套在轮毂上,再把轮毂插入到电机。小朋友自己完全可以搞定。
轮子装好以后,就安装超声波传感器,用于检测障碍物距离,自动避障。
接着,插入Micro:bit板子到插槽,注意方向。
把电池盒粘到小车上,并把电池的接线接到车架的电池接口。完成小车的安装。
安装过程中要注意两点,第一:轮胎和轮毂有方向,不要装反。第二,电池接线要接到小车车架的电池接口上,不要连到Micro:bit板子的电池接口。小车的各个接口说明可以参考下图。
遥控手柄的安装比较简单,只需要将Micro:bit插入扩展插槽就可以,需要注意的是,方向不要插反。然后为其粘好电池盒,把接线接到电池接口。如下图所示。
4. 图形化环境的安装
对于小车的编程,可以使用在线的Microsoft makecode:https://www.microsoft.com/zh-cn/makecode?rtc=1,直接在线编写下载。当然,笔者还是推荐下载应用安装到本地的方式,这样不受网络的拘束。
4.1 Mind+编程
DFRobot自行发布了一款同时支持图形化和代码编辑功能的环境Mind+,具体步骤如下:
1、下载及安装软件。下载地址:http://www.mindplus.cc 详细教程:Mind+基础wiki教程-软件下载安装
2、切换到“上传模式”。 详细教程:Mind+基础wiki教程-上传模式编程流程
3、“扩展”中选择“套件”中的“麦昆”。 详细教程:Mind+基础wiki教程-加载扩展库流程
4、进行编程
5、编程完毕以后,点击菜单“连接设备”,选择一个“COM-microbit”,然后点击“上传到设备”
在DFRobot的Wiki网页上,包含了多个图形化案例,包括电机控制、读取超声波距离、点亮LED车灯、点亮氛围灯、读取红外线键值、红外遥控、超声波避障、光控精灵、无线发送和无线接收(遥控手柄)等。具体可以参考:Wiki。
4.2 Microsoft makecode编程
微软专门为Microbit开发了一款图形化的环境makecode,用户可以从应用商店上直接免费下载。
下载完成,运行应用,导入小车麦昆的库,地址是:https://github.com/DFRobot/pxt-maqueen,步骤如下。
1. 在Makecode for microbit的主页面点击新建项目,然后点击设置-扩展,如下图所示。
2. 输入麦昆的库,点击搜索,就可以搜到。如下图所示。
3. 点击该扩展,环境会自动下载并且安装,安装之后,可以在左边的控件栏中找到麦昆,如下图所示。
环境搭建好之后,就可以开始图形化编程了。在DFRobot的Wiki网页上,包含了多个图形化案例,包括电机控制、读取超声波距离、LED车灯闪烁、点亮氛围灯、读取红外线键值、红外遥控、超声波避障、光控精灵、循迹驾驶、无线发送和无线接收(遥控手柄)等。具体可以参考:Wiki。
5. 孩子如何参与
有关这个问题,我们可以从下面几个方面来引导。
1. 从小车的运动控制方面,可以与孩子探讨,该如何控制小车的两个轮子,以达到小车前进、后退、左转、右转的目的?如,左右轮同时正转,小车就前进;同时反转,小车就后退。
2. 掌握了小车的运动控制以后,就可以与让孩子自己设计小车的运动路线了,比如,走个8字。
3. 小车配有两个LED车灯,可以结合实际情况,如我们开车时,要左转的时候,需要打开左侧的转向灯;右转时,打开右侧的转向灯。与孩子探讨如何加入LED转向灯的功能。
4. 小车的遥控手柄案例中,只有遥控其前进、后退、左转和右转功能。尝试与小孩一起探讨如何加入A、B键的控制功能,如播放声音、加速/减速等。
5. 用触摸屏的电脑将有助于孩子的参与度,比如,控件的拖动、参数的设置将变得非常方便。
6. 如果要用手机或者Pad编程的话,可以使用蓝牙功能下载(苹果手机和Andorid手机均有对应的App可以下载,体验和PC版本类似,如下图所示)。虽然配对的过程稍微有些繁琐,但是这将大大降低孩子参与的门槛。
当孩子们看到小车按照自己的想法运动起来的时候,会开心的欢呼和跳跃。这时,我们仿佛能够看到童年的自己。
亲子编程玩Micro:bit-动力小车“麦昆”的更多相关文章
- Structs框架
一.准备工作及实例 1.解压struts-2.1.6-all.zip(structs网上下载) apps目录:struts2自带的例子程序 docs目录:官方文档. lib 目录:存放所有jar文件. ...
- css中怎么设置透明度的问题
小伙伴们是不是在找怎么样去设置页面的透明度的方法呢...别找了,我这儿就有,而且肯定够用了. 我自己会用到的就有两种,可以和大家分享一下. 1.用opcity的方法去设置透明度.代码如下: .div ...
- struts2.1.6教程六、使用标签
1.基础表单标签 准备工作:建立struts2tag项目,搭建好struts2的开发环境.在html我们常用的基础表单标签主要有文本域.密码域.提交.重置四种.它们在strust2中可以通过标签来生成 ...
- 《HelloGitHub》第 19 期
前言 最近很少写博客了,工作上的事情太多(在做一些数据分析方面的工作,之前是 Web 开发),时间捉襟见肘.更多的时间都花在工作上,没有精力.时间积累整理知识.说来还是能力太差.效率有问题. 后面会好 ...
- 基于Python的数据分析(1):配置安装环境
数据分析是一个历史久远的东西,但是直到近代微型计算机的普及,数据分析的价值才得到大家的重视.到了今天,数据分析已经成为企业生产运维的一个核心组成部分. 据我自己做数据分析的经验来看,目前数据分析按照使 ...
- 艾奇学院:66个信息流广告和SEM学习网址资源大放送!
01.CNZZ-UDplus 网址:udplus.umeng.com 说明:基于用户行为的精细化分析.运营平台,去研究研究,很多料! 02.黑眼圈管理后台 网址:www.not3.com 说明:二类电 ...
- MicroPython的开发板
比如: pyboard micro:bit ESP8266/ESP32 stm32等等 什么是pyboard? pyboard是官方的MicroPython微控制器板,完全支持软件功能.硬件有: ST ...
- cocos2d-x解决中文乱码问题的几种办法
昨天改写cocos2d-x的例程,想在其基础上加上一个计分系统.没有分数实在让人没有玩下去的动力! 我在主场景上加上了一个CCLabelTTF,用于显示分数. 但是意外的发现,当内容含有中文时,CCL ...
- proxool 连接池
今天配置proxool 连接池,发现可配置属性非常多,以前也只是用,没总结过,今天查了下网上的资料,总结一下 方便你我.其实网上很多英文资料都很全,网上很多人就是考翻译老外的文章赚些流量,其实也没啥意 ...
随机推荐
- 微信小程序记账本进度四
//index.wxml <view class="container"> <form catchsubmit="formSubmit" &g ...
- UILabel设置富文本后不显示省略号
先描述一下问题,项目中用到了UILabel去显示一段富文本文字,超过label显示区域部分,省略号处理. 但是当设置好 attributedText 给label之后,显示出的效果是文字被切割了,并没 ...
- 在javaScript中把非数值类型的数据自动转换为数值类型的两种方式
一.使用Number()函数. 二.使用parseInt()/parseFloat()函数. 详情: 一.使用Number()函数将非数值类型的数据自动的转化为数组类型 Number()函数可以将任何 ...
- 按enter 导致整个页面刷新的解决办法
1.如果用的又from表单的存在,则在form中添加事件 <form onsubmit="return false;">.......</form> 2.增 ...
- java 将指定文件夹递归的进行zip打包压缩
package tmp.MavenTest; import java.io.BufferedInputStream; import java.io.File; import java.io.FileI ...
- 部署代码review和CI
公司原先搭了一个代码Review的服务器,由于历史原因,装的是一个32bit的Ubuntu系统,后来由于需要,需要安装gitlab,由于gitlab需要64位系统,所以临时凑合了个vagrant,本质 ...
- asp.net上传图片到服务器
ASP.NET的FileUpload控件可用于上传文件到服务器.HoverTreeTop新增了一个“阅图”功能,图片就是用FileUpload上传的.阅图功能查看:http://hovertree.c ...
- EasyPR源码剖析(6):车牌判断之LBP特征
一.LBP特征 LBP指局部二值模式,英文全称:Local Binary Pattern,是一种用来描述图像局部特征的算子,LBP特征具有灰度不变性和旋转不变性等显著优点. 原始的LBP算子定义在像素 ...
- openstack 王者归来学习笔记
rpc.call方法执行的流程:(下次看代码的时候可以根据这流程来看,注意:由于rpc服务器和客户端具有很松的耦合性,因此以上步骤并不是绝对的.) 1.rpc服务器定义和启动rpc服务 2.rpc服务 ...
- redis相关运维命令
1. 查询redis里面的大key? 在redis实例上执行bgsave,然后我们对dump出来的rdb文件进行分析,找到其中的大KEY 有个不太推荐的命令,debug object xxx 可以看到 ...