9. Case 07: 游戏手柄控制积木小车

9.1. 目的


  • 使用Ring:bit六合一搭建套件制作一辆积木小车,并通过手柄控制.

../../_images/Ringbit_Bricks_Pack_case_02_01.png

9.2. 使用材料


Ring:bit六合一搭建套件 × 1

游戏手柄 × 1

9.3. 积木搭建


请参考Ring:bit六合一搭建套件案例02:积木小车进行结构搭建。

9.4. 软件


MicroSoft makecode

9.5. 编程


步骤 1

在MakeCode的代码抽屉中点击“高级”,查看更多代码选项。

../../_images/Ringbit_Bricks_Pack_case_02_03.png

步骤 2 小车编程

为了给Ring:bit六合一搭建套件编程,我们需要添加一个扩展库。在代码抽屉底部找到“扩展”,并点击它。这时会弹出一个对话框,搜索”Ringbit”,然后点击下载这个代码库。

../../_images/Ringbit_Bricks_Pack_case_02_04.png

*注意:*如果你得到一个提示说一些代码库因为不兼容的原因将被删除,你可以根据提示继续操作,或者在项目菜单栏里面新建一个项目。

在当开机时(开始)积木块中设置无线电组别为1,一定要和遥控端设置为同一组别,否则无法匹配。

然后在当接收到数据积木块中插入两次判断语句,分别判断无线电接收值name是否为x或者y;

当无线电收到的name值为x时,为加速度计X轴数据,将value值保存到xValue变量;

当无线电收到的name值为y时,为加速度计Y轴数据,将value值保存到yValue变量;

在无限循环积木块中,设置左轮速度为yValue+xValue,右轮速度为yValue-xValue。

../../_images/Ringbit_Bricks_Pack_case_cn_07_05.png

程序

请参考程序连接: https://makecode.microbit.org/_1vAgLo3Ky5Rm

你也可以通过以下网页直接下载程序。

步骤 3 游戏手柄编程

为了给游戏手柄编程,我们需要添加一个扩展库。在代码抽屉底部找到“扩展”,并点击它。这时会弹出一个对话框,搜索”joystickbit”,然后点击下载这个代码库。

../../_images/Ringbit_Bricks_Pack_case_cn_07_06.png

*注意:*如果你得到一个提示说一些代码库因为不兼容的原因将被删除,你可以根据提示继续操作,或者在项目菜单栏里面新建一个项目。

在当开机时积木块中设置无线电组别为1;

X轴和Y轴的数值范围为0~1023,当摇杆位置在中心的时候,它的理论值为512,故需要将0~1023map映射到-100~100这个范围之内。

在无限循环积木块中设置变量x它的值为X轴的读值映射到-100~100这个范围的值。

在无限循环积木块中设置变量y它的值为y轴的读值映射到100~-100这个范围的值。

通过无线发送值将变量x和变量y发送出去。

../../_images/Ringbit_Bricks_Pack_case_cn_07_07.png

程序

请参考程序连接:https://makecode.microbit.org/_Ct3UpWKx3eb0

你也可以通过以下网页直接下载程序。

Result


用手柄摇杆可以控制小车前进后退转弯速度等。

9.6. Exploration


9.7. FAQ


9.8. Relevant File