Jumping Jack Flash weblog

Programmare l’ESP8266 con Arduino IDE

Posted in arduino, hardware, Uncategorized by jumpjack on 15 gennaio 2017

Brevissimo tutorial su come rendere il NodeMCU Amica con ESP8266 ESP12 a bordo programmabile tramite IDE Arduino.

  1. Scaricare esp8266_flasher.exe.
  2. Scaricare i file del firmware ESP_Easy (*).
  3. Collegare il NodeMCU (ad esempio Amica o Lolin) al PC tramite USB
  4. Avviare l’IDE arduino per verificare quale porta sia stata associata al dispositivo (menu Strumenti –> Porta)
  5. Aprire il monitor seriale di Arduino
  6. Premere e rilasciare il tasto reset sul NodeMCU per verificare se effettivamente il dispositivo comunica con l’IDE attraverso quella porta
  7. Chiudere l’IDE
  8. Avviare esp8266_flasher.exe
  9. Impostare il numero di porta
  10. Caricare il file .bin corretto, che dipende dalle dimensioni della flash a bordo del dispositivo (4MB o 4096 kbyte sull’ESP12, montato su Huzzah Adafruit, NodeMCU Lolin, NodeMCU Amica)
  11. Tenere premuto il tasto FLASH sul dispositivo, premere il tasto reset, rilasciare reset e rilasciare il tasto FLASH: in questo modo il dispositivo si predispone per la riprogrammazione (re-flashing)
  12. Cliccare DOWNLOAD: in realtà non verrà scaricato un file DA internet, ma inviato il firmware al dispositivo
  13. Attendere il completamento dell’operazione.
  14. Riaprire l’IDE di Arduino
  15. Ripetere il punto 11
  16. Caricare sul dispositivo uno sketch di esempio che stampi qualcosa sul monitor seriale

 

Metodo alternativo:

Per flashare il firmware è possibile usare direttamente anche il file eseguibile presente nel pacchetto ESP_Easy (*), che però è un po’ meno intuitivo. Una volta nota la porta a cui è collegato il dispositivo (v. punto 4 sopra) e la memoria disponibile (v. punto 10 sopra), mettere il dispositivo in modalità FLASH (punto 11 sopra), avviare esptool e indicare in sequenza il numero di porta, la dimensione della flash e la versione del fimware, cioè il numero dopo la “R” nel nome del file; ad esempio, ESPEasy_R108_4096.bin è la versione 108 per l’ESP da 4096 kbyte.

Nota: per scoprire quant’è grande la Flash RAM sul dispositivo si potrebbe usare questo comando:

esptool.py flash_id

Ma la cosa richiede di preinstallare e configurare un interprete python, che è una noia e una rogna, sto cercando un modo più semplice e alla portata di tutti.

 

(*) Il file .zip contiene vari file .bin, che sono firmware adatti a moduli ESP con Flash RAM di dimensioni diverse: 512 kbyte, 1924 kbyte, 4096 kbyte; ad esempio, il file ESPEasy_R108_1024.bin è per un ESP da 1024 kbyte (1Mbit); R108 è il numero di “build”, cioè di versione.

 

 

Diario elettrico Ecojumbo 5000 – Aggiornamento su cerchione rotto

Posted in Uncategorized by jumpjack on 13 gennaio 2017

La ditta Vespa di Via Variola, 39, zona Prenestina, ha finito di ripararmi il cerchione: 73,00 euro di manodopera, 60,00 euro di copertone, più una decina di euro spesi da me per ordinare una camera d’aria (il cerchio non è più a tenuta d’aria).

Totale: 143,00 euro.

Però devo ancora verificare se funziona ancora…

Intanto, ho iniziato a rimbalzare di ufficio in ufficio:

Prima sono andato al IV Gruppo Tiburtino della Polizia Roma Capitale a ritirare il verbale dell’incidente; costo: 17,00 euro. (così facciamo cifra tonda, 160,00 euro)

