Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Come collegare l'arduino nano a Raspberry

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteMassimoB, Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[1] Come collegare l'arduino nano a Raspberry

Messaggioda Foto Utentega2bo » 16 apr 2020, 20:51

Buonasera, provando ad attaccare un arduino nano (https://www.amazon.it/dp/B0716S43Q2?ref ... E_DDE_dt_1) a Raspberry e provando a comandarlo da terminale, mi è sorto un problema ovvero, che dopo avere dato il comando make upload, mi da questo come errore:

Codice: Seleziona tutto
pi@raspberrypi:~/codice_arduino $ make upload
-------------------------
Arduino.mk Configuration:
- [AUTODETECTED]       CURRENT_OS = LINUX
- [USER]               ARDUINO_DIR = /usr/share/arduino
- [COMPUTED]           ARDMK_DIR = /usr/share/arduino (relative to Common.mk)
- [AUTODETECTED]       ARDUINO_VERSION = 105
- [DEFAULT]            ARCHITECTURE = 
- [DEFAULT]            ARDMK_VENDOR = arduino
- [DEFAULT]            ARDUINO_SKETCHBOOK = 
- [BUNDLED]            AVR_TOOLS_DIR = /usr/share/arduino/hardware/tools/avr (in Arduino distribution)
- [COMPUTED]           ARDUINO_LIB_PATH = /usr/share/arduino/libraries (from ARDUINO_DIR)
- [COMPUTED]           ARDUINO_VAR_PATH = /usr/share/arduino/hardware/arduino//variants (from ARDUINO_DIR)
- [COMPUTED]           BOARDS_TXT = /usr/share/arduino/hardware/arduino//boards.txt (from ARDUINO_DIR)
- [DEFAULT]            USER_LIB_PATH = /libraries (in user sketchbook)
- [DEFAULT]            PRE_BUILD_HOOK = pre-build-hook.sh
- [USER]               BOARD_TAG = nano
- [COMPUTED]           CORE = arduino (from build.core)
- [COMPUTED]           VARIANT = eightanaloginputs (from build.variant)
- [COMPUTED]           OBJDIR = build-nano (from BOARD_TAG)
- [COMPUTED]           ARDUINO_CORE_PATH = /usr/share/arduino/hardware/arduino//cores/arduino (from ARDUINO_DIR, BOARD_TAG and boards.txt)
- [ASSUMED]            MONITOR_BAUDRATE = 9600
- [DEFAULT]            OPTIMIZATION_LEVEL = s
- [DEFAULT]            MCU_FLAG_NAME = mmcu
- [DEFAULT]            CFLAGS_STD = -std=gnu11 -flto -fno-fat-lto-objects
- [DEFAULT]            CXXFLAGS_STD = -std=gnu++11 -fno-threadsafe-statics -flto
- [COMPUTED]           DEVICE_PATH = /dev/ttyUSB0 (from MONITOR_PORT)
- [DEFAULT]            FORCE_MONITOR_PORT = 
- [AUTODETECTED]       Size utility: AVR-aware for enhanced output
- [COMPUTED]           BOOTLOADER_PARENT = /usr/share/arduino/hardware/arduino//bootloaders (from ARDUINO_DIR)
- [COMPUTED]           ARDMK_VERSION = 1.5
- [COMPUTED]           CC_VERSION = 5.4.0 (avr-gcc)
-------------------------
mkdir -p build-nano
make reset
make[1]: ingresso nella directory "/home/pi/codice_arduino"
/usr/bin/ard-reset-arduino  /dev/ttyUSB0
make[1]: uscita dalla directory "/home/pi/codice_arduino"
make do_upload
make[1]: ingresso nella directory "/home/pi/codice_arduino"
/usr/share/arduino/hardware/tools/avr/../avrdude -q -V -p atmega168 -C /usr/share/arduino/hardware/tools/avr/../avrdude.conf -D -c arduino -b 19200 -P /dev/ttyUSB0 \
                -U flash:w:build-nano/codice_arduino.hex:i
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done.  Thank you.

make[1]: *** [/usr/share/arduino/Arduino.mk:1462: do_upload] Error 1
make[1]: uscita dalla directory "/home/pi/codice_arduino"
make: *** [/usr/share/arduino/Arduino.mk:1455: upload] Error 2


e dentro la cartella codice_arduino c'è questo:

Codice: Seleziona tutto
pi@raspberrypi:~/codice_arduino $ ls
build-nano  Makefile  prova.ino
pi@raspberrypi:~/codice_arduino $ more Makefile
ARDUINO_DIR = /usr/share/arduino
BOARD_TAG = nano
ARDUINO_PORT = /dev/ttyUSB0
ARDUINO_LIBS =
include /usr/share/arduino/Arduino.mk
pi@raspberrypi:~/codice_arduino $ more prova.ino
#define led 5

void setup(){
pinMode(led, OUTPUT);
}

void loop(){
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}


ho notato che i due processori non coincidono, se è quello il problema come si potrebbe risolvere?

a proposito, la porta seriale dovrebbe essere quella giusta dato che ho provato a vedere i dispositi collegati senza arduino e con arduino e come porta in più c'era quella.

Grazie mille già in anticipo, buonaserata a tutti. O_/
Avatar utente
Foto Utentega2bo
10 5
New entry
New entry
 
Messaggi: 80
Iscritto il: 10 mar 2020, 0:46

0
voti

[2] Re: Come collegare l'arduino nano a Raspberry

Messaggioda Foto Utentega2bo » 16 apr 2020, 20:56

Per i due processori non coincidono intendo dire che quello del mio arduino nano è un ATmega328P e quello che mi da come risultato il make upload è un ATmega168.

in piu volevo fare un'altra precisazione, che il mio non è un arduino ma un elegoo ma comunque collegandolo all'ide di arduino non mi ha dato problemi.
Avatar utente
Foto Utentega2bo
10 5
New entry
New entry
 
Messaggi: 80
Iscritto il: 10 mar 2020, 0:46

0
voti

[3] Re: Come collegare l'arduino nano a Raspberry

Messaggioda Foto Utentega2bo » 16 apr 2020, 20:59

un ultima cosa: io sto utilizzando il raspberry via ssh da un altro PC con sopra installato linux.
Avatar utente
Foto Utentega2bo
10 5
New entry
New entry
 
Messaggi: 80
Iscritto il: 10 mar 2020, 0:46

0
voti

[4] Re: Come collegare l'arduino nano a Raspberry

Messaggioda Foto Utentexyz » 17 apr 2020, 0:39

Allora basta leggere l'errore con attenzione. L'errore è generato da un programma che si chiama Avrdude:

https://www.nongnu.org/avrdude

non riesce a collegarsi con la seriale "/dev/ttyUSB0" o la seriale non risponde al protocollo di boot di Arduino. Quindi controlla con molta attenzione quale device viene assegnato (/dev/ttyUSBx con x un numero intero) quando colleghi Arduino e modifica il file di configurazione di conseguenza con il device giusto.
Avatar utente
Foto Utentexyz
6.445 2 4 5
G.Master EY
G.Master EY
 
Messaggi: 1698
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[5] Re: Come collegare l'arduino nano a Raspberry

Messaggioda Foto Utentega2bo » 17 apr 2020, 10:06

prima ho provato senza arduino e poi con arduino, e questi sono i risultati:

Codice: Seleziona tutto
pi@raspberrypi:~ $ ls /dev/tty*
/dev/tty    /dev/tty12  /dev/tty17  /dev/tty21  /dev/tty26  /dev/tty30  /dev/tty35  /dev/tty4   /dev/tty44  /dev/tty49  /dev/tty53  /dev/tty58  /dev/tty62  /dev/ttyAMA0
/dev/tty0   /dev/tty13  /dev/tty18  /dev/tty22  /dev/tty27  /dev/tty31  /dev/tty36  /dev/tty40  /dev/tty45  /dev/tty5   /dev/tty54  /dev/tty59  /dev/tty63  /dev/ttyprintk
/dev/tty1   /dev/tty14  /dev/tty19  /dev/tty23  /dev/tty28  /dev/tty32  /dev/tty37  /dev/tty41  /dev/tty46  /dev/tty50  /dev/tty55  /dev/tty6   /dev/tty7
/dev/tty10  /dev/tty15  /dev/tty2   /dev/tty24  /dev/tty29  /dev/tty33  /dev/tty38  /dev/tty42  /dev/tty47  /dev/tty51  /dev/tty56  /dev/tty60  /dev/tty8
/dev/tty11  /dev/tty16  /dev/tty20  /dev/tty25  /dev/tty3   /dev/tty34  /dev/tty39  /dev/tty43  /dev/tty48  /dev/tty52  /dev/tty57  /dev/tty61  /dev/tty9
pi@raspberrypi:~ $ lsusb
Bus 001 Device 005: ID 0424:7800 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@raspberrypi:~ $ ls /dev
autofs           fb0        kmsg   loop-control      network_latency     ram12  ram8     stdout  tty16  tty25  tty34  tty43  tty52  tty61      urandom  vcs5   vcsa7     vcsu7
block            fd         log    mapper            network_throughput  ram13  ram9     tty     tty17  tty26  tty35  tty44  tty53  tty62      v4l      vcs6   vcsm      vhci
btrfs-control    full       loop0  media0            null                ram14  random   tty0    tty18  tty27  tty36  tty45  tty54  tty63      vchiq    vcs7   vcsm-cma  video10
bus              fuse       loop1  mem               ppp                 ram15  raw      tty1    tty19  tty28  tty37  tty46  tty55  tty7       vcio     vcsa   vcsu      video11
cachefiles       gpiochip0  loop2  memory_bandwidth  ptmx                ram2   rfkill   tty10   tty2   tty29  tty38  tty47  tty56  tty8       vc-mem   vcsa1  vcsu1     video12
char             gpiochip1  loop3  mmcblk0           pts                 ram3   serial1  tty11   tty20  tty3   tty39  tty48  tty57  tty9       vcs      vcsa2  vcsu2     watchdog
console          gpiomem    loop4  mmcblk0p1         ram0                ram4   shm      tty12   tty21  tty30  tty4   tty49  tty58  ttyAMA0    vcs1     vcsa3  vcsu3     watchdog0
cpu_dma_latency  hwrng      loop5  mmcblk0p2         ram1                ram5   snd      tty13   tty22  tty31  tty40  tty5   tty59  ttyprintk  vcs2     vcsa4  vcsu4     zero
cuse             initctl    loop6  mqueue            ram10               ram6   stderr   tty14   tty23  tty32  tty41  tty50  tty6   uhid       vcs3     vcsa5  vcsu5
disk             input      loop7  net               ram11               ram7   stdin    tty15   tty24  tty33  tty42  tty51  tty60  uinput     vcs4     vcsa6  vcsu6
pi@raspberrypi:~ $ ls /dev/tty*
/dev/tty    /dev/tty12  /dev/tty17  /dev/tty21  /dev/tty26  /dev/tty30  /dev/tty35  /dev/tty4   /dev/tty44  /dev/tty49  /dev/tty53  /dev/tty58  /dev/tty62  /dev/ttyAMA0
/dev/tty0   /dev/tty13  /dev/tty18  /dev/tty22  /dev/tty27  /dev/tty31  /dev/tty36  /dev/tty40  /dev/tty45  /dev/tty5   /dev/tty54  /dev/tty59  /dev/tty63  /dev/ttyprintk
/dev/tty1   /dev/tty14  /dev/tty19  /dev/tty23  /dev/tty28  /dev/tty32  /dev/tty37  /dev/tty41  /dev/tty46  /dev/tty50  /dev/tty55  /dev/tty6   /dev/tty7   /dev/ttyUSB0
/dev/tty10  /dev/tty15  /dev/tty2   /dev/tty24  /dev/tty29  /dev/tty33  /dev/tty38  /dev/tty42  /dev/tty47  /dev/tty51  /dev/tty56  /dev/tty60  /dev/tty8
/dev/tty11  /dev/tty16  /dev/tty20  /dev/tty25  /dev/tty3   /dev/tty34  /dev/tty39  /dev/tty43  /dev/tty48  /dev/tty52  /dev/tty57  /dev/tty61  /dev/tty9
pi@raspberrypi:~ $ lsusb
Bus 001 Device 009: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 001 Device 005: ID 0424:7800 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@raspberrypi:~ $ ls /dev
autofs           fb0        kmsg   loop-control      network_latency     ram12  ram8     stdin   tty15  tty24  tty33  tty42  tty51  tty60      uhid     vcs3   vcsa5     vcsu5
block            fd         log    mapper            network_throughput  ram13  ram9     stdout  tty16  tty25  tty34  tty43  tty52  tty61      uinput   vcs4   vcsa6     vcsu6
btrfs-control    full       loop0  media0            null                ram14  random   tty     tty17  tty26  tty35  tty44  tty53  tty62      urandom  vcs5   vcsa7     vcsu7
bus              fuse       loop1  mem               ppp                 ram15  raw      tty0    tty18  tty27  tty36  tty45  tty54  tty63      v4l      vcs6   vcsm      vhci
cachefiles       gpiochip0  loop2  memory_bandwidth  ptmx                ram2   rfkill   tty1    tty19  tty28  tty37  tty46  tty55  tty7       vchiq    vcs7   vcsm-cma  video10
char             gpiochip1  loop3  mmcblk0           pts                 ram3   serial   tty10   tty2   tty29  tty38  tty47  tty56  tty8       vcio     vcsa   vcsu      video11
console          gpiomem    loop4  mmcblk0p1         ram0                ram4   serial1  tty11   tty20  tty3   tty39  tty48  tty57  tty9       vc-mem   vcsa1  vcsu1     video12
cpu_dma_latency  hwrng      loop5  mmcblk0p2         ram1                ram5   shm      tty12   tty21  tty30  tty4   tty49  tty58  ttyAMA0    vcs      vcsa2  vcsu2     watchdog
cuse             initctl    loop6  mqueue            ram10               ram6   snd      tty13   tty22  tty31  tty40  tty5   tty59  ttyprintk  vcs1     vcsa3  vcsu3     watchdog0
disk             input      loop7  net               ram11               ram7   stderr   tty14   tty23  tty32  tty41  tty50  tty6   ttyUSB0    vcs2     vcsa4  vcsu4     zero
Avatar utente
Foto Utentega2bo
10 5
New entry
New entry
 
Messaggi: 80
Iscritto il: 10 mar 2020, 0:46

0
voti

[6] Re: Come collegare l'arduino nano a Raspberry

Messaggioda Foto Utentexyz » 17 apr 2020, 10:54

Sotto Linux esisto diversi modi per sapere quando un device USB è collegato, ad esempio con il comando "dmesg".

Il chip seriale è un HL-340 e il device creato in quel momento è appunto "/dev/ttyUSB0" (potrebbe cambiare ad un successivo collegamento).

Per trasferire un firmware presente nel file "file.hex" col bootload di Arduino utilizzando Avrdude su di un microcontrollore ATmega328p collegato al devideve USB "/dev/ttyUSB0" il comando è questo:

Codice: Seleziona tutto
avrdude -v -p atmega328p -c arduino -P /dev/ttyUSB0 -b 57600 -D -U flash:w:file.hex:i

Se segnala errore i probabili motivi sono tanti, dal cavo USB rovinato al danneggiamento del bootloader di Arduino.
Avatar utente
Foto Utentexyz
6.445 2 4 5
G.Master EY
G.Master EY
 
Messaggi: 1698
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[7] Re: Come collegare l'arduino nano a Raspberry

Messaggioda Foto Utentega2bo » 17 apr 2020, 12:00

non credo che siano problemi di cavo o altro perche quando lo collego all'ide di arduino si collega senza problemi e mi fa eseguire i miei sketch

quindi penso sia solo il problema di processore sbagliato.

quindi il comando dovrebbe risolvere il problema, fosse solo quello???
Avatar utente
Foto Utentega2bo
10 5
New entry
New entry
 
Messaggi: 80
Iscritto il: 10 mar 2020, 0:46

0
voti

[8] Re: Come collegare l'arduino nano a Raspberry

Messaggioda Foto Utentega2bo » 17 apr 2020, 14:49

questo è quello che mi dice dopo avere dato il comando

Codice: Seleziona tutto
pi@raspberrypi:~ $ avrdude -v -p atmega328p -c arduino -P /dev/ttyUSB0 -b 57600 -D -U flash:w:file.hex:i

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/pi/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done.  Thank you.

Avatar utente
Foto Utentega2bo
10 5
New entry
New entry
 
Messaggi: 80
Iscritto il: 10 mar 2020, 0:46

0
voti

[9] Re: Come collegare l'arduino nano a Raspberry

Messaggioda Foto Utentexyz » 17 apr 2020, 16:35

Non riesce a comunicare col boolader di Arduino. Come ho detto prima i motivi sono tanti, ho solo elencato 2 semplici casi.
Avatar utente
Foto Utentexyz
6.445 2 4 5
G.Master EY
G.Master EY
 
Messaggi: 1698
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[10] Re: Come collegare l'arduino nano a Raspberry

Messaggioda Foto Utentega2bo » 17 apr 2020, 17:45

Ho poi provato a collegare un Arduino uno a Raspberry, ovviamente cambiando anche i parametri all'interno del makefile e funziona.
Avatar utente
Foto Utentega2bo
10 5
New entry
New entry
 
Messaggi: 80
Iscritto il: 10 mar 2020, 0:46

Prossimo

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti