Arpeggiatore con Arduino. Errore durante la compilazione per la scheda Arduino Mega or Mega 2560

Ciao! Sto facendo questo progetto, https://create.arduino.cc/projecthub/dra/arduino-midi-arpeggiator-3bd731. Ho finito i collegamenti, scaricato le varie librerie e tutto il resto, ma continuo ad avere dei problemi. Principalmente non carica il codice di arpeggiator2 perché Arduino mi dà error exit status 1. Ho provato anche con una scheda elegoo uno r3 ma nulla. Qualcuno può aiutarmi?

Buongiorno,

essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (…punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il succitato REGOLAMENTO ... Grazie.

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nel rispetto del suddetto regolamento nessuno ti risponderà (eventuali risposte verrebbero temporaneamente nascoste), quindi ti consiglio di farla al più presto. :wink:

Va bene, scusa ma non avevo letto! Provvedo subito

Se hai installato tutte le librerie, quindi la TImerOne e la MIDI dovrebbe almeno compilare.

Posta tutti gli errori all'interno del tag code (icona tra " e upload oppure premendo CTRL-E. Così vediamo dove si ferma e perché.

Grazie! Ti inoltro gli errori, spero di aver capito come funziona il tag code

C:\Users\Paola\Desktop\RUFA\ARDUINO\SYNTH-OSCILLATORI\Arpeggiatore_midi\arpeggio2-master\arpeggio2-master\main\main.ino: In function 'void updateControls()':
C:\Users\Paola\Desktop\RUFA\ARDUINO\SYNTH-OSCILLATORI\Arpeggiatore_midi\arpeggio2-master\arpeggio2-master\main\main.ino:81:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (mapped != state_machine.steps)
       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Paola\Desktop\RUFA\ARDUINO\SYNTH-OSCILLATORI\Arpeggiatore_midi\arpeggio2-master\arpeggio2-master\main\main.ino:102:28: warning: invalid conversion from 'int' to 'arp_style' [-fpermissive]
     state_machine.a_mode = mapped;
                            ^~~~~~
C:\Users\Paola\Desktop\RUFA\ARDUINO\SYNTH-OSCILLATORI\Arpeggiatore_midi\arpeggio2-master\arpeggio2-master\main\main.ino: In function 'void loop()':
C:\Users\Paola\Desktop\RUFA\ARDUINO\SYNTH-OSCILLATORI\Arpeggiatore_midi\arpeggio2-master\arpeggio2-master\main\main.ino:171:14: warning: unused variable 'i' [-Wunused-variable]
     unsigned i, r1, r2, played;
              ^

C:\Users\Paola\Documents\Arduino\libraries\arpeggio2-master\arpeggio.cpp: In member function 'unsigned char arpeggio::getNextNote(unsigned int*, unsigned int*, unsigned int*)':
C:\Users\Paola\Documents\Arduino\libraries\arpeggio2-master\arpeggio.cpp:22:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if (current_note == arp_sequence.size()-1)
             ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\Paola\Documents\Arduino\libraries\arpeggio2-master\arpeggio.cpp: In member function 'void arpeggio::addChordToSeq(chord)':
C:\Users\Paola\Documents\Arduino\libraries\arpeggio2-master\arpeggio.cpp:53:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (j=0; j<steps; j++)
                   ~^~~~~~
C:\Users\Paola\Documents\Arduino\libraries\arpeggio2-master\arpeggio.cpp:61:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (j=0; j<steps; j++)
                   ~^~~~~~
C:\Users\Paola\Documents\Arduino\libraries\arpeggio2-master\arpeggio.cpp:86:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (j=0; j<steps; j++)
                   ~^~~~~~
C:\Users\Paola\Documents\Arduino\libraries\arpeggio2-master\arpeggio.cpp:39:18: warning: unused variable 'i' [-Wunused-variable]
     unsigned int i, j, note_num=0, oct_shift = 0;
                  ^

In file included from C:\Users\Paola\Documents\Arduino\libraries\ArduinoSTL\src\limits.cpp:20:0:
C:\Users\Paola\Documents\Arduino\libraries\ArduinoSTL\src\limits:24:2: warning: #warning limits header is nowhere complete or accurate [-Wcpp]
 #warning limits header is nowhere complete or accurate
  ^~~~~~~
"C:\\Users\\Paola\\Documents\\ArduinoData\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Users\\Paola\\Documents\\ArduinoData\\packages\\arduino\\hardware\\avr\\1.8.5\\cores\\arduino" "-IC:\\Users\\Paola\\Documents\\ArduinoData\\packages\\arduino\\hardware\\avr\\1.8.5\\variants\\mega" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\TimerOne" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\MIDI_Library\\src" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\arpeggio2-master" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\ArduinoSTL\\src" "C:\\Users\\Paola\\Documents\\Arduino\\libraries\\ArduinoSTL\\src\\list.cpp" -o "C:\\Users\\Paola\\AppData\\Local\\Temp\\arduino_build_749497\\libraries\\ArduinoSTL\\list.cpp.o"
"C:\\Users\\Paola\\Documents\\ArduinoData\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Users\\Paola\\Documents\\ArduinoData\\packages\\arduino\\hardware\\avr\\1.8.5\\cores\\arduino" "-IC:\\Users\\Paola\\Documents\\ArduinoData\\packages\\arduino\\hardware\\avr\\1.8.5\\variants\\mega" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\TimerOne" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\MIDI_Library\\src" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\arpeggio2-master" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\ArduinoSTL\\src" "C:\\Users\\Paola\\Documents\\Arduino\\libraries\\ArduinoSTL\\src\\locale.cpp" -o "C:\\Users\\Paola\\AppData\\Local\\Temp\\arduino_build_749497\\libraries\\ArduinoSTL\\locale.cpp.o"
"C:\\Users\\Paola\\Documents\\ArduinoData\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Users\\Paola\\Documents\\ArduinoData\\packages\\arduino\\hardware\\avr\\1.8.5\\cores\\arduino" "-IC:\\Users\\Paola\\Documents\\ArduinoData\\packages\\arduino\\hardware\\avr\\1.8.5\\variants\\mega" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\TimerOne" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\MIDI_Library\\src" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\arpeggio2-master" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\ArduinoSTL\\src" "C:\\Users\\Paola\\Documents\\Arduino\\libraries\\ArduinoSTL\\src\\map.cpp" -o "C:\\Users\\Paola\\AppData\\Local\\Temp\\arduino_build_749497\\libraries\\ArduinoSTL\\map.cpp.o"
"C:\\Users\\Paola\\Documents\\ArduinoData\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Users\\Paola\\Documents\\ArduinoData\\packages\\arduino\\hardware\\avr\\1.8.5\\cores\\arduino" "-IC:\\Users\\Paola\\Documents\\ArduinoData\\packages\\arduino\\hardware\\avr\\1.8.5\\variants\\mega" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\TimerOne" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\MIDI_Library\\src" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\arpeggio2-master" "-IC:\\Users\\Paola\\Documents\\Arduino\\libraries\\ArduinoSTL\\src" "C:\\Users\\Paola\\Documents\\Arduino\\libraries\\ArduinoSTL\\src\\new_handler.cpp" -o "C:\\Users\\Paola\\AppData\\Local\\Temp\\arduino_build_749497\\libraries\\ArduinoSTL\\new_handler.cpp.o"
C:\Users\Paola\Documents\Arduino\libraries\ArduinoSTL\src\ArduinoSTL.cpp: In function 'int arduino_putchar(char, FILE*)':
C:\Users\Paola\Documents\Arduino\libraries\ArduinoSTL\src\ArduinoSTL.cpp:54:42: warning: unused parameter 'f' [-Wunused-parameter]
 static int arduino_putchar(char c, FILE* f) {
                                          ^
C:\Users\Paola\Documents\Arduino\libraries\ArduinoSTL\src\ArduinoSTL.cpp: In function 'int arduino_getchar(FILE*)':
C:\Users\Paola\Documents\Arduino\libraries\ArduinoSTL\src\ArduinoSTL.cpp:65:34: warning: unused parameter 'f' [-Wunused-parameter]
 static int arduino_getchar(FILE *f) {
                                  ^

new.cpp.o (symbol from plugin): In function `operator new(unsigned int)':
(.text+0x0): multiple definition of `std::nothrow'
C:\Users\Paola\AppData\Local\Temp\arduino_build_749497\libraries\ArduinoSTL\new_handler.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status

L'errore è qui, i messaggi precedenti sono solo avvertimenti.
Nella fase di collegamento il linker avr-ld trova una definizione multipla di:

std::nothrow

Ciò sembra dovuto principalmente alla libreria ArduinoSTL. Questa libreria non so se è richiesta dall'Arpeggiatore oppure può lavorare anche senza, devo controllare.

Ciao.

Scusa se ti rispondo solo ora.. Non so se ti può essere utile come informazione, ma quando rifeci il codice non sapendo quale libreria usare, installai sia arduinoSTL che arduinoAVRSTL
Può derivare da questo il problema? Magari vanno in conflitto loro due?

Ok, ricordo il post, ma i dettagli me li perdo, sarebbe bene accorciare i tempi.

Non dovrebbero andare in conflitto, cioè nel tuo sketch avrai una #include STL o AVRSTL e no entrambi. Tuttavia il modo gestire le libreria da arduino IDE non è quello standard C++ e qui mi perdo e non so dove puntare il dito. Questo dubbio possiamo togliercelo provando a disinstallare la lib che non usi nello skech.

Dimenticavo io nel progetto originale non ho trovato alcuna dipendenza verso STL o AVRSTL. Quindi presumo tu abbia modificato il progetto usando STL o AVRSTL. Se invece ho presunto male allora proverei a rimuovere entrambe le lib.

Ciao.

Ciao! Scusa se ti rispondo solo ora ma purtroppo non mi arrivano le notifiche.
Allora, sono riuscita a risolvere il problema semplicemente reinstallando la versione precedente di arduino, perché l'ultima non supporta quella libreria. Il codice sembra funzionare adesso, ma purtroppo non essendo un'esperta ancora non riesco bene a capire cosa non funzioni

In ogni caso, sul forum ci sono tre tipi diversi di codice per quel progetto, quindi penso che semplicemente abbia aperto uno dei primi, non l'ultimo che include la libreria STL

Grazie comunque di tutto!

Mamma mia come mi piace il caso ordinato. Progettino complesso direi. Intanto che sei riuscita a portare a termine il processo di compilazione senza errori e da considerare un passo determinante. Riguardo al codice io preferisco sempre i progetti che hanno un repositor tipo github, quindi se hai il link al progetto su github il creatore avrebbe dovuto specificare le dipendenze da librerie, normalmente è così che si fa.

Link, please, così quello che sai tu lo sappiamo entrambe.

Con tutto quel cablaggio non escluderei un errore, ma al momento non punto il dito.

Per le notifiche non so, io non le ho mai abilitate. Considera che entro 24/48 qualcuno risponde.
Ciao.

Questo è l'ultimo codice caricato dal signore che ha fatto il prototipo che sto seguendo.

Per il resto, come ti dicevo purtroppo non ho delle competenze troppo elevate di elettronica, quello che ti posso dire per certo è che nel momento in cui ho scattato la foto effettivamente funzionava, con il codice precedente però. Adesso non mi funziona nè il codice precedente né quello che ti ho linkato qui sopra, ma i collegamenti dovrebbero essere tutti giusti. Il mio timore è che sulla breadboard facciano contatto, infatti ora proverò a rifare per la seconda volta tutti i collegamenti su millefori.. Speriamo bene


Conta il numero di cavallotti, saranno parecchi quelli che usi, uno di questi potrebbe essere difettoso, come pure no, ma visto che è già accaduto io li testerei tutti uno per uno con il tester per la continuità, muovendo il filo in prossimità della crimpatura.

Per il codice, gli ho dato uno sguardo e si vedo usa vector ecc e quindi serve la STL. Ho intuito che arpeggia gli accordi maggiore minore.Non mi torna il delay(65); perché deve ritardare 65ms dopo avere ricevuto il sync?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.