Col verbale, le foto scattate da me e la ricevuta della riparazione sono andato in Via Tiburtina 1163 presso la sede del IV Municipio di Roma, dove mi hanno detto che sarò contattato “tra un mesetto”.

Mentre facevo la fila ho conosciuto una signora che è caduta dentro una buca (a piedi), si è rotta una gamba ed è stata ingessata per 3 mesi; succedeva 5 anni fa, non ha ancora ricevuto il rimborso.

E ho anche letto che una sentenza della Corte di Cassazione stabilisce che se uno si schianta in una buca nel suo percorso abituale non ha diritto a nessun rimborso perchè doveva saperlo che c’era una buca.

Sono sicuro che otterrò migliaia di euro di rimborso entro una settimana. 🙂

Facciamo due dài. 😦

 

Analisi di lampadina led a filamento

Posted in elettricita, hardware by jumpjack on 4 gennaio 2017

L’anno scorso ho comprato una di queste nuovissime lampadine LED a filamento:

led-filamento-lampada-intera

La lampadina è marcata:

  • LIFE
  • 32.920351C 4.4W 40mA
  • 220-240V 50 Hz
  • 3000K 450lm 97

Non ricordo assolutamente dove l’ho comprata, però ho trovato questo link.

Purtroppo si è già bruciata…. così ho deciso di vivisezionarla per SE e QUALE circuito ci può mai essere nel pochissimo spazio dell’impanatura.

Dopo un po’ di frullino…

led-filamento-lampada-segata

e un po’ di lavorio di pinze, ecco il risultato: c’è davvero un minuscolo circuito che riesce, in così poco spazio, a convertire 220V alternati in “pochi” (?) volt continui!

 

led-filamento-circuito

I componenti che ho individuato sono:

  • Un ponte raddrizzatore MB6S, a quanto pare piuttosto comune nelle lampade LED
  • Un driver a corrente costante SM2082B
  • Un condensatore da 400V/4.7uF
  • Una “grossa” resistenza, forse da 1/4 o 1/2W (in realtà l’intero circuio è grosso quanto la punta di un dito)
  • 3 resistenze a montaggio superficiale, quindi a bassissima potenza

Pare che sia un circuito di pessima qualità…

Il datasheet del SM2082B suggerisce questo schema:

led-filamento-circuito

 

Collegamento di un CellLog8S/8m ad Arduino o a ESP8266

Posted in auto elettriche, batterie, hardware, scooter elettrici by jumpjack on 2 gennaio 2017

L’utente pa.hioficr sul forum https://endless-sphere.com/forums/viewtopic.php?f=14&t=20142 ha scoperto che è possibile leggere in tempo reale i dati di log di un CellLog (sia 8S con memoria che 8S senza memoria) semplicemente “agganciandosi” al pin TX dell’Atmel montato sul CellLog.

Questo significa che invece di spendere 40-50 euro per comprare un CellLog8S con memoria e infilarlo nel sottosella per poi aspettare di arrivare a casa per scaricare i dati letti, è in linea di principio possibile collegare al CellLog8M da 15 euro un ESP8266 da 8 euro che tramite Wifi invia dati a uno smartphone che li mostra in tempo reale sullo schermo durante la marcia; probabilmente è anche possibile scrivere un SW che legge i dati da più di un celllog contemporaneamente, sfruttando l’emulatore di porte seriali.

Questo è lo schema elettrico originale dell’autore:

celllog-000

 

Questa è una sua successiva modifica per implementare anche avvio del logging e reset del CellLog:

celllog-001

Di seguito la spiegazione del funzionamento che ho dedotto io dallo schema, inserita anche nella seconda edizione del mio libro “Guida alla costruzione di una batteria al litio per mezzi elettrici”, di imminente pubblicazione:

 

