Android无法使用AVRDUDE与Arduino交谈

时间:2013-03-24 08:02:01

标签: android arduino avr-gcc avrdude

我正在使用AVRDUDE for Android(http://code.google.com/p/andavr/)。我可以编译C代码。我可以跑

$ avr-gcc -Os -DF_CPU=16000000UL -mmcu=atmega328p -c -o led.o led.c
$ avr-gcc -mmcu=atmega328p led.o -o led
$ avr-objcopy -O ihex -R .eeprom led led.hex
一切都没有问题。然后我尝试运行:

avrdude -F -V -c arduino -p ATMEGA328P -P /dev/bus/usb/002/002  -b 115200 -C /data/data/jackpal.androidterm/local/etc/avrdude.conf -U flash:w:led.hex

结果是:

avrdude: ser_open(): can't open device "/dev/bus/usb/002/002"; Permission denied
loctl("TIOCMGET"): Invalid argument

avrdude done. Thank you.

我跑的情况类似:

avrdude -F -V -c arduino -p ATMEGA328P -P /dev/bus/usb/002/001  -b 115200 -C /data/data/jackpal.androidterm/local/etc/avrdude.conf -U flash:w:led.hex

我可以确认/dev/bus/usb/002/002是与OTG电缆连接的Arduino设备。在连接之前,我运行

ls -l /dev/bus/usb/002/

我得到了:

total 0

通过USB将Arduino连接到平板电脑后,我运行命令:

ls -l /dev/bus/usb/002

我得到了

crw-rw----   1 0   1018  180,128 Mar 24 07:53 001
crw-rw----   1 0   1018  180,129 Mar 24 07:53 002

这清楚地告诉我Arduino是连接的。我很想知道是否有人能看出我做错了什么。

PS:我正在尝试创建一个Android应用程序,允许直接从Android平板电脑进行Arduino编程。

2 个答案:

答案 0 :(得分:3)

它表示“权限被拒绝”并且您似乎没有使用root shell。 尝试'su',然后尝试失败的命令。如果您的手机没有植根,我认为它无法正常工作。

我甚至不确定当你是root用户它是否会正常工作,所以请发布结果!我的猜测是,如果你的手机没有充当usb主机(只有一些可以),那就不会了。

答案 1 :(得分:-1)

我不是专家。但是,您是否需要USB shield通过电缆与Arduino - Android进行通信?两者都是奴隶(所以当Android / Arduino插入PC时,PC控制它)。试试 USB Host Shield 2.0 For Arduino

同样,我可能错了。我希望这会有所帮助。