Progetto 13 Lampada emotiva

Ciao a tutti, ho bisogno di una mano perchè non riesco nemmeno a compilare gli sketches che si trovano in IDE.
Ho realizzato il circuito del progetto 13 dal libro ArduinoStarterkit e fin qui credo nessun problema. Ma i miei guai iniziano ancora prima; quando carico il programma ( non cambio assolutamente nulla ) dagli esempi ( quindi è già fatto ) non riesco nemmeno a compilarlo . Mi dice che non trova il file capacitivesensor.cpp che invece è dove deve essere. Cosa posso fare ? So che la domanda è abbastanza sciocca, ma se capisco come fare poi non disturbo più :o
Vi ringrazio in anticipo, buona giornata

Immagino tu stia parlando dello StarterKit ufficiale ...

Quel codice (che è comunque segnato come di livello medio/alto) richiede l'installazione di una "libreria". Nell'IDE vai in "Sketch -> Include Library", la prima riga è "Manage Libraries" che apre il "library manager" di Arduino.

Tramite l'apposita riga, in alto a destra, cerca la libreria "capacitivesensor", ti appariranno un paio di possibilità, seleziona la prima e fai click su "Install" ... e la libreria verrà installata automaticamente nel posto giusto.

A questo punto non dovresti avere più problemi a compilare.

Guglielmo

Sì certo lo starter kit ufficiale.
Questo è il dettaglio del messaggio di errore che mi dà

Arduino:1.8.5 (Windows 10), Scheda:"Arduino/Genuino Uno"

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\clara\OneDrive\Documenti\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10805 -build-path C:\Users\clara\AppData\Local\Temp\arduino_build_474935 -warnings=none -build-cache C:\Users\clara\AppData\Local\Temp\arduino_cache_138066 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\clara\AppData\Local\Temp\arduino_modified_sketch_152241\p13_TouchSensorLamp.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\clara\OneDrive\Documenti\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10805 -build-path C:\Users\clara\AppData\Local\Temp\arduino_build_474935 -warnings=none -build-cache C:\Users\clara\AppData\Local\Temp\arduino_cache_138066 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\clara\AppData\Local\Temp\arduino_modified_sketch_152241\p13_TouchSensorLamp.ino
Using board 'uno' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Detecting libraries used...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\clara\AppData\Local\Temp\arduino_build_474935\sketch\p13_TouchSensorLamp.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\clara\OneDrive\Documenti\Arduino\libraries\CapacitiveSensor" "C:\Users\clara\AppData\Local\Temp\arduino_build_474935\sketch\p13_TouchSensorLamp.ino.cpp" -o "nul"
Generating function prototypes...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\clara\OneDrive\Documenti\Arduino\libraries\CapacitiveSensor" "C:\Users\clara\AppData\Local\Temp\arduino_build_474935\sketch\p13_TouchSensorLamp.ino.cpp" -o "C:\Users\clara\AppData\Local\Temp\arduino_build_474935\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\clara\AppData\Local\Temp\arduino_build_474935\preproc\ctags_target_for_gcc_minus_e.cpp"
Sto compilando lo sketch...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\clara\OneDrive\Documenti\Arduino\libraries\CapacitiveSensor" "C:\Users\clara\AppData\Local\Temp\arduino_build_474935\sketch\p13_TouchSensorLamp.ino.cpp" -o "C:\Users\clara\AppData\Local\Temp\arduino_build_474935\sketch\p13_TouchSensorLamp.ino.cpp.o"
Compiling libraries...
Compiling library "CapacitiveSensor"
Uso la libreria CapacitiveSensor nella cartella: C:\Users\clara\OneDrive\Documenti\Arduino\libraries\CapacitiveSensor (legacy)
readlink C:\Users\clara\OneDrive\Documenti\Arduino\libraries\CapacitiveSensor\CapacitiveSensor.cpp: Impossibile trovare il file specificato.
Errore durante la compilazione per la scheda Arduino/Genuino Uno.

Ho caricato la libreria aggiornata, ma niente da fare

Cortesemnete puoi mettere qui il codice che stai cercando di compilare perché a me NON da alcun errore, ah … mi raccomando, in conformità al regolamento, punto 7, il codice racchiuso tra i tag CODE che, in fase di edit, ti inserisce il bottone </> … primo a sinistra.

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati. Grazie.

Guglielmo

Ecco il codice come lo trovo negli esempi
Immagino che non debba dare alcun errore, ma a me dice che non trova il file .cpp mentre c’è nella posizione indicata

Ps va bene come l’ho inserito ? con i due code all’inizio e alla fine ?

