AmebaMotors - 使用 Ameba 作为服务器来控制小车

AmebaMotors介绍

AmebaMotors 是一个提供如何控制马达相关的 API 库。
请下载 AmebaMotors(https://github.com/ambiot/ambd_arduino/raw/master/Arduino_zip_libraries/AmebaMotors.zip)
并且新增 AmebaMotors 至 Ameba: https://www.arduino.cc/en/Guide/Libraries#toc4

材料准备

• AmebaD [ AMB21 / AMB22 / AW-CU488 Thing Plus ] x 1

• L298N H-Bridge x 1
• 4轮车 or 2轮车+万向轮

范例说明

流程

在这个范例中,我们将 Ameba 连接到 WiFi 并使用 Ameba 作为服务器,用户可以通过网页控制 4 轮/2 轮小车。

首先,将 Ameba 连接到 L298N H-Bridge 和小车。

要了解有关 L298N H-Bridge 技术细节的更多信息,请查看此处 https://www.amebaiot.com/en/ameba-arduino-amebamotors-basic/
打开范例,“Files” -> “Examples” -> “AmebaWiFi” -> “WiFiControlCar”。

在范例中使用了以下引脚:

ENAIN1IN2IN3IN4ENB
8910111213

Wiring:

Note:

• 这边我们将Ameba的5V接到L298N的+12V供电的地方,但并不是每个L298N模组都可以使用5V供电。如果不行的话,请使用其它电源(Ex. +12V)供电给L298N的+12V接脚,再用L298N的+5V供电给Ameba。
• 马达的正确接线取决于每个型号(不同型号可能相反)。请先运行测试程序,在组装小车前确保它运行正常。
• 为方便起见,建议使用杜邦线来处理马达和L298N 的接线。

接线完之后,在每次需要改动程式时,可以先将L298N的电源拔掉,避免马达不预期地乱跑。然后再将Ameba接上电源。上传完程式并确定开始测试时再将L298N的电源插上。

然后,将代码上传到 Ameba

在范例中,将标示的代码段修改为相应的资讯。

上传代码并按下 Ameba 上的重置按钮。建立连接后,您会在Arduino IDE中看到“To see this page in action, open a browser to http://xxx.xxx.xxx.xxx”的信息,如图:

接下来,打开同一网域下的电脑或手机浏览器并输入网址。

在网页中,您可以按相应的按钮来控制4个方向中的任何一个方向来控制小车。

Demo 影片

https://youtu.be/ItVaPQ4dv8Q

程式码说明

使用 WiFi.begin() 建立 WiFi 连接。
https://www.arduino.cc/en/Reference/WiFiBegin

获取 WiFi 连接信息:

使用 WiFi.SSID() 获取当前连接网络的 SSID。
https://www.arduino.cc/en/Reference/WiFiSSID

使用 WiFi.RSSI() 获取连接的信号强度。
https://www.arduino.cc/en/Reference/WiFiRSSI

使用 WiFi.localIP() 获取 Ameba 的 IP 地址。
https://www.arduino.cc/en/Reference/WiFiLocalIP

使用 WiFiServer server() 创建一个监听指定端口的服务器。
https://www.arduino.cc/en/Reference/WiFiServer

使用 server.begin() 使服务器开始监听连接。
https://www.arduino.cc/en/Reference/WiFiServerBegin

使用 server.available() 获取连接到服务器并具有可供读取数据的客户端。
https://www.arduino.cc/en/Reference/WiFiServerAvailable

使用 client.connected 获取客户端是否已连接。
https://www.arduino.cc/en/Reference/WiFiClientConnected

使用 client.println() 打印数据。
https://www.arduino.cc/en/Reference/WiFiClientPrintln

使用 client.print() 将数据打印到客户端连接的服务器。
https://www.arduino.cc/en/Reference/WiFiClientPrint

使用 client.available() 返回可供读取的字节数。
https://www.arduino.cc/en/Reference/WiFiClientAvailable

使用 client.read() 读取从客户端连接的服务器接收到的下一个字节。
https://www.arduino.cc/en/Reference/WiFiClientRead

使用 client.stop() 断开客户端与服务器的连接。
https://www.arduino.cc/en/Reference/WiFIClientStop

请先确认已安装QQ通讯软体