Che Genere di Modellista?: Statico e dinamico. Statico: Warhammer e simili (28 heroic), Aerei 1/72, auto 1/24 e diorami di qualsiasi tipo mi vengano in mente Dinamico: Drift & Scaler 1/10
nannolo ha scritto: ↑1 giugno 2021, 19:26
scusami ma e' stata la prima volta per me che ho usato arduino...
Nei prossimi aggiornamenti posto anche il listato così forse mi faccio capire di piu'...
Te che problema hai avuto esattamente?
Tranquillo, anzi grazie per la risposta esaustiva.
Anche io sono alle prime armi con Arduino e, documentandomi in giro per un progetto a cui sto lavorando, ho letto in diversi lamentarsi di problemi di incompatibilità con il dfplayer, molti dovuti alla compatibilità con la scheda microSD (ho letto che schede oltre i 2gb non vengono supportate, e vai a trovarle nel 2020 microsd così ) e di compatibilità di file audio...
Ho sentito parlare bene delle Raspberry come sostituta ad Arduino
IWATA...Nothing else for successful goals!
<<L'uomo è la misura di tutte le cose, di quelle che sono in quanto sono e di quelle che non sono in quanto non sono.>>
[Πρωταγόρας - Protagora 486-411 a.C.]
Che Genere di Modellista?: Statico e dinamico. Statico: Warhammer e simili (28 heroic), Aerei 1/72, auto 1/24 e diorami di qualsiasi tipo mi vengano in mente Dinamico: Drift & Scaler 1/10
FreestyleAurelio ha scritto: ↑3 giugno 2021, 8:54
Ho sentito parlare bene delle Raspberry come sostituta ad Arduino
Mmmmmm sono prodotti "simili", ma lavorano in modi e ambienti abbastanza diversi.
Arduino è un microcontrollore, il Raspberry è proprio un "mini pc" su scheda, con uscita video etc.
Diciamo che, anche in relazione al costo, per progetti simili il Raspberry è abbastanza sprecato.
Che Genere di Modellista?: appassionato di modelli star wars ma riesco a fare danni anche in in altri campi. L'importante e' creare qualcosa e mettersi alla prova ogni volta cercando di imparare sempre cose nuove.
Cafe89 ha scritto: ↑1 giugno 2021, 19:33
Tranquillo, anzi grazie per la risposta esaustiva.
Anche io sono alle prime armi con Arduino e, documentandomi in giro per un progetto a cui sto lavorando, ho letto in diversi lamentarsi di problemi di incompatibilità con il dfplayer, molti dovuti alla compatibilità con la scheda microSD (ho letto che schede oltre i 2gb non vengono supportate, e vai a trovarle nel 2020 microsd così ) e di compatibilità di file audio...
io ho usato una sandisk da 16 gb e non ha dato problemi. I file audio sono MP3.
Per quanto riguarda arduino ho preferito usare questo microcontrollore anche perche' con 12 euro ho acquistato 3 arduino nano su amazon.
Se ti puo' essere utile questo e' lo schetch che ho scritto. Non e' assolutamente ne' pulito ne' ottimizzato, visto che man mano che andavo avanti aggiungevo pezzi e opzioni. Da un semplice lampeggio ho aggiunto prima i suoni, poi il BT e infine la app per il cell... Inoltre sono un po' arrugginito nella programmazione... ero rimasto al visual basic e al AS400 dei tempi della università...
Cmq spero sia un poco comprensibile
( per il listato aprire lo spoiler..)
► Mostra testo
// carica librerie
#include <SoftwareSerial.h>
#include "DFRobotDFPlayerMini.h"
//#include "Arduino.h"
//prepara le due seriali software
SoftwareSerial SSerial(7, 8);// seriale software per BT
DFRobotDFPlayerMini myDFPlayer;
SoftwareSerial mySoftwareSerial(10, 11); // // seriale software per mp3
// duchiarazioni costanti DFplayer
int buusyPin = 12; // pin per sound player busy
int bsy = 0;// DFplayer ;se 0 sta riproducendo mp3 , se 1 ha finito
//**********************************************fine
//dichiarazioni costanti lampeggio
unsigned long t1, dt1; //tempo millis e intervallo
unsigned long t2, dt2,t3,dt4,t4;//
int stato = LOW; // stato pulsante
int lampo = 0 ; // sstadio lampeggio+
int numlampo =0;
int tled1 =80; //lunghezza lampo accensione primo tratto led
int tled2 = 170;//lunghezza lampo accensione secondo tratto led
int tled4 = 85;
int tascolto=4000 ;
//************************************fine
int fase=0;
bool redo= false ; // costante per ripetizione luci intermittenti
bool stai = false; // per alternare stato pulsante per luci fisse
int pwm=6; // valore dello switch da assegnare al volume
// ***********************
void setup() {
delay (2000);
Serial.begin(9600); // serial monitor per debug
Serial.println("ok");
SSerial.begin(9600);
mySoftwareSerial.begin(9600);
// check errori mp3 da togliere
Serial.println();
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3.
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while (true);
}
Serial.println(F("DFPlayer Mini online."));
// fine check
}
String str = "";
void loop() {
SSerial.listen ();
Serial.print( "bt in ascolto" );
switch(fase){
case 0:
inizio();
break;
case 5:
tutto();
break;
case 10:
luci();
break;
case 20:
fisse();
break;
}
}
void inizio () {
SSerial.listen (); // ascolto seriale per tasti
Serial.print( "bt in ascolto" );
if (SSerial.available()) {
Serial.print ( " available");
char ch = SSerial.read(); // legge il valore che viene dalla seriale
Serial.println(ch);
if ( (ch == '\n') || (ch == '\r') ) { // se il carattere e' di invio allora manda alla funzione cmd
cmd(str);
str = "";
} else {
str += ch; // altrimenti accoda alla stringa
}
}
}
void tutto (){
mySoftwareSerial.listen(); // ascolta la seriale del mp3 player
Serial.print("mp3 in ascolto");
bsy=0; //imposta il pin del player che indica se in funzione a 0
numlampo = 0; // variabile che conta il numero del lampo fatto
lampo = 0 ; // variabile che indica la fase del lampeggio per ogni ciclo
delay(100);
t2 = millis(); // assegna a t2 il valore del tempo passato
t3 = (t2 + 9270 ); // dice dopo quanto della musica deve iniziare il lampeggio
// primo lampeggio da 6
while (bsy ==0 ){ // finche il player e' in funzione
myDFPlayer.play(1); // apre la traccia audio
while (numlampo < 6 ) {
t2 = millis();
if (t2 >= t3) { // e' ora di iniziare il lampeggio
bsy = digitalRead(buusyPin); // controlla se il player ha finito
}
if (myDFPlayer.available()) {
printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states.
}
if (bsy =1){ // se ha finito torna a inizio()
fase = 0;
String str = "";
// "finito tutto"
}
}
delay(4000); // pausa tra un lampeggio e l'altro
//dt4 = millis () -t4;
//if (dt4 < tascolto){
inizio();
Serial.print("aspetto ||||||||||||||||||||||||||||");
t4=millis();
//}
numlampo = 0;
String str = "";
if (redo==true) { // controlla se lo switch e' stato pigiato. Se non e' atato toccato ripete il lampeggio
fase = 10;}
else if (redo==false){
fase =0;
}
}
// solo luci fisse per foto
void fisse() {
if (stai == true) { // controlla se lo switch e' stato azionato
digitalWrite(4, HIGH);
digitalWrite(3, HIGH );
String str = "";
fase =0;
}
if (stai ==false) {
void cmd(String str) {
char c = str.charAt(0);
if (c == 'a') {
Serial.println("a");
// fai luci e suoni
fase=5;
} else if (c == 's') {
redo=!redo ; // ogni volta che si pigia cambia stato
// solo luci intermittenti
fase=10;
} else if (c == 'x') {
stai=! stai;
// solo luci fisse
fase=20 ;
} else if (c == 'p') {
mySoftwareSerial.listen(); // se si e' toccato il volume si mette in ascolto la seriale mp3
String n = str.substring(2); // si leggono solo le cifre
int pwm = (int)n.toInt();
myDFPlayer.volume(pwm);//Set volume value. From 0 to 30
delay (600);
inizio();
}
}
// comunicazione problemi mp3
void printDetail(uint8_t type, int value) {
switch (type) {
case TimeOut:
Serial.println(F("Time Out!"));
break;
case WrongStack:
Serial.println(F("Stack Wrong!"));
break;
case DFPlayerCardInserted:
Serial.println(F("Card Inserted!"));
break;
case DFPlayerCardRemoved:
Serial.println(F("Card Removed!"));
break;
case DFPlayerCardOnline:
Serial.println(F("Card Online!"));
break;
case DFPlayerPlayFinished:
Serial.print(F("Number:"));
Serial.print(value);
Serial.println(F(" Play Finished!"));
break;
case DFPlayerError:
Serial.print(F("DFPlayerError:"));
switch (value) {
case Busy:
Serial.println(F("Card not found"));
break;
case Sleeping:
Serial.println(F("Sleeping"));
break;
case SerialWrongStack:
Serial.println(F("Get Wrong Stack"));
break;
case CheckSumNotMatch:
Serial.println(F("Check Sum Not Match"));
break;
case FileIndexOut:
Serial.println(F("File Index Out of Bound"));
break;
case FileMismatch:
Serial.println(F("Cannot Find File"));
break;
case Advertise:
Serial.println(F("In Advertise"));
break;
default:
break;
}
break;
default:
break;
}
}
Ricreare un modello in scala permette di allontanarci quel tanto che basta per osservare la realtà circostante dal corretto punto di vista.
Non perdere la pazienza, anche se può sembrare impossibile, è già pazienza (proverbio giapponese)
Non si smette di giocare quando si invecchia.... Si invecchia quando si smette di giocare.
Che Genere di Modellista?: Statico e dinamico. Statico: Warhammer e simili (28 heroic), Aerei 1/72, auto 1/24 e diorami di qualsiasi tipo mi vengano in mente Dinamico: Drift & Scaler 1/10
nannolo ha scritto: ↑6 giugno 2021, 18:26
io ho usato una sandisk da 16 gb e non ha dato problemi. I file audio sono MP3.
Per quanto riguarda arduino ho preferito usare questo microcontrollore anche perche' con 12 euro ho acquistato 3 arduino nano su amazon.
Se ti puo' essere utile questo e' lo schetch che ho scritto. Non e' assolutamente ne' pulito ne' ottimizzato, visto che man mano che andavo avanti aggiungevo pezzi e opzioni. Da un semplice lampeggio ho aggiunto prima i suoni, poi il BT e infine la app per il cell... Inoltre sono un po' arrugginito nella programmazione... ero rimasto al visual basic e al AS400 dei tempi della università...
Cmq spero sia un poco comprensibile
( per il listato aprire lo spoiler..)
► Mostra testo
// carica librerie
#include <SoftwareSerial.h>
#include "DFRobotDFPlayerMini.h"
//#include "Arduino.h"
//prepara le due seriali software
SoftwareSerial SSerial(7, 8);// seriale software per BT
DFRobotDFPlayerMini myDFPlayer;
SoftwareSerial mySoftwareSerial(10, 11); // // seriale software per mp3
// duchiarazioni costanti DFplayer
int buusyPin = 12; // pin per sound player busy
int bsy = 0;// DFplayer ;se 0 sta riproducendo mp3 , se 1 ha finito
//**********************************************fine
//dichiarazioni costanti lampeggio
unsigned long t1, dt1; //tempo millis e intervallo
unsigned long t2, dt2,t3,dt4,t4;//
int stato = LOW; // stato pulsante
int lampo = 0 ; // sstadio lampeggio+
int numlampo =0;
int tled1 =80; //lunghezza lampo accensione primo tratto led
int tled2 = 170;//lunghezza lampo accensione secondo tratto led
int tled4 = 85;
int tascolto=4000 ;
//************************************fine
int fase=0;
bool redo= false ; // costante per ripetizione luci intermittenti
bool stai = false; // per alternare stato pulsante per luci fisse
int pwm=6; // valore dello switch da assegnare al volume
// ***********************
void setup() {
delay (2000);
Serial.begin(9600); // serial monitor per debug
Serial.println("ok");
SSerial.begin(9600);
mySoftwareSerial.begin(9600);
// check errori mp3 da togliere
Serial.println();
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3.
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while (true);
}
Serial.println(F("DFPlayer Mini online."));
// fine check
}
String str = "";
void loop() {
SSerial.listen ();
Serial.print( "bt in ascolto" );
switch(fase){
case 0:
inizio();
break;
case 5:
tutto();
break;
case 10:
luci();
break;
case 20:
fisse();
break;
}
}
void inizio () {
SSerial.listen (); // ascolto seriale per tasti
Serial.print( "bt in ascolto" );
if (SSerial.available()) {
Serial.print ( " available");
char ch = SSerial.read(); // legge il valore che viene dalla seriale
Serial.println(ch);
if ( (ch == '\n') || (ch == '\r') ) { // se il carattere e' di invio allora manda alla funzione cmd
cmd(str);
str = "";
} else {
str += ch; // altrimenti accoda alla stringa
}
}
}
void tutto (){
mySoftwareSerial.listen(); // ascolta la seriale del mp3 player
Serial.print("mp3 in ascolto");
bsy=0; //imposta il pin del player che indica se in funzione a 0
numlampo = 0; // variabile che conta il numero del lampo fatto
lampo = 0 ; // variabile che indica la fase del lampeggio per ogni ciclo
delay(100);
t2 = millis(); // assegna a t2 il valore del tempo passato
t3 = (t2 + 9270 ); // dice dopo quanto della musica deve iniziare il lampeggio
// primo lampeggio da 6
while (bsy ==0 ){ // finche il player e' in funzione
myDFPlayer.play(1); // apre la traccia audio
while (numlampo < 6 ) {
t2 = millis();
if (t2 >= t3) { // e' ora di iniziare il lampeggio
bsy = digitalRead(buusyPin); // controlla se il player ha finito
}
if (myDFPlayer.available()) {
printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states.
}
if (bsy =1){ // se ha finito torna a inizio()
fase = 0;
String str = "";
// "finito tutto"
}
}
delay(4000); // pausa tra un lampeggio e l'altro
//dt4 = millis () -t4;
//if (dt4 < tascolto){
inizio();
Serial.print("aspetto ||||||||||||||||||||||||||||");
t4=millis();
//}
numlampo = 0;
String str = "";
if (redo==true) { // controlla se lo switch e' stato pigiato. Se non e' atato toccato ripete il lampeggio
fase = 10;}
else if (redo==false){
fase =0;
}
}
// solo luci fisse per foto
void fisse() {
if (stai == true) { // controlla se lo switch e' stato azionato
digitalWrite(4, HIGH);
digitalWrite(3, HIGH );
String str = "";
fase =0;
}
if (stai ==false) {
void cmd(String str) {
char c = str.charAt(0);
if (c == 'a') {
Serial.println("a");
// fai luci e suoni
fase=5;
} else if (c == 's') {
redo=!redo ; // ogni volta che si pigia cambia stato
// solo luci intermittenti
fase=10;
} else if (c == 'x') {
stai=! stai;
// solo luci fisse
fase=20 ;
} else if (c == 'p') {
mySoftwareSerial.listen(); // se si e' toccato il volume si mette in ascolto la seriale mp3
String n = str.substring(2); // si leggono solo le cifre
int pwm = (int)n.toInt();
myDFPlayer.volume(pwm);//Set volume value. From 0 to 30
delay (600);
inizio();
}
}
// comunicazione problemi mp3
void printDetail(uint8_t type, int value) {
switch (type) {
case TimeOut:
Serial.println(F("Time Out!"));
break;
case WrongStack:
Serial.println(F("Stack Wrong!"));
break;
case DFPlayerCardInserted:
Serial.println(F("Card Inserted!"));
break;
case DFPlayerCardRemoved:
Serial.println(F("Card Removed!"));
break;
case DFPlayerCardOnline:
Serial.println(F("Card Online!"));
break;
case DFPlayerPlayFinished:
Serial.print(F("Number:"));
Serial.print(value);
Serial.println(F(" Play Finished!"));
break;
case DFPlayerError:
Serial.print(F("DFPlayerError:"));
switch (value) {
case Busy:
Serial.println(F("Card not found"));
break;
case Sleeping:
Serial.println(F("Sleeping"));
break;
case SerialWrongStack:
Serial.println(F("Get Wrong Stack"));
break;
case CheckSumNotMatch:
Serial.println(F("Check Sum Not Match"));
break;
case FileIndexOut:
Serial.println(F("File Index Out of Bound"));
break;
case FileMismatch:
Serial.println(F("Cannot Find File"));
break;
case Advertise:
Serial.println(F("In Advertise"));
break;
default:
break;
}
break;
default:
break;
}
}
Ottimo a sapersi, mi hai tolto un enorme peso per via della micro sd
Ho acquistato gli stessi nano anche io (elegoo), ma non credevo potessero montare il df, ancora meglio dato che me ne avanzano 2
Che Genere di Modellista?: appassionato di modelli star wars ma riesco a fare danni anche in in altri campi. L'importante e' creare qualcosa e mettersi alla prova ogni volta cercando di imparare sempre cose nuove.
aggiornamento ....
Una volta dato il colore base mi sono dedicato all'invecchiamento del falcon.
Ho utilizzato i colori ad olio della Abteilung. Per questi lavori li trovo ottimi perche' meno oleosi e piu' opachi dei colori classici. Non li amo molto invece per dipingere i figurini per i quali preferisco i windsor che hanno un pigmento piu' fine.
Per prima cosa ho effettuato un lavaggio con il terra di cassel per evidenziare i volumi.Poi dato un filtro su tutte le superfici con la tecnica del dot fading.
In pratica ho "puntinato" il modello con piccole quantità di olio di diversi colori. Poi con il pennello inumidito di diluente ho tirato e diffuso il colore cercando di rispettare la legge di gravità,seguendo le pendenze del modello. Il risultato e' un filtro non omogeneo per saturazione e intensità che da l'idea di uno sporco accumulato nel tempo.
I colori utilizzati sono stati lo starship filth, il dark rust, il basic earth e il faded navy blue. A parte il blu sono tutti colori caldi per dare questa tonalità al bianco di partenza.
Poi ho desaturato i pannelli con del faded grey e del dust( simile al deck tan...).
Tengo a precisare che sarebbero andati bene anche altri colori ad olio di altre marche. Io ho questi abteilung da parecchio tempo e li uso per l'invecchiamento ma basta anche sgrassare bene altri colori stendendoli su un cartoncino che assorbe l'olio in eccesso.
Tornando al modello, mi sono da ultimo dedicato a realizzare delle striature più marcate con lo starship filth ( simile ad un grigio tendente al marrone) .
Quindi ho lavorato sulle griglie fotoincise che ho preso per sostutuire quelle in plastica del kit.
Anche qui ho usato i colori ad olio con la tecnica del dry brush. Dopo un poco di rust sul metallo, ho usato lo starship filth per i fumi. Alcuni di voi potrebbero essere abituati ad altri modelli in cui sono realizzati molto piu' marcati. Ma bisogna ricordare che i contrasti sono molto esasperati dalle riprese del film in cui i bianchi e i neri sono piu' accentuati di quello che sono in realtà. Per questo mi sono fermato prima di esagerare troppo.
Insomma alla fine il risultato e' questo ( le foto schiacciano un po' le sfumature ma penso che qualcosa si veda lo stesso) :
Ora inizio a chiudere tutto posizionando le fibre e gli altri led...
Ricreare un modello in scala permette di allontanarci quel tanto che basta per osservare la realtà circostante dal corretto punto di vista.
Non perdere la pazienza, anche se può sembrare impossibile, è già pazienza (proverbio giapponese)
Non si smette di giocare quando si invecchia.... Si invecchia quando si smette di giocare.
grazie per le informazioni sugli Abteilung 502. Finora non li ho mai usati.
Off Topic
nannolo ha scritto: ↑1 giugno 2021, 19:26... Anche io ho iniziato come te... poi piano piano si sono aggiunti anche i sequel, i prequel, gli spin off... e ora ci stanno anche le serie a puntate... Mi tocca prendere un mese di ferie per vedere tutto ogni volta ...
microciccio
Nota: in una delle ultime foto ho notato che hai nascosto The Tamiya Menace!
Ho visto cose che voi umani non potete nemmeno immaginare...E tutti quei momenti andranno perduti come lacrime nella pioggia...
Nota: i siti linkati nei miei post hanno il solo scopo di mostrare i prodotti di cui si discute e non vogliono in alcun modo essere sollecitazioni all'acquisto.
<<L'uomo è la misura di tutte le cose, di quelle che sono in quanto sono e di quelle che non sono in quanto non sono.>>
[Πρωταγόρας - Protagora 486-411 a.C.]