我使用Android的AVRDUDE(http://code.google.com/p/andavr/)。我可以编译C的代码。我可以跑Android无法使用AVRDUDE与Arduino对话
$ 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
是Arduino的装置相连接OTG电缆。在连接之前,我跑
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编程。
谢谢,但是, 所以这里是我所做的: 我已经扎根了我的nexus7,它支持OTG。我可以成功控制使用OTG上的鼠标/键盘。我也可以用它来控制OTG上的我的arduino。我认为这意味着OTG正在100%正常工作。 此外,我植根于我的手机,并且我有root权限访问它。我还在其上安装了Ubuntu Touch,并且正在运行一些需要root用户成功的应用程序。 我也授予了终端模拟器的root权限。我不能这样做,这不被支持。 我找到了一种通过名为adbwireless的应用程序通过无线连接adb的方法。 – HansStam 2013-03-24 11:28:54
继续: 我现在可以通过wifi控制nexus7 adb shell,同时将arduino插入nexus7的usbport。 在adb外壳上,你自动获得su访问权限,所以这应该肯定会给我su权限。 故事结束,它仍然不起作用,即使我有超能力。 我也试过给arduino chmod 777访问,但那也不管用。它只是不想被我的联系7控制。 – HansStam 2013-03-24 11:36:50
虽然我不放弃。它应该是可能的 – HansStam 2013-03-24 11:37:27