/*
  Arduino Starter Kit example
  Project 13 - Touch Sensor Lamp

  This sketch is written to accompany Project 13 in the Arduino Starter Kit

  Parts required:
  - 1 megohm resistor
  - metal foil or copper mesh
  - 220 ohm resistor
  - LED

  Software required :
  - CapacitiveSensor library by Paul Badger
    http://www.arduino.cc/playground/Main/CapacitiveSensor

  created 18 Sep 2012
  by Scott Fitzgerald

  http://www.arduino.cc/starterKit

  This example code is part of the public domain.
*/

// import the library (must be located in the Arduino/libraries directory)
#include <CapacitiveSensor.h>

// create an instance of the library
// pin 4 sends electrical energy
// pin 2 senses senses a change
CapacitiveSensor capSensor = CapacitiveSensor(4, 2);

// threshold for turning the lamp on
int threshold = 1000;

// pin the LED is connected to
const int ledPin = 12;


void setup() {
  // open a serial connection
  Serial.begin(9600);
  // set the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // store the value reported by the sensor in a variable
  long sensorValue = capSensor.capacitiveSensor(30);

  // print out the sensor value
  Serial.println(sensorValue);

  // if the value is greater than the threshold
  if (sensorValue > threshold) {
    // turn the LED on
    digitalWrite(ledPin, HIGH);
  }
  // if it's lower than the threshold
  else {
    // turn the LED off
    digitalWrite(ledPin, LOW);
  }

  delay(10);
}

stranissimo, a me compila.

ancora una domanda (scusa se sembro pedante)

hai verificato il contenuto di questa cartella?

C:\Users\clara\OneDrive\Documenti\Arduino\libraries\CapacitiveSensor\

e li dentro c’è sia CapacitiveSensor.h che CapacitiveSensor.cpp?

Non sei affatto pedante, sono io che mi sento di un altro pianeta . Sì ho controllato, la cartella c'è col file nel percorso indicato .
Ho messo la foto del percorso negli attachments ( giusto perchè 4 occhi sono meglio di due)

mi arrendo

però c'è ancora una cosa, anche se forse non centra nulla, vedo che usi una cartella su OneDrive... non è che quella è in remoto e potrebbe dare dei problemi?

Ma tu hai in precedenza installato librerie "a mano" senza passare per il "library manager" ?

Se SI, ti do un consiglio, disintalla il tutto (salva prima i programmi che hai scritto), cancella tutte le directory temporanee che riguardano Arduino (come la C:\Users\clara\OneDrive\Documenti\Arduino), fatto questo scarica la versione 1.8.5 come .zip e NON come eseguibile !

Scompatta il .zip e metti la cartella arduino in una tua cartella dove hai la possibilità sia di leggere che di scrivere.

A questo punto, se vuoi fare una cosa veramente pulita, che evita spargimento di files per tutto il disco, di consiglio di modificare l'installazione affinché diventi "sandboxed" ovvero chiusa su se stessa ed indipendente da qualsiasi altra cosa tu abbia sul disco (che è un'ottima cosa se, ad esempio, si vogliono avere più installazioni dell'IDE, magari di differenti versioni, l'una indipendente dall'altra).

Per fare questo è sufficiente che, prima di lanciare questa tua nuova installazione, tu vada nella cartella arduino (dove l'hai messa) e crei, all'interno, una cartella di nome "portable".

In questo modo, la tua cartella di lavoro verrà creata li dentro , così come anche tutte le librerie e gli eventali "core" aggiuntivi, senza spargere nulla per il disco.

Lancia pure la nuova installazione e, dal "library manager", installa le librerie che ti occorrono.

Prendi i programmi e prova a compilarli, se hai fatto tutto bene NON dovresti più avere problemi :wink:

Guglielmo

Patrick_M:
però c’è ancora una cosa, anche se forse non centra nulla, vedo che usi una cartella su OneDrive… non è che quella è in remoto e potrebbe dare dei problemi?

… oltre la copia “remota”, accessibile da ovunque, c’è sempre una copia “locale” (… come con “dropbox”), dove veramente lavori.

Tutte le mie cartelle di “sviluppo” sono su “dropbox”, ma, per Arduino, è una cartella locale come le altre, solo che ha il vantaggio di essere sincronizzata in rete.

Guglielmo

gpb01:
... oltre la copia "remota", accessibile da ovunque, c'è sempre una copia "locale" (... come con "dropbox"), dove veramente lavori.

Tutte le mie cartelle di "sviluppo" sono su "dropbox", ma, per Arduino, è una cartella locale come le altre, solo che ha il vantaggio di essere sincronizzata in rete.

Guglielmo

tenghiu :smiley:

Guglielmo, grazie mille !!!! Adesso funziona