Prima volta con Arduino - Arduino: 1.8.13 (Windows 10), Board: "Arduino Nano, ATmega328P"

Ho provato ad inserire uno Sketch (si dice cosi?) nell'Arduino Nano e mi ritorna questo errore: - "Motorino:34:10: fatal error: pins.h: No such file or directory
#include "pins.h"
^~~~~~~~
compilation terminated.
exit status 1
pins.h: No such file or directory"

Qualche anima gentile mi puo' aiutare?
Grazie comunque in qualsiasi modo rispondiate.
Un saluto!

Buonasera e benvenuto nella sezione Italiana del forum,

cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento, fai la tua presentazione NELL'APPOSITA DISCUSSIONE spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Grazie,

Guglielmo

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

Il compilatore ti sta segnalando che non trova un file, che dovrebbe far parte del tuo progetto e che dovrebbe trovarsi nella stessa cartella dove si trova il .ino ... il file che manca si chiama "pins.h" ... probabilmente un file dove vengono associati i nomi logici dei vari pin ai pin fisici.

Ricontrolla bene da dove hai preso il codice (eventualmente metti il link che guardiamo anche noi).

Guglielmo

Ok, grazie. Allego il messaggio di errore e anche il link.

Arduino: 1.8.13 (Windows 10), Board: "Arduino Nano, ATmega328P"

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\ginof\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\ginof\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\ginof\Documents\Arduino\libraries -fqbn=arduino:avr:nano:cpu=atmega328 -vid-pid=1A86_7523 -ide-version=10813 -build-path C:\Users\ginof\AppData\Local\Temp\arduino_build_201141 -warnings=more -build-cache C:\Users\ginof\AppData\Local\Temp\arduino_cache_907504 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -prefs=runtime.tools.avrdude.path=C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.avr-gcc.path=C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7 -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7 -verbose C:\Users\ginof\Documents\Arduino\Blink\Blink.ino

C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\ginof\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\ginof\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\ginof\Documents\Arduino\libraries -fqbn=arduino:avr:nano:cpu=atmega328 -vid-pid=1A86_7523 -ide-version=10813 -build-path C:\Users\ginof\AppData\Local\Temp\arduino_build_201141 -warnings=more -build-cache C:\Users\ginof\AppData\Local\Temp\arduino_cache_907504 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -prefs=runtime.tools.avrdude.path=C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.avr-gcc.path=C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7 -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7 -verbose C:\Users\ginof\Documents\Arduino\Blink\Blink.ino

Using board 'nano' from platform in folder: C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5

Using core 'arduino' from platform in folder: C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5

Detecting libraries used...

"C:\Users\ginof\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Users\ginof\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\cores\arduino" "-IC:\Users\ginof\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.5\variants\eightanaloginputs" "C:\Users\ginof\AppData\Local\Temp\arduino_build_201141\sketch\Blink.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE

Alternatives for pins.h: []

ResolveLibrary(pins.h)

-> candidates: []Motorino:34:10: fatal error: pins.h: No such file or directory

#include "pins.h"

      ^~~~~~~~

compilation terminated.

exit status 1

pins.h: No such file or directory

Link: pypilot/arduino/motor at master · McNugget6750/pypilot · GitHub

Grazie ancora e speriamo di caricare sto' benedetto skecht!

Perdona ma il link che hai messo NON è relativo ad un programma per Arduino IDE (e comunque il file pins.h è presente e lo vedi) e non c'è alcun .ino che deve esserci ... in che ambiente lo stai caricando ???

Guglielmo

Hai ragione, sono diventato ceco io ... :face_with_peeking_eye:

Guglielmo

... e comunque il programma compila (appena provato), anche se con un bel po' di "warning" ... ovviamente tutti i files devono essere nella cartella "motor" dove c'è il "moror.ino" ed occorre installare le varie librerie per il display.

C'è però un problema ...

sketch uses 32662 bytes (106%) of program storage space. Maximum is 30720 bytes.
Global variables use 872 bytes (42%) of dynamic memory, leaving 1176 bytes for local variables. Maximum is 2048 bytes.

