[求助]通过TCP/IP网络烧录Arduino程序!
大家好!最近本小白终于将TP-LINK WR703路由器刷成了OpenWRT操作系统,并安装了USB转串口(TTL)模块,通过在OpenWRT系统上安装ser2net软件,实现了无线与arduino对话的功能。通过测试,可以实现双向通讯。既然链路通道打通了,那可不可以实现远程烧录程序呢?
以下时候当前链路图:
PC---------通过wifi链接WR703路由器-------WR703
PC---------“telnet 192.168.2.1 1234”----->WR703---------“ser2net.exe”---------->USBtty0-------“USBtoTTL软件功能模块”------->USB--------->arduino
双引号内表示实现这段连接所进行的操作和实现方法。
现在想在PC上安装一个软件,将要下载的程序通过上诉方法方法下载到arduino上。这样就可以实现远程升级程序了。其要点是通过TCP将下载程序传输到路由器上,通过路由器的ser2net服务传输到连接到此路由器USB口的arduino上。
目前大多数串口调试程序只能操作本地的实际COM口或虚拟COM,要是能操作网络端口就好了。
求相关教程和软件。
WR703不错,今天刚买一个,刷openwrt后感觉比树莓派更实用,
同求远程下载程序的方法 LZ需要在OpenWRT上面安装avrdude,opkg install avrdude,就可以给arduino下载程序了,
为了方便使用还可以用uhttpd+lua写一个cgi网页,然后就可以在浏览器里远程进行操作了:lol
http://www.elcojacobs.com/programming-my-arduino-over-wifi/
这个网站里面的过程是针对DD-WRT的,OpenWRT也是类似思路 我也想实现远程烧录程序:handshake, arduino 烧录程序时除了需要串口外, 还需要一个DTR数据接口(数据终端就绪) , 一般好点的usb转ttl 上都带着这个口,不过据了解wr703n 上只有tx 和 tr 口,没有DTR 口,倒是可以研究下能否在wr703n 上使用usb转ttl 的设备, 姑且可行. 本帖最后由 agaonet 于 2013-8-21 18:49 编辑
chzhewl 发表于 2013-8-21 17:39 static/image/common/back.gif
我也想实现远程烧录程序, arduino 烧录程序时除了需要串口外, 还需要一个DTR数据接口(数据终端就 ...
给的建议很好,谢谢。
我昨天晚上发现了一个软件,可以在本地虚拟一个COM口,该软件同时将改COM接收和发送的数据,通过TCP/IP or UDP 转换到以太网上,非常棒!! 该软件可以直接与安装了ser2net 的端口进行通讯收发两边的串口数据,同时还可以做服务端将本地的虚拟COM口绑定到TCP/UDP端口上,实现串口转网口功能。实现这个需要ser2net那边绑定的USBto串口或者硬件串口的波特率要与这边对齐。
有了这个东东,我就可以透明的使用arduino IDE的烧录功能向本地虚拟的COM口烧录程序或者进行人机交互。
不过非常遗憾的是烧录程序不成功;人机交互却没有问题。进入烧录阶段后,发送6个字节后就同步失败了。
这真的和DTR有关吗!?
我使用的是nano,我直接用USB线连接到WR703上USB口,然后在703上使用了USB转串口的程序,虚拟出了ttyUSB0,然后ser2net将ttyUSB0绑定到TCP端口上来通讯。可是如果是DTR问题,为何我在PC上也是同USB转串口驱动,虚拟出COM口,却可以下载程序呢?是703的USB口硬件问题?还是OpenWRT上USB转串口程序的问题?还是这直接多个节点转换传输的问题? 太伤神啦!
我把软件帖上来,该软件WIN7下也可以用,安装的时候选择XP兼容模式(ServicePack 2),管理员权限模式,运行的时候也选项兼容模式和管理员权限模式,即可。
对了,或许我是WIN7吧,如有在XP能下载成功的同学给回一下哈。谢谢。
VSPM 请下载2.82免费版,WIN7一样可以用。"http://www.powerip.net/product_VSPM.htm"
http://www.powerip.net/product_VSPM.htm
histamine 发表于 2013-8-21 16:00 static/image/common/back.gif
LZ需要在OpenWRT上面安装avrdude,opkg install avrdude,就可以给arduino下载程序了,
为了方便使用还可 ...
谢谢,吃完饭来研究。呵呵! 哎,4M内存的孩子掩面跑过。。。
太大了,没装下,现在把改删的都删了,还是不行。。。只有1M可用,这是为什呢?
但是tmp下,有1.4M的空间啊。。。咋个如何利用呢? root@OpenWrt:~# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 1.1M 988.0K 100.0K91% /
/dev/root 1.8M 1.8M 0 100% /rom
tmpfs 14.1M 88.0K 14.0M 1% /tmp
/dev/mtdblock3 1.1M 988.0K 100.0K91% /overlay
overlayfs:/overlay 1.1M 988.0K 100.0K91% /
tmpfs 512.0K 0 512.0K 0% /dev
各位老大,我的703的tmp下有14M的空间,但是我装程序全部自动安装到/dev/mtdblock3下,请问该如何弄,才能把14M的空间利用起来啊。 本帖最后由 histamine 于 2013-8-21 22:40 编辑
表示我编译好了一个固件,把lua、uhttpd、avrdude、mjpg_streamer、uvc摄像头驱动、ser2net、stty、libnfc(带pn532串口驱动)、cp210x/ftdi/arduino usb串口驱动、u盘驱动、ext4/ntfs文件系统支持都集成进去了,大小差不多刚塞满wr703n自带的固件存放空间,没有编译任何web配置界面,所以请用终端进行配置
(编译avrdude时把libreadline和libncurse依赖去掉了,不然铁定放不下)
http://pan.baidu.com/share/link?shareid=4241389895&uk=2298833357
电脑上用scp把hex文件传到/tmp下面scp XXX.hex [email protected]:/tmp然后把arduino uno插到wr703n的usb口上面cd /tmp
avrdude -p m328p -c arduino -b 115200 -P /dev/ttyACM0 -C /etc/avrdude.conf -U flash:w:XXX.hex
即可在wr703n路由上面完成对arduino uno的固件下载
周末有空再研究下,写个web界面出来:lol histamine 发表于 2013-8-21 22:23 static/image/common/back.gif
表示我编译好了一个固件,把lua、uhttpd、avrdude、mjpg_streamer、uvc摄像头驱动、ser2net、stty、libnfc( ...
啊哈。我果断下载,马上实验。。
昨天晚上刷回官方固件失败,手边又没有串口转TTL,还好有个arduino nano 果断拆开路由器,然后引出TTL,折腾了一晚上,搞定了。真恨不得多几只手啊!!! histamine 发表于 2013-8-21 22:23 static/image/common/back.gif
表示我编译好了一个固件,把lua、uhttpd、avrdude、mjpg_streamer、uvc摄像头驱动、ser2net、stty、libnfc( ...
兄弟,你这个是4M的,还是8M的呢?我暂时没有刷你的包,不过听你的建议去掉了2个lib,空间一下就多了。目前安装了 、ftdi 、lua、uhttpd、ser2net .
还有一个问题,我弄了个万能中继,及客户端加虚拟AP的方式,不知道为何,链接虚拟AP后,老是丢包啊! 不过从客户端网络进去连接路由器后就不丢包。。 agaonet 发表于 2013-8-22 13:44 static/image/common/back.gif
兄弟,你这个是4M的,还是8M的呢?我暂时没有刷你的包,不过听你的建议去掉了2个lib,空间一下就多了。目 ...
4M的
今天继续在研究,裁剪掉ipv6、ppp等支持,基本上还可以在4MB空间里面把luci web配置界面也塞进去,顺便把libnfc更新到1.7(1.4版本基本上没法用):lol agaonet 发表于 2013-8-22 13:44 static/image/common/back.gif
兄弟,你这个是4M的,还是8M的呢?我暂时没有刷你的包,不过听你的建议去掉了2个lib,空间一下就多了。目 ...
root@OpenWrt:/tmp# avrdude -p m328p -c arduino -b 57600 -P /dev/ttyUSB0 -C /etc/
avrdude.conf -U flash:w:Blink.cpp.hex
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "Blink.cpp.hex"
avrdude: input file Blink.cpp.hex auto detected as Intel Hex
avrdude: writing flash (1084 bytes):
Writing | ################################################## | 100% 0.35s
avrdude: 1084 bytes of flash written
avrdude: verifying flash memory against Blink.cpp.hex:
avrdude: load data flash data from input file Blink.cpp.hex:
avrdude: input file Blink.cpp.hex auto detected as Intel Hex
avrdude: input file Blink.cpp.hex contains 1084 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.26s
avrdude: verifying ...
avrdude: 1084 bytes of flash verified
avrdude: safemode: Fuses OK
avrdude done.Thank you.
root@OpenWrt:/tmp# avrdude -p m328p -c arduino -b 57600 -P /dev/ttyUSB0 -C /etc/
avrdude.conf -U flash:w:Blink.cpp.hex
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
root@OpenWrt:/tmp#
成功!!不过,第二再刷就会失败! 必须将USB重新拔插一下才行。
另外,去掉的2个lib在下估计时提示必须要有,否则无法运行。没办法就重新下载了。不过好在现在空间还有100k,够留给WEB的了,期待你的WEB哈。呵呵呵。谢谢。 本帖最后由 histamine 于 2013-8-22 14:29 编辑
agaonet 发表于 2013-8-22 14:15 static/image/common/back.gif
root@OpenWrt:/tmp# avrdude -p m328p -c arduino -b 57600 -P /dev/ttyUSB0 -C /etc/
avrdude.conf -U...
我是自己编译的,所以可以不依赖那两个lib:lol
mjpg-streamer也可以裁剪一下,我用的摄像头支持硬件jpeg输出,所以可以去掉libjpeg的依赖 histamine 发表于 2013-8-22 14:19 static/image/common/back.gif
我是自己编译的,所以可以不依赖那两个lib
mjpg-streamer也可以裁剪一下,我用的摄像头支持硬件 ...
呵呵。那我就先不刷你编译的系统了。我丢了Linux好多年了,最近喜欢上ardunio才有时间玩玩。
那等你把web也弄进去了,你再奉献下你的系统哟。呵呵。等你好消息。谢谢。
页:
[1]