如何从Android设备通过USB将.hex文件上传到arduino uno



想要创建android应用程序,通过USB将.hex文件上传到arduino uno。Sketch IDE在编译程序后创建.hex文件。并且可以通过USB上传到arduino uno。所以任何人都可以告诉我如何让android应用程序上传.hex文件到arduno-uno。谷歌play商店上有一个名为"Arduino Commander"的应用程序,可以使用USB上传。我也想知道的android源代码

使用Physicaloid,它提供了一种将草图文件上传到arduino的简单方法。草图文件存储在应用程序的资源文件夹中。

我不知道你的确切意思,这就是为什么它被分为两部分:

您可以使用arduino的虚拟COM端口将二进制文件写入EEPROM或使用RS-232协议的闪存。

或者你想通过USB上的引导加载程序(DFU编程)来闪存一个.hex文件(向arduino写入一个自己编写和编译的程序)。我想你想做第一个

通常arduino-uno的USB实现USB CDC ACM类(https://en.wikipedia.org/wiki/USB_communications_device_class),并且是虚拟COM端口。因此,您可以通过USB与RS-232协议/命令进行通信,从android到arduino。

在android端有一个USB主机驱动程序(https://github.com/mik3y/usb-serial-for-android)它使您的android能够枚举像arduino一样的虚拟COM端口(USB CDC ACM设备)。

在这种情况下,android是USB主机,arduino是USB设备。在USB协议中,只有一个设备处于主机模式所有其他设备必须处于设备模式

因此,在你的android上,你可以在你的项目中包括andoid的usb串行驱动程序,然后使用RS-232命令与arduinos虚拟COM通信,示例如下https://github.com/mik3y/usb-serial-for-android。

在您的arduino上,您必须实现一个软件,该软件能够理解通过虚拟com端口接收的命令,请参阅https://www.arduino.cc/en/Tutorial/SoftwareSerialExample用于arduino 上的RS-232

通过此操作,您可以实现类似Arduino Commander的功能https://www.arduino.cc/en/Main/USBSerial

您也可以在http://arduino.stackexchange.com

(http://www.v-lad.org/projects/gnu.io.android/)


通过USB端口对arduino进行编程(闪烁一个十六进制)是可行的,因为arduino芯片预装了引导加载程序(http://wiki.osdev.org/Bootloader)。这被称为DFU(设备固件更新)。DFU是一种特殊的USB协议。您可以遵循本教程https://www.arduino.cc/en/Hacking/DFUProgramming8U2注意,当你这样做时,你会覆盖/删除arduino上的任何固件(除了引导程序和其他一些低级任务),并用你新开发的替换它

没有android应用程序,arduino指挥官无法做到这一点,这就是为什么我认为你不想这样做(DFU使用android作为主机)

您可以在此处查看示例:https://github.com/t2t-sonbui/ArduinoHexUploadExample我使用usb串口库,并在安卓系统上重新实现了串行api。

最新更新