我正在使用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编程。
答案 0 :(得分:3)
它表示“权限被拒绝”并且您似乎没有使用root shell。 尝试'su',然后尝试失败的命令。如果您的手机没有植根,我认为它无法正常工作。
我甚至不确定当你是root用户它是否会正常工作,所以请发布结果!我的猜测是,如果你的手机没有充当usb主机(只有一些可以),那就不会了。
答案 1 :(得分:-1)
我不是专家。但是,您是否需要USB shield通过电缆与Arduino - Android进行通信?两者都是奴隶(所以当Android / Arduino插入PC时,PC控制它)。试试 USB Host Shield 2.0 For Arduino 。
同样,我可能错了。我希望这会有所帮助。