text section exceeds available space in board
Sketch too big; see https://support.arduino.cc/hc/en-us/articles/360013825179 for tips on reducing it.
Error compiling for board Arduino Nano.

Il codice generato è troppo grande per Arduino Nano ... magari bisogna andare a correggere qualche parametro ... comunque, compilare compila!

Guglielmo

Ok, a questo link spiega che e' per Arduino Nano con avvertimenti che io purtroppo non so interpretare. Aspetto con impazienza il Vs. aiuto, Grazie in anticipo.

Link: pypilot/arduino/motor/data al master · McNugget6750/pypilot · GitHub

Quegli avvertimenti sono un problema secondario che non ha nulla a che vedere né con il problema che incontri tu né con il fatto che il compilato sia troppo grande per Arduino nano.

Bisogna prima risolvere questi due punti e poi ... passare a quegli avvertimenti che parlano di tutt'altro.

Guglielmo

Ok, mi chiedo: se ha funzionato per l'autore, dovrebbe funzionare anche per me. Magari sbaglio la procedura di caricamento dello skecth. Vado in: pypilot/motor.ino presso master · McNugget6750/pypilot · GitHub copio tutta la pagina e la salvo sul mio computer (formato motorino file.txt) cambio il file in motorino.ino e lo clikko. Si apre Arduino, controllo che sia il Nano e la porta giusta. A questo punto vado su verify e mi da' l'errore.
Spero di essermi spiegato (ho la scheda del pilota pronta e vorrei vedere il mio pilota funzionare). Grazie ancora se vorrete darmi una mano.

NO, non puoi fare così ... devi andare nella pagina principale del progetto, in alto a sinistra c'è il bottone verde "Code", selezioni "download zip", scompatti lo zip e dentro trovi la cartella "arduino" con dentro la cartella "motor" con TUTTI i files che servono (mica solo motor.ino). Prendi tutta quella cartella ... è quella che ti serve.

O idea che dovrai studiarti bene tutti i vari files ... specie il file config.h che, mi sembra, contiene tutta una serie di importati parametri!

Guglielmo

P.S.: Vista però la complessità del progetto e vista la tua scarsissima esperienza, ti suggerisco il REGOLAMENTO, punto 16.1 ... ci sono una serie di link da studiare perché altrimenti ... la vedo dura ... :roll_eyes:

... ho idea che ... dovrai aspettare parecchio ... :roll_eyes:

Guglielmo

Mah ... secondo me quel programma NON è compilabile dall'IDE attuale ...
... contiene un makefile che richiama vari moduli che si trovano dentro la cartella arduino dell'IDE, ma alcune cose non mi tornano.

Io ho installato la 1.8.9 e la cartella Arduino, ad esempio, NON contiene questa roba qui:

/hardware/arduino/cores/arduino/avr-libc/realloc.c

... intanto dopo /hardware/arduino/ ci va 'avr', quindi /hardware/arduino/avr/, dopo di che, nella cores/arduino NON c'è la cartella avr-libc con i sorgenti della AVR libc da compilare.

Non ho idea cosa installi, sotto Linux, con il comando:

sudo apt install arduino

... ma dubito che oggi installi qualche cosa di diverso ... e mi sa che è roba vecchia (tre anni almeno) che oggi diventa complesso riuscire a compilare senza la dovuta esperienza, scaricando a mano tutti i moduli necessari e creando la configurazione voluta per la compilazione.

Guglielmo

Guarda una mano te la darei volentieri ma ...

  1. NON si tratta di un progetto per Arduino IDE, ma ensì per una configurazione Arduino particolare che, all'epoca (tre anni fa) si installava probabilmente sotto Linux.

  2. Usa un "makefile" che va a cercare cose che nella cartella Arduino di oggi non ci sono

  3. i sorgenti fanno oltrettuto riferimento a cose deprecate

  4. ho provato a creare un mini ambiente sulla mia macchina (macOS) ma vedo che creca cose in directory particolari ed anche modificando il makefile mi da errore

