venerdì 21 agosto 2015

Arduino Nano e usb2.0-serial

Nella foto ci sono i due cloni di Arduino Nano che ho nella mia collezione.
La prima a sinistra, l'ho comprata qualche tempo fa e non mi mai dato problemi.
Quella a destra invece e' un recentissimo acquisto e quando lo ho connessa ad Arduino IDE (sotto Windows e Mac) ho avuto la spiacevole sorpresa che non era presente la porta seriale e su Windows era richiesto il driver usb2.0-serial (i driver Arduino era gia' correttamente installati)



La soluzione risiede nell'installare i pacchetti scaricabili a questo indirizzo
http://www.arduined.eu/ch340g-converter-windows-7-driver-download/
perche' sui cloni Arduino recenti viene montato un convertitore CH340G USB/Serial al posto del normale FTDI

giovedì 20 agosto 2015

Midi over Usb con Arduino

Arduino non puo' diventare un vero e proprio dispositivo Midi a meno che non si faccia una modifica al firmware (nel qual caso poi non diventi poi piu' programmabile) ma puo' comunque inviare stringhe MIDI via seriale che sono poi convertite, via software, da programmi Serial->Midi.

Questa prova e' stata fatta su Mac ma in linea di principio e' ripetibile anche su Windows (con altri software) ma io non ci sono riuscito





(da importare la libreria Arduino Midi Library, codice modificato dal primo esempio)
-------------------------------------------------
#include <MIDI.h>

MIDI_CREATE_DEFAULT_INSTANCE();

#define LED 13      

void setup()
{
    pinMode(LED, OUTPUT);
    MIDI.begin(1);         
    Serial.begin(115200);
}

void loop()
{
        digitalWrite(LED,HIGH);
        MIDI.sendNoteOn(42,127,1);  // Send a Note (pitch 42, velo 127 on channel 1)
        delay(1000);        // Wait for a second
        MIDI.sendNoteOff(42,0,1);   // Stop the note
        digitalWrite(LED,LOW);
}
-------------------------------------------------

Poi si va in Applicazioni/Utility e si carica Configurazioni Midi Audio, Mostra Studio Midi Driver IAC e si attiva il driver

Per la conversione del segnale seriale derivante da Arduino in segnale Midi si puo' usare Hairless-MidiSerial. Il funzionamento e' quanto mai semplice. A sinistra si imposta la porta seriale dell'Arduino e sulla destra gli input ed output Midi (nel mio caso era solo un input in quanto Arduino spedisce solo dati)
Come destinatario del segnale Midi, non avendo altro a disposizione, ho provato Virtual Midi Piano Keyboard
Tramite questa catena e' possibile far suonare ad Arduino il pianoforte Midi




E' ovviamente noioso ma basta inserire un po' di pulsanti e riprogrammare Arduino per rendere tutto piu' interattivo

Samba su Centos 7

Per installare Samba su Centos 7 ho seguito questi passi (la macchina ha Selinux disattivato)

yum install samba samba-client samba-common

ed in seguito

systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service

ad un primo tentativo il servizio nmd non veniva tirato su, ho risolto facendo uno yum update (e' quindi consigliabile farlo da subito prima dell'installazione dei pacchetti)

dato che il server su cui lo ho installato ha due interfacce (una con ip pubblico ed una con ip privato)  ho modificato il file /etc/samba/smb.conf per mettere in ascolto solo sull'interfaccia interna modificando

[global] 
interfaces = 10.1.1.16 lo 
bind interfaces only = yes

per verificare che tutto sia andando a buon fine si puo' digitare netstat -tapn | grep smbd

Rimane da aprire la porta del firewall 

firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd reload

visto che era richiesto l'accesso autorizzato ad una cartella condivisa e' stato creato un utente samba generico che permette di scrivere sulla directory del web server

smbpasswd -a www_user


il file smb.conf finale e' di questo tipo
---------------------------------------------------
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos
security = user
map to guest = bad user
dns proxy = no
interfaces = 10.1.1.16 lo
bind interfaces only = yes
#============= Share Definitions ==============
[www]
path = /var/www/html
valid users = www_user
read only = No
create mask = 0777
directory mask = 0777

mercoledì 19 agosto 2015

Errore collect2.exe: error: ld returned 5 Arduino IDE



Su Arduino IDE 1.6.5 per Windows XP (non ho provato sulle altre piattaforme) in fase di compilazione di un codice leggittimo (che si compilava in precedenza) viene generato il seguente errore

collect2.exe: error: ld returned 5 exit status
Errore durante la compilazione

dopo un po' di prove ho scoperto che la riga incriminata che genera l'errore e' relativa all'istruzione delay (commentata la riga tutto funziona). Non ho trovato soluzione se non installare una versione piu' vecchia dell'IDE

martedì 18 agosto 2015

NFC Mifare e Nexus

Un paio di anni fa mi ero interessato all'uso degli Rfid su Android per un progetto che non e' mai partito ed allo scopo avevo comprato un centinaio di tag solo leggibili ed un tag riscrivibile in formato Mifare Classic 1K (con una memoria di 1024 byte, un po' costoso all'epoca devo ammettere)

Le prove le avevo eseguite con il Nexus S che era all'epoca il telefono di sviluppo