8.1.2. Materiale occorrente
Q1 = 2n3906 o altro PNP
R1 = R4 = R6 = R7 = 220 ohm
R2 = R5 = 330 ohm
R3 = 4700 ohm
U1 = U2 = optocoupler/fotoaccoppiatore a 2 canali, 5V, 8 pin, uscita a fototransistor di tipo NPN (es. Vishay ILD615, Fairchild MCT61, Isocom ISP827,… )
8.1.3. Spiegazione del funzionamento
Il circuito può essere suddiviso in 4 parti: le prime due ricevono dati dal CellLog tramite il primo fotoaccoppiatore e li inviano al microcontrollore esterno; le altre due ricevono invece dati dal microcontrollore e li inviano al CellLog tramite il secondo fotoaccoppiatore.
8.1.3.1. Rilevamento accensione
In Figura 127 è riportata la parte dedicata al rilevamento dell’accensione; notare che nella figura il transistor è stato capovolto rispetto allo schema originale reperito su internet, per renderlo coerente con la notazione standard di avere la corrente che scorre dall’alto verso il basso; inoltre lo schema è stato semplificato e ripulito, per facilitarne la comprensione, lasciando però inalterati i collegamenti e i componenti.
Il microcontrollore (MCU) è programmato per leggere sul pin MCU_CL8.1_DETECT lo stato del CellLog: quando il pin è “basso” (0V), vuol dire che il CellLog è acceso; normalmente questo pin è invece a 5V perché connesso all’alimentazione dell’MCU tramite R5 (che serve a limitare a 15mA la corrente Collettore-Emettitore quando il transistor è in conduzione); quando però il CellLog viene acceso, i suoi 5V arrivano, tramite la resistenza R4 (che limita la corrente a 23 mA) sul pin 4, e mettono in conduzione il fotodiodo 3-4, che mette a sua volta in conduzione il fototransistor 5-6, che mette a massa il pin MCU_CL8.1_DETECT.
celllog-002
Figura 127 – Rilevamento accensione
8.1.3.2. Lettura dati
Dobbiamo far “riflettere” sul piedino RX del microcontrollore esterno lo stato del pin TX del CellLog, tramite il fotoaccoppiatore; per farlo, usiamo il pin TX del CellLog per controllare la base di un transistor collegato all’ingresso del fotoaccoppiatore; il transistor serve a far sì che basti prelevare dal CellLog una piccolissima corrente (1 mA grazie a R3 da 4300 ohm) per attivare il fotodiodo, che richiede invece alcune decine di mA; in pratica è un transistor di disaccoppiamento, che cioè rende indipendenti gli assorbimenti di corrente di CellLog e fotoaccoppiatore.
celllog-003
Figura 128 – Circuito TX-RX con transistor PNP o NPN
Il progettista ha scelto di usare un transistor di tipo PNP, che viene acceso da una tensione di base negativa rispetto all’emettitore; l’emettitore va quindi collegato stabilmente alla tensione di alimentazione 5V, in modo che il transistor entri in conduzione quando TX va a 0V. Quando questo accade, succederà quanto segue, in sequenza:
1. Q1 si accenderà
2. Passerà una corrente nel fotodiodo 1-2
3. Si accenderà il fototransistor 7-8
Dobbiamo ora fare in modo che tutto ciò risulti in una tensione di 0V sul piedino RX del microcontrollore esterno, corrispondente al piedino 8 del primo fotoaccoppiatore, che è il collettore del fototransistor di uscita; per farlo, dobbiamo fare in modo che il piedino 8 si trovi normalmente a 5V, e venga portato a 0V solo quando si accende il fototransistor 7-8; bisogna quindi tenere il pin 8 costantemente collegato ai 5V del microcontrollore esterno, e il pin 7 alla sua massa; in questo modo, l’accensione del fototransistor 7-8, che avviene quando TX del CellLog va a 0, collegherà il pin 8 a massa tramite il 7, cioè metterà RX del microcontrollore esrerno a 0, riflettendo così esattamente lo stato del pin TX del CellLog.
Se non dovessimo avere disponibile un transistor PNP ma solo un NPN, occorrerà invertire la logica del circuito.
8.1.3.3. Reset
Il “cervello” del CellLog, un microcontrollore ATMEL, è dotato di un piedino di reset, che possiamo controllare tramite il nostro microcontrollore esterno; per farlo, al pin di reset colleghiamo il collettore del fototransistor 5-6 del secondo fotoaccoppiatore (pin 5); controlliamo questo fototransistor tramite il rispettivo fotodiodo 3-4, collegato al pin MCU_CL8.1_RESET del nostro microcontrollore esterno; basterà quindi mettere alto questo pin per mettere in conduzione il fotodiodo e il fototransistor e quindi resettare il CellLog.
celllog-005
8.1.3.4. Avvio log
Per far partire il logging è necessario premere per 3 secondi il pulsante 2 del CellLog (SW2); possiamo farlo fare al nostro microcontrollore esterno collegando l’interruttore in parallelo a un’uscita del secondo fotoaccoppiatore: quando sull’ingresso ci sarà una tensione di 5V (impostata via software), il fototransistor di uscita entrerà in conduzione chiudendo l’interruttore e avviando così il logging.