Insomma, onestamente, io non so come aiutarti ... magari qualcuno che ha Linux, verifca la cosa e vede se è un progetto ancora compilabile anche su altre piattaforme (... e come).

Guglielmo

Ok grazie Guglielmo. Provero' con un'amico con Linux. E vedo dove arrivo.
Una domanda per voi esperti: e' possibile trasformare il file "motorino.ino" (lo sketch) in file binario da caricare su arduino con "XLoader"? Lo chiedo perche (sempre col copia incolla) per un'altro programma si poteva caricare lo sketch su Arduino oppure con Xloader con lo stesso file binario: Cosa che ho eseguito senza problemi di installazione in Arduino.
Di nuovo grazie e buon vento a tutti. Una risposta a questo ultimo quesito e' gradita.
pm: ora studiero' con piu' calma il mondo di Arduino...sperem!

il file binario si ottiene dalla compilazione e quindi ... se non si riesce a compilare, non si ha alcun file binario :roll_eyes:

Guglielmo

Ok, grazie 1000 x la cortesia e saluti:

Allora, il Makefile non è compatibile con la versione attuale di arduino IDE 1.8.19. Però Arduino IDE è in grado di compilare correttamete tutti i file presenti nella cartella motor.
Io non ho le librerie:
#include <Adafruit_GFX.h> // Core graphics library
#include <TFT_ST7735.h> // Hardware-specific library

Queste sono installabili da IDE arduino facilmente.
Dopo l'installazione basta aprire il file motor.ino e tutti gli altri verranno aperti in altre tab. Ora si può avviare la compilazione (senza scrittura dello sketch).

Ciao.

Ma lo hai letto il mio post #8 ? :open_mouth:

Ovvio che si può aprire il .ino e compilare ... peccato che ...

Guglielmo

P.S.: Il makefile va a pescare solo alcune cose, compilando i sorgenti e NON usando nulla di pre-compilato così da, probabilmente, ridurre al minimo quello che usa ...

Certo che l'ho letto. Però non capisco perché questa differenza:

Uso la libreria Adafruit_GFX_Library alla versione 1.11.3 nella cartella: /home/mauro/devel/arduino-1.8.19/portable/sketchbook/libraries/Adafruit_GFX_Library 
Uso la libreria Adafruit_BusIO alla versione 1.13.2 nella cartella: /home/mauro/devel/arduino-1.8.19/portable/sketchbook/libraries/Adafruit_BusIO 
Uso la libreria Wire alla versione 1.0 nella cartella: /home/mauro/devel/arduino-1.8.19/hardware/arduino/avr/libraries/Wire 
Uso la libreria SPI alla versione 1.0 nella cartella: /home/mauro/devel/arduino-1.8.19/hardware/arduino/avr/libraries/SPI 
Uso la libreria Adafruit_ST7735_and_ST7789_Library alla versione 1.9.3 nella cartella: /home/mauro/devel/arduino-1.8.19/portable/sketchbook/libraries/Adafruit_ST7735_and_ST7789_Library 
/home/mauro/devel/arduino-1.8.19/hardware/tools/avr/bin/avr-size -A /tmp/arduino_build_434225/motor.ino.elf
Lo sketch usa 23704 byte (77%) dello spazio disponibile per i programmi. Il massimo è 30720 byte.
Le variabili globali usano 941 byte (45%) di memoria dinamica, lasciando altri 1107 byte liberi per le variabili locali. Il massimo è 2048 byte.

Tra l'altro non compilava poiché ST7735_DARKGREY non è una macro presente Adafruit_ST7735.h e allora l'ho sostituito con ST7735_GREEN. Ho modificato il file status_display.cpp:

//TFT_ST7735 tft = TFT_ST7735();       // Invoke custom library - insanely fast alternative! https://github.com/Bodmer/TFT_ST7735
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

void display_init(void)
{
  tft.initR(INITR_BLACKTAB);   // initialize a ST7735S chip, black tab  
  //tft.init();

PS: comunque di cose da configurare ne ha parecchie, però almeno compila ed è un buon segno.
Ciao.