×

EV3使用NXT Hitechnic触摸多路复用器

消耗积分:0 | 格式:zip | 大小:0.23 MB | 2022-12-05

李刚

分享资料个

描述

发现 Hitechnic NXT Touch Multiplexer 不能与 LEGO EV3 控制器和 EV3 Touch 传感器一起使用,我试图找出原因。

打开Multiplexer的柜子,发现只有4个电阻,应该是模拟传感器。NXT Touch 传感器和 EV3 Touch 传感器也不同。

NXT Touch 传感器切换引脚 1 和引脚 2,EV3 Touch 传感器切换引脚 4 和 6。我试图计算一个不同的电阻网络,但失败了。

所以只有一个小型微控制器可以提供帮助,

我钻出并归档了一个大小为 Wattuino 5V 16mhz 328PB Arduino 控制器的矩形,并连接了一些电线和 4 个 2K2 电阻器。看图片

pYYBAGOILlWAZwrdAAaJyg2V2OE158.jpg
 
poYBAGOILluAanA3AAhdxszjC6M785.jpg
 

 

接下来是为 328PB 编写一些 Arduino 代码并使其成为 EV3 Uart 传感器。EV3-G 软件以及 LEGO 或 EV3dev Python 软件均可轻松使用 EV3 Uart 传感器。

我使用的 Lawrie Griffiths 制作的 Uart 仿真硬件库可以在以下位置找到:

https://github.com/lawrie/EV3_Dexter_Industries_Sensors/tree/master/EV3_arduino/EV3UARTEmulationHard。

对于 EV3-G 软件,我制作了一个 Touch Mux Block。

pYYBAGOILl2AZTP_AAAbGIGSH6I224.png
 

为什么我使用 Wattuino 328PB,因为有用于第二个串行端口、第二个 I2C 端口和第二个 SPI 端口的库,在这种情况下,Polulu A-start 328PB 也可以。它们只支持第二个串行端口,我用它来进行 EV3 Uart 通信。当然,如果您使用 softwareserial 进行 EV3 Uart 通信并使用 Uart 仿真软件库,那么普通的 Pro-min 就可以了。未在我的 Arduino 代码中实现。我使用硬件序列号 1。

任何其他 328PB 板的 Serial1 连接在不同的位置。

警告:

请勿同时连接 EV3 的电源和 USB TTL 串行分线器。断开 USB TTL 串行分线器的 V+ 与 328PB 板的连接,并将 EV3 插入 Touch Mux。EV3 将为微控制器供电。

我在 EV3UARTEmulationHard.cpp 和 EV3UARTEmulationSoft.cpp 中发现了 DATA32 和 DATAF 错误并更改了代码。

TheDATA32 从 long 到字节数组的转换是错误的,因此 DATAF 也是错误的,因为它使用 DATA32 发送。

代码是:
void EV3UARTEmulation::send_data32(long l) {
byte bb[4];
bb[0] = l & 0xFF;
bb[1] = (l >> 8) & 0xFF;
bb[2] = (l >> 16) & 0xFF;
bb[3] = (l >> 24) & 0xFF;
send_cmd(CMD_DATA | (2 << CMD_LLL_SHIFT) | current_mode, bb, 4);
}

我把它改成了:
void EV3UARTEmulation::send_data32(long l) {
byte bb[4];
bb[0] = l & 0xFF;
bb[1] = (l >> 8) & 0xFF;
bb[2] = (l >> 16) & 0xFF;
bb[3] = (l >> 24) & 0xFF;
send_cmd(CMD_DATA | (2 << CMD_LLL_SHIFT) | current_mode, bb, 4);
}

未来:

在我的下一个项目中,我将向您展示如何升级 Pololu A-star 328PB 的引导加载程序并使用 I2C 和 SPI 端口以及使用 3v3 12 mhz 和 5V 20 mhz 版本。或任何其他中国 328PB 微控制器。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !