Fórum Root.cz

Hlavní témata => Hardware => Téma založeno: i 12. 07. 2016, 11:19:58

Název: Programování Arduino Uno v Linuxu
Přispěvatel: i 12. 07. 2016, 11:19:58
Ahoj věm,
Můžete mi někdo pomoci, nedaří se mi nahrání Testovací program dodaný s arduino-IDE do arduino-UNO takové to s MEGA8U2 na USB, Na widlých po nahrání driveru to funguje já chci ale používat linux a kdyby to šlo tak i CLI, gcc-avr a podbně.

Kód: [Vybrat]
# lsusb
....
Bus 001 Device 018: ID 2341:0001 Arduino SA Uno (CDC ACM)
....
#

# dmesg
....
[33880.036628] usb 1-1.2: new full-speed USB device number 18 using ehci-pci
[33880.130361] usb 1-1.2: New USB device found, idVendor=2341, idProduct=0001
[33880.130364] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[33880.130365] usb 1-1.2: Product: Arduino Uno
[33880.130367] usb 1-1.2: Manufacturer: Arduino (www.arduino.cc)
[33880.130368] usb 1-1.2: SerialNumber: 7493730393635161F172

Název: Re:Programování Arduino Uno v Linuxu
Přispěvatel: Jenda 12. 07. 2016, 13:53:48
Z nějakého důvodu se ti asi nenahrály potřebné moduly (cdc_acm, usbserial…) a nevytvořilo zařízení /dev/ttyACM0. Tohle má fungovat out-of-the-box, pokud to nemáš rozbité nebo úmyslně vypnuté.
Název: Re:Programování Arduino Uno v Linuxu
Přispěvatel: Mirek 12. 07. 2016, 13:54:23
Postupoval jsi při instalaci dle https://www.arduino.cc/en/Guide/Linux a nebo jinak?
Název: Re:Programování Arduino Uno v Linuxu
Přispěvatel: Nobody (ten falesnej) 12. 07. 2016, 14:04:15
Z prikazove radky pak:
Kód: [Vybrat]
arduino --board arduino:avr:uno --upload /path/to/source.ino --port /dev/ttyACM0
Ale napriklad u noname klonu Nano:
Kód: [Vybrat]
arduino --board arduino:avr:nano:cpu=atmega328--upload /path/to/source.ino --port /dev/ttyUSB0
A Makefile pro surove C:

Kód: [Vybrat]
OUT = test
OBJ = $(OUT).hex
SRC = $(OUT).c
F_CPU = 16000000UL
MCU = atmega328p

CC = avr-gcc
CFLAGS = -Wall -Os -DF_CPU=$(F_CPU) -mmcu=$(MCU)

OBJCOPY = avr-objcopy
OBJFLAGS = -O ihex -R .eeprom


AVRDUDE = avrdude -F -V
PROGRAMMER = arduino
PROCESSOR = $(MCU)
PORT = /dev/ttyACM0
BAUD = 115200

upload: $(OBJ)
$(AVRDUDE) -c $(PROGRAMMER) -p $(PROCESSOR) -P $(PORT) -b $(BAUD) -U flash:w:$(OBJ)

$(OBJ): $(OUT)
$(OBJCOPY) $(OBJFLAGS) $(OUT) $(OBJ)

$(OUT): $(SRC)
$(CC) $(CFLAGS) -o $(OUT) $(SRC)

clean:
rm $(OUT) $(OBJ)
Název: Re:Programování Arduino Uno v Linuxu
Přispěvatel: dustin 12. 07. 2016, 14:04:43
Opravdu se nevytvořilo zařízení /dev/ttyACMX, nebo jen není vidět v Arduino IDE? Druhá varianta viz https://www.arduino.cc/en/Guide/Troubleshooting

Citace
On Linux, the Uno and Mega 2560 show up as devices of the form /dev/ttyACM0. These are not supported by the standard version of the RXTX library that the Arduino software uses for serial communication. The Arduino software download for Linux includes a version of the RXTX library patched to also search for these /dev/ttyACM* devices. There's also an Ubuntu package (for 11.04) which includes support for these devices. If, however, you're using the RXTX package from your distribution, you may need to symlink from /dev/ttyACM0 to /dev/ttyUSB0 (for example) so that the serial port appears in the Arduino software.

Název: Re:Programování Arduino Uno v Linuxu
Přispěvatel: Jenda 12. 07. 2016, 14:59:48
Opravdu se nevytvořilo zařízení /dev/ttyACMX
Vytvoření zařízení by to snad zalogovalo do dmesg.
Název: Re:Programování Arduino Uno v Linuxu
Přispěvatel: i 12. 07. 2016, 23:27:38
Z nějakého důvodu se ti asi nenahrály potřebné moduly (cdc_acm, usbserial…) a nevytvořilo zařízení /dev/ttyACM0. Tohle má fungovat out-of-the-box, pokud to nemáš rozbité nebo úmyslně vypnuté.

Ano skutečně, stačilo

Kód: [Vybrat]
sudo modprobe cdc_acm

a vše funguje,
moc děkuji.