ESP8266 作为透明桥连接 Arduino 与 Johnny-Five

本玩法介绍了,如何使用 ESP8266 作为透明的桥梁,让您的 Arduino 和 Johnny-Five 通过 Wifi 连接。即,如何摆脱你的串行电缆,并使用WiFi!

更新:很长时间以来,这个过程使用 5shekel 的 TCP 透明桥(GitHub:https://github.com/5shekel/ESP8266-transparent-bridge ),其工作正常但没有被更新。并且与 Johnny Five 相比,TCP 不是这种消息传递的最佳协议。

因此,有希望使用性能更好的 UDP 来取代它。梁明,已经在来自 MakeBlock 的 Riven、Mark Wolfe、Andy Gelme 和 Luis Montes 的辛勤工作下完成了。

步骤1:ESP8266 配置

您需要确保您同时拥有 esptool.py 以及 esptool-ck。esptool.py 将帮助您进行测试,您可以与主板进行通信,并将其擦除;esptool-ck 将更好地向 ESP8266 模块烧录程序。

然后将 ESP8266 置于烧录模式(flash mode):

esptool.py --port /dev/ttyDEVICE erase_flash

擦除它的 flash 非常重要,它可以摆脱你可能拥有的任何用户设置。之后,更可读将新的二进制文件,写入到干净的闪存里。二进制文件可以从 gist 上获取( https://gist.github.com/ajfisher/5fe60fe7d8c49b3223f0 ),它由马克·沃尔夫(Mark Wolfe)的项目构建的。

esptool -cp /dev/ttyDEVICE -cd ck -ca 0x00000 -cf 0x00000.bin  -ca 0x40000 -cf 0x40000.bin

重置 ESP8266,并退出 flash 模式,您应该看到一个名叫 NBD_XXXXXX 的接入点(AP),其中 XXXXXX 是 mac 地址的最后 6 个十六进制值。所以,我的 AP 看起来像是 NBD_FBE7C3。默认情况下,网络是打开的,但您可以通过连接到 AP,然后将 Web 浏览器指向 192.168.4.1 来配置。

步骤2:Johnny Five 设置

从 Johnny Five 开始,我们使用 UDP-serial 在 UDP 之间创建虚拟串口。

依赖:

npm install johnny-five firmata udp-serial

默认情况下,我们要通信的地址是 192.168.4.1 ,UDP 端口是 1025,所以在选项中确定它们。

步骤3:Arduino 设置

加载标准的 firmata,并将 firmata 的速率改为 115200 而不是 57600(在标准示例程序中,搜索57600 - 这是唯一的实例)。编译并上传到arduino。

将 TX/RX 引脚连接到 Arduino 和 ESP01,为每个引脚添加电源,并将接地连接在一起。

步骤4:运行全部

之后,在计算机上运行下面的的脚本,它应该可以工作,你将应该得到一个很好的闪烁的 LED。 现在使用这种构架,去做一个无线机器人。

'use strict';

var VirtualSerialPort = require('udp-serial').SerialPort;
var firmata = require('firmata');
var five = require("johnny-five");

//create the udp serialport and specify the host and port to connect to
var sp = new VirtualSerialPort({
  host: '192.168.4.1',
  type: 'udp4',
  port: 1025
});

//use the serial port to send a command to a remote firmata(arduino) device
var io = new firmata.Board(sp);
io.once('ready', function(){
    console.log('IO Ready');
    io.isReady = true;

    var board = new five.Board({io: io, repl: true});

    board.on('ready', function(){
        console.log('five ready');
        //Full Johnny-Five support here:

        var led = new five.Led(13);
        led.blink();
    });
});
尚未评分
您的评分将帮助我们做出更好的玩法

观光\评论区

Copyright © 2017 玩点什么. All Rights Reserved.