A sinistra Nexus 4, al centro Mifare Classic ed a destra Nexus S
Ho ripreso in mano il progetto per un nuovo possibile utilizzo stavolta utilizzando il Nexus 4.
Con mia sorpresa ho scoperto che il sensore di N4 non ha compatiblita' con il formato Mifare Classic 1K ed ho dovuto ordinare dei nuovi tag Ntag 203 (che dovrebbero essere universali)

NFC e' sempre rimasto un aspetto marginale di Android e di sicuro continuera' ad esserlo se non vengono definiti degli standard stabili nel tempo

lunedì 17 agosto 2015

Salvare pagine html on line per rassegna stampa

Uno dei problemi che si incontrano quando si cercano di salvare pagine html sui vari siti  (per esempio per creare una rassegna stampa) e' che la qualita' del risultato e' sempre scarsina, qualunque sia il formato di salvataggio

Per esempio partiamo da uno screenshot di una notizia sulla recensione della mia applicazione Abetone Trail Park


se si salva il contenuto in pdf mediante Chrome il risultato e' questo


Il tutto e' ovviamente non impaginato
Ho trovato utile usare il software Paparazzi, che riporta una impaginazione decisamente fedele del sito desiderato




venerdì 14 agosto 2015

Musescore e Songbook


Desktop
La versione desktop del programma puo' essere scaricata all'indirizzo https://musescore.org/it,e' opensource e multipiattaforma con sorgenti disponibili



Creando un nuovo spartito (File/Nuovo) viene chiesto il titolo, l'autore, lo o gli strumenti da usare, l'armatura di chiave,l'unita' di tempo (3/4, 4/4 per esempio) ed il numero di battute

Per inserire le note (modalita' di edit) si preme il tasto N oppure l'icona
Le note possono essere inserite dopo aver cliccato nella barra seguente indicando la durata direttamente posizionandole sul pentragramma

per inserire una pausa si entra in modalita' edit, si seleziona la lunghezza della nota e poi si clicca 


Attenzione : il programma in corso d'opera cerchera' di far sempre tornare la lunghezza della battuta. Per esempio se si ha una battuta in 4/4 e si e' aggiunta nota (per esempio una minima 1/2) aggiustera' il resto della battuta con una pausa di minima (1/2)

Per aggiungere elementi quali Articolazioni ed Abbellimenti (come staccati, crescenti ed altro) si deve uscire dalla modalita' edit (N) e si trascina l'elemento sulla nota interessata (cosi' come per le alterazioni non in chiave)

In automatico Musescore tende a raggruppare le note (per esempio di solito raggruppa le crome a  due a due) . Se non si e' soddisfatti si puo' usare in Tavolozze i comandi Proprieta' Gruppo note. Per raggruppare per esempio di clicca la seconda icona da sinistra nella file in alto e si trascina sulla seconda nota tra quelle che si devono raggruppare




E' possibile effettuare la trasposizione automatica della tonalita' utilizzando il menu' Note/Trasporto
Per esempio dalla tonalita' originale in Do maggiore



a Sol Maggiore



Una volta completato lo spartito (od anche in corso d'opera) si puo' ascoltare il brano con i tasti
(il play corrisponde al tasto spazio sulla tastiera)
Musescore viene distribuito con una libreria di suoni midi. Se si vuole un suono migliore si puo' scaricare una libreria SF2 piu' avanzata come quella per esempio FluidR3 GM2-2.SF2 (144 Mb!!)  reperibile qui e qui
Per installare la nuova libreria si devono aggiornare le Preferenze



ed in seguito Visualizza/Sintetizzatore/Aggiungi


(Curiosamente sono costretto ad impostare i suoni personalizzati ogni volta che apro il programma perche' si perdono le impostazioni)


Songbook
L'applicazione Musescore per Android ed IOS e' solo un player e visualizzatore dei file .mscz. Ne esistono due versioni: Musescore e' un programma che non permette di visualizzarea gli spartiti salvati sul proprio dispositivo portatile (ha quindi la necessita' del collegamento di rete per scaricare i dati dal sito di Musescore dopo aver fatto il login) e Songbook che permette di usare i propri file mscz.





Su Songbook non esiste la possibilta' di avere un file manager. Per aggiungere i propri spartiti si deve

  • su Android con un file manager si clicca sul .mscz e si indica "Apri con" Musescore Songbook
  • su IOS non e' possibile importare i dati mediante ITunes. Il sistema piu' semplice e' allegare i file degli spartiti anche una mail e poi "Apri con" l'allegato verso Musescore Songbook
Un paio di problemi: 
  • Solo su IOS l'applicazione portatile permette solo la modalita' portrait. Se si ruota lo schermo lo spartito non viene ridimensionato (su Android e' tutto a posto)
  • Esistono solo il tasto Play ed il tasto Ritorna all'inizio. Su brani lunghi questa e' una notevole limitazione ed esiste un trucco non immediato. Si deve premere sulla nota da cui si vuole partire in modo prolungato fino a che non viene emesso il suono della nota. A questo punto si puo' premere Play e l'esecuzione inizia dal punto prescelto


Debugger integrato ESP32S3

Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede  nell'ID USB della porta Jtag. Nel modulo...