celllog-004

Conversione da immagini sferiche a equirettangolari per telecamere 360

Posted in VR360 by jumpjack on 1 gennaio 2017

 

In attesa che arrivi il regalo di Natale che mi sono fatto, cioè una telecamera a 360°x220°, sto investigando sui software disponibili per trasformare il suo output in qualcosa di utilizzabile col mio visore VR-3d, un VRBox di marca imprecisata.

vrbox camera360

Un “visore” come il VRbox in realtà non è altro che una versione più sofisticata del “Google Cardboard”.

googlecardboard-chiuso google-cardboard-aperto

Si tratta di un semplice pezzo di cartone che, opportunamente ripiegato permette di accogliere al suo interno un cellulare che, grazie ai suoi sensori interni (accelerometro e – indispensabile – giroscopio), è in grado di dare l’illusione di “immergersi dentro un’immagine”, perchè è possibile vedere l’immagine “tutta intorno”, come quando si va in un planetario a osservare le stelle proiettate sulla cupola.

vr-oooh

Nel caso del Google Cardboard, del VRbox o di altri visori,  la “cupola” è virtuale, ricreata digitalmente dal cellulare a partire da un’immagine in proiezione equirettangolare (cioè, in termini meno tecnici, una “sfera spianata”).

Il risultato è il seguente:

http://www.dichitoarchitetto.it/rendering-navigabili/#piazza_polignano

In questo caso l’immagine è navigabile col mouse; nel caso del VRbox, è navigabile muovendo la testa di qua e di là.

Per realizzare in modo completo questo effetto servirebbe una fotocamera in grado di riprendere l’intera sfera di 4pigreco steradianti, ma si possono anche usare due fotocamere contrapposte con campo visivo di 360°x180°; rimando però all’altra mia pagina per i dettagli. Qui voglio invece riportare un elenco di siti e software trovati per realizzare le cosiddette “foto a 360°” o “foto immersive” (idem dicasi per i video).

E il 3d?

E’ anche possibile aggiungere la terza dimensione a queste immagini e video. Servono però due fotocamere…

E non devono essere montate contrapposte, ma affiancate, guardanti nella stessa direzione. Il video risultante dovrà essere composto da due video, uno che occupa la metà superiore e uno quella inferiore dello schermo; entrambi i video dovranno essere in proiezione equirettangolare; caricandoli su youtube, e poi visualizzandoli su un cellulare, dovrebbero mandare automaticamente il cellulare in “modalità cardboard”, se è dotato di giroscopio; questo tipo di video però non offrirà una panoramica completa di 360° orizzontali, ma solo di 220°; considerando che il campo visivo di ogni occhio è di circa 90° contando anche la visione periferica, dovrebbe dare una certa possibilità di muovere la testa a destra e a sinistra.

Sto ancora investigando la cosa…

 

Teoria

 

Software

 

Forum

 

Librerie per programmatori