Jumping Jack Flash weblog

Appunti su OpenLog – il file di configurazione config.txt

Posted in Uncategorized by jumpjack on 31 marzo 2013

La documentazione di questo pur utile, minuscolo cosino in grado di registrare miliardi di dati in 4 cm2 lascia molto a desiderare a causa delle molteplici versioni succedutesi nel tempo.

Ecco quindi una breve spiegazione del file di configurazione di OpenLog:

  •  si deve chiamare CONFIG.TXT (tutto maiuscolo)
  • il file deve contenere un’unica riga, non sono ammesse righe di commento
  • la riga contiene numeri separati da virgole, senza nessun identificativo; è cioè un file di configurazione POSIZIONALE

Parametri ammessi:

Versione 1:

  • baudrate (max 230400), carattere di escape, numero di ripetizioni necessarie del carattere di escape, tipo di logging

Esempio:

  • 115200,103,14,0 = 115200 bps, escape char of ASCII(103), 14 times, new log mode

Versione 2:

  • Come versione 1 (ma baud max=115200)

Versione 3:

  • baudrate (max=115200), carattere di escape, numero di ripetizioni necessarie del carattere di escape, tipo di logging, modalità prolissa on/off, echo on/off

Esempio:

  • 115200,103,14,0,1,1 = 115200 bps, escape char of ASCII(103), 14 times, new log mode, verbose on, echo on.

Spiegazione parametri:

  • 9600: The communication baud rate. 9600bps is default. Acceptable values are 2400, 4800, 9600, 19200, 38400, 57600, 115200.
  • 26: The ASCII value (in decimal form) for the escape character. 26 is ctrl+z and is default. 36 is ‘$’ and is a commonly used escape character.
  • 3: The number of escape characters required. By default it is three so you must hit ctrl+z three time to drop to command mode.
  • 0: System mode. OpenLog starts in newlog mode (0) by default. Acceptable values are 0 = New Log, 1 = Sequential Log, or 2 = Command mode.
  • 1: Verbose mode. Extended (verbose) error messages are turned on by default. Setting this to 1 turns on verbose error messages such as unknown command: remove !. Setting this to 0 turns off verbose errors but will respond with a ‘!’ if there is an error. Turning off verbose mode is handy if you are trying to handle errors from an embedded system.
  • 1: Echo mode. While in command prompt characters are echoed by default. Setting this to 0 turns off character echo. Turning off echo is handy if you are trying to handle errors and don’t want to have the sent commands echoing back to the sender.

Nota: nessuna versione di firmware consente al momento di registrare letture dei PIN piuttosto che dei dati seriali, sebbene TX e RX possano teoricamente essere configurati come input digitali; non sono presenti pin analogici sulla board, sebbene A0, A1, A3, A4 e A5 siano disponibili sul chip (A2 non è disponibile).

Nota2: su ArduLog, una variante di OpenLog,  sono presenti anche 4 piedini analogici, ma poichè usa lo stesso firmware di OpenLog, non è comunque possibile registrare nessun input!

Nota3: SDLogger, altra variante di OpenLog, utilizza versioni leggermente modificate del firmware di OpenLog, e utilizza SD Card grandi invece che mircoSD. Ha 4 pin analogici (oltre a una porta seriale aggiuntiva), ma non può comunque registrare dati letti dai pin.

Tagged with: , , ,

Energy Logger fai-da-te, da quadro o a batteria.

Posted in hardware, Programmazione by jumpjack on 31 marzo 2013

Dopo un anno di prove, ricerche, esperimenti e sbattimenti, ho finalmente il piacere di annunciarvi che il primo logger “professionale” di energia a basso costo è ufficialmente una realtà!

Prevedo di mettere in commercio due versioni:

– autonoma, per interni; autonomia infinita, in quanto preleva la tensione direttamente dalla corrente di casa; è contenuto in un normale modulo DIN (dimensioni: 1+1.5, da montare nel quadro elettrico), al quale bisogna semplicemente collegare 4 fili: due che vengono dal contatore ENEL, due che vanno alle utenze di casa. Dotato di cicalino interno di allarme per sovraccarico.  Contiene una SD card estraibile che memorizza i dati. Al momento registra solo i Wh tramite energy monitor esterno interfacciato otticamente, ma prevedo, in caso di interesse, un aggiornamento per misurazione anche di V e CosFI.
Il costo complessivo risulterebbe di 65 euro + spedizione.

– a batteria, autonomia di circa una settimana con una batteria da 9V, o… infinita con un pannello solare da 1W (il consumo è di max 10 mA, tensione ammessa tra 3,3 e 12V); basta collocarlo vicino al contatore ENEL, incollare il sensore sul LED del contatore, ed è tutto. A registrazione ultimata, si stacca la batteria, si preleva la SD Card e si leggono i dati sul PC, eventualmente facendo grafici con Excel.
Questa versione costerebbe (se risultasse esserci mercato…) 30 euro + spedizione.

Con una SD card da 2 GB potrebbe registrare teoricamente dati per 2000 giorni.

Il vantaggio maggiore su qualunque altro modello in commercio è la programmabilità: chi ha competenze su Arduino potrà espandere/migliorare a piacimento il logger. Ma soprattutto, potrà costruirselo da sè a prezzo di costo scaricandosi schemi e sorgenti che pubblicherò tra una settimana.
Lo svantaggio è il dover “tagliare i fili” dell’impianto per collegarlo, ma è necessario per avere l’accuratezza necessaria; in ogni caso posso facilmente realizzare una più “classica” versione con pinza.

Presenterò i prototipi sabato 6 aprile ad Arduino Day 2013, nel pomeriggio.
Nel frattempo accetto consigli, suggerimenti e richieste.

Siamo in piena “Crisi di Cuba 2013” e i TG italiani parlano di Grillini, Papi Buoni e litigi elettorali

Posted in Uncategorized by jumpjack on 30 marzo 2013

Domani stesso potrebbe partire un missile balistico atomico dalla Corea, volarci sopra la testa e andare a disintegrare Washington, e al TG1 parlano dei Grillini alla camera e di quanto è buono il Papa (*).

http://www.corriere.it/esteri/13_marzo_29/Corea-Nord-allertaunita-missilistiche_4a5aa83e-97f8-11e2-8dcc-f04bbb2612db.shtml

Interessante notare come molti dei Grillini eletti abbiano sui 30 anni se non di meno… suppergiù l’età del nuovo Capo di Stato della Corea del Nord, Kim-Jong-un, classe 1983, recentemente succeduto al vecchio Kim Jong-Il, che nell’anno della vera Crisi di Cuba (1962) aveva 21 anni, e “si è fatto le ossa” in 30 anni di Guerra Fredda, imparando l’arte della deterrenza nucleare. Come ogni bravo giovane ottimista, invece, Kim Jong-Un ritiene che “chi mena per primo mena due volte”, come detta la prima regola del Manuale Americano del Guerrafondaio Preventivo.

Quindi abbiamo due tizi maneschi uno di fronte all’altro (USA e Corea) , che pensano che chi comincia per primo a menare, vince.

 

Avete fatto scorta di carta igienica? Qualcuno sta per pigiare il  “bottone fine di mondo”.

 

(*) A proposito, Ratzinger non sarà mica andato a rintanarsi in un bunker? Le sue dimissioni sarebbero capitate proprio a fagiolo.

Appunti su OpenLog (e ArduLog)

Posted in Programmazione by jumpjack on 29 marzo 2013

Tempo fa ho acqustato un Openlog della Sparkfun, un logger seriale arduino-based.

Non sono mai riuscito a farlo funzionare, però nel frattempo tanta gente ci si è rotta la testa trovando un sacco di problemi, e risolvendoli alcuni; le soluzioni sono sparse nellalunghissima pagina dell’openlog, provo a riassumerle qui sotto; nel frattempo, ho ordinato invece un ARDUlog, che essendo un successore sembra un po’ migliore: ha dei fori per avvitarlo a un supporto, e ha vari pin analogici di ingresso, quindi è predisposto a livello hardware per diventare un logger standalone, anche se ancora non esiste un firmware adatto.

 

Openlog:

Ardulog 1.0:

 

 

Ardulog 2.0 (notare l’inversione di TX e RX per coincidere con la board FTDI):

PROBLEMA 1 – Condensatori di disaccoppiamento sull’alimentazione:

Member #124829 | about 3 months ago 1

I am using the open log to log weather and cosmic ray data once a minute. I have an Atmega 328 connected on the bread board to the open log for data logging, and to a FTDI header for programming. The open log log’s data fine when I have the FTDI adaptor (DEV-09716) attached, but doesn’t log anything when It isn’t attached. I assume I have a hardware failure, and I forgot to connect something to the open log that the FTDI is connecting for me, but I checked and the TX and RX pins are connected properly, and so are GND and VCC. Right now my only guess is that the FTDI is putting more capacitance on the power supply that causes it to start working, but I haven’t tested it yet. However when I measured the voltage W/ the FTDI adaptor both the TX and RX lines sat at 4.7 to 4.9V and W/O it was 3.3 for both of them. Can I please get some help?

I fixed the problem, there wasn’t enough capacitance and the bypass caps on the FTDI were making the open log work. Make sure you have bypass caps on your power supply, I added a 10uf about 10cm of wire away and a 0.1uf right on the header of the open log and it started working perfectly.

PROBLEMA 2 – Livelli a 5V o 3,3 V?

tsm | about a month ago * 1

I’m getting a stream of 1s back from the data logger over serial.

I’m using a 5V Arduino, powering the OpenLog off of its 5V pin, and sending serial over to it and getting serial back. When the TX from the Arduino is not connected to the RX on the OpenLog, the OpenLog reports “12<”. However, when I connect the Arduino’s TX pin to the OpenLog’s RXI pin, I only getting “11111111….”

While the datasheet says that the RXI pin can take up to 6V, I notice that the schematic shows regulation of VCC down to 3.3V, while the RXI pin undergoes no translation and is connected directly to the ATMEGA. This makes me think that in fact a 5V TTL signal from the Arduino is too high and is causing the ATMEGA to result. Just a guess though.

Has anyone else seen this? The closest thing I found was unanswered (https://github.com/sparkfun/OpenLog/issues/138).

For reference, everything works correctly when I use a 3.3V FTDI.

I just soldered up a TTL logic level shifter (the Sparkfun one), taking my 5V TTL on the Arduino side down to 3.3V on the OpenLog side, and now it’s working. It looks like the 5V serial signal in fact is unacceptable to the ATMEGA, despite that the datasheet suggests it can accept 6V. Big debugging nightmare! Does anyone k

PROBLEMA 3 – Malfunzionamento a batterie

This is working when using USB power, but not battery power. Setup:

5V Arduino’s TX –> logic level shifter –> OpenLog’s RX

OpenLog’s TX –> resistor –> Arduino RX

Arduino’s reset pin –> logic level shifter –> OpenLog’s reset pin

tsm | about 2 weeks ago 1

I had a high-current device on the same bus. Interestingly, a separate mistake was drawing the 3.3V bus to 5V, but when the high-current device was on the line, it was pulling too much current and bringing the bus back down closer to 3.3V. When I used the battery, which delivered more current, this didn’t happen, and so the OpenLog would reset. Nasty problem. Fixed with a separate bus for that current-hungry component.

PROBLEMA 4 – flashing firmware con AVRDUDE:

gek | about 3 years ago 1

I’m using a FTDI 3.3v (DEV-09717) cable connected to my OpenLog. Using teraterm on COM10 I can make a connection to the device. all is good.
to upgrade the firmware I’m using the follow cmd:
avrdude.exe -p atmega328p -P COM10 -c stk500v1 -b 57600 -Cavrdude.conf -U flash:w:main.hex
and get this response:
avrdude.exe: ser_open(): can’t open device “COM10”: The system cannot find the file specified.
I have put libusb0.dll in the system32 directory.
is the problem that arvdude can’t handle high number com ports?
thank you
gek

I did a little hacking with regedt32 and changed the comport from 10 to 3. I can now update the firmware.
see:
http://www.ftdichip.com/Documents/AppNotes/AN_132_Re-Assigning_COM_Port_Numbers_Using_Registry.pdf
The registry remembers all FTDI converters that have been used. The driver does not reassign unused comport numbers. In some cases that a good thing. It would be nice to be able to “reserve” a set of comport numbers to be reused as devices are used and removed.

PROBLEMA 5 – flashing firmware

kzwinn | about 2 years ago 1

Hi,
Anyone encountered this problem while flashing the firmware? Thanks!

C:\openlog>avrdude.exe -p atmega328p -P COM6 -c stk500v1 -b 57600 -Cavrdude.conf
-U flash:w:main.hex
avrdude.exe: stk500_getsync(): not in sync: resp=0x00
avrdude.exe: stk500_disable(): protocol error, expect=0x14, resp=0x51

  • ok..solved. you need to connect all pins of FTDI Basic board and openLog. Not just TX/RX/5V/GND won’t be able to download.
    https://github.com/nseidle/OpenLog/wiki/Datasheet
    Under this topic
    How do I attach a FTDI Basic board to OpenLog for configuring and bootloading?

    PROBLEMA 6 – output 1, no prompt, no logging

    Lubin | about a year ago * 1

    Hello,

    I get an OpenLog with firmware v1.51 as I remmeber. I have a standard FTDI cable.

    I downloaded newer firmware through the git repository. I can upgrade sucessfully to any firmware version. I Only have Rx-Tx wires with Vcc-GND. I power up openlog whild pressing enter with: avrdude -p atmega328p -P COM2 -c stk500v1 -b 57600 -Cavrdude.conf -U flash:w:main.hex

    It’s programming without error. However, open log is only showint one 1 at hyperterm when starting. I do not have anymore 12>.

    What’s going on ? any ideas ?

    • Find out : the computer corrupted the Sd card. reformating the card make its working with latet firmware.

CONSIGLIO 1

Just got it working! Very nice.
Couple of hints for others.
—Default baud is 9600 8n1.
—Make sure your card is formated as fat16.
—If you hook it directly up to FTDI Basic don’t forget to cross the rx and tx lines.

CONSIGLIO 2:

to format FAT16 with dos in xp:
c:>format e: /fs:fat

INFO:

STAT1 LED is the LED right of the word OpenLog and is sitting on PD5 (Arduino D5). This LED toggles on/off every time a new character is received. This LED helps troubleshoot and indicate serial communication is working.
STAT2 LED is the LED left of the word OpenLog and is sitting on PB5 (Arduino D13). This LED is attached to the SPI Serial Clock line. You will see this LED flash rarely. It only turns on when the SPI interface is active and this is rare as the OpenLog buffers 512 bytes at a time before recording to the SD card. Recording 512 bytes is very fast so the LED is on for very little.

Nate | about 3 months ago 1

OpenLog expects TTL voltage levels. RS232 will not work and could (maybe) harm the OpenLog (probably not though). You’ll need a MAX3232 or a shifter circuit.

UPLOAD FIRMWARE SENZA AVRDUDE:

Hobbytronics | last year 1

If you want to upgrade the firmware on this board with the latest version, you don’t have to go through the hassle of installing a custom version of Arduino as suggested. The compiled hex file is included in the download. There is a great little program called XLoader (http://xloader.russemotto.com/) which you can use to download the firmware into the openlog. (No avrdude knowledge required)

Rivoluzione estraibile

Posted in ambiente, scooter elettrici by jumpjack on 23 marzo 2013

C’e’ una piccola e, come al solito silenziosa, rivoluzione in corso nel mondo dell’invisibile “scooterismo elettrico”: le batterie estraibili.

Due anni fa, quando comprai il mio scooter, era l’UNICO in Italia dotato di batterie al litio estraibili.

6 mesi fa, a ottobre 2012, quando è uscito per la prima volta il libro “Guida all’auto elettrica” (ora “Elettrico? Sì grazie”), esistevano 13 diversi scooter a batterie estraibili.

Oggi, 23 marzo, a Elettrocity a Roma, di 15 modelli diversi esposti solo due avevano ancora le batterie fisse: gli Ecojumbo e i Govecs. Ho visto qualcuno fare giri di prova sugli Ecojumbo (forse perchè sono i più venduti, e quindi i più “famosi”, d’Italia), ma a quel che ho visto, nessuno ha fatto nemmeno un giro sui Govecs, che stanno lì parcheggiati da 3 giorni… In realtà, da diversi mesi anche la Govecs ha non uno ma due modelli a batterie estraibili, ma in fiera non c’erano. In compenso c’erano gli ibridi Aspes, per la prima volta disponibili per un giro di prova: anche loro hanno una batteria estraibile, anche se minima, visto il motore esso stesso “minimo” (600W sul 50cc, 1000W su 125 e 150cc). Purtroppo in prova c’era solo il 50ino… che mi ha molto deluso: ho voluto provare la modalità ibrida automatica, che attacca il motore a benzina quando si spegne quello elettrico. Be’, a un certo punto il benzina si è acceso e l’elettrico si è spento… ma quando poi ho rallentato, il benzina si è spento, ma l’elettrico non si è più riacceso!! Allora ho commutato in solo elettrico, ma non è ripartito lo stesso. Allora ho commutato in solo benzina e premuto il pulsante di avviamento… ma non si è avviato proprio niente! Sono rimasto fermo in pista come un salame, finchè è arrivato il venditore ed è riuscito a farl partire il motore a benzina, così sono partito, facendo la strada a ritorno in discesa: il benzina si è spento… e l’elettrico è rimasto spento, e io sono rimasto a piedi di nuovo….

Mah.

Il venditore ha detto che è colpa della batteria che era scarica, ma io sono molto perplesso. Spero che quello scooter in particolare fosse guasto.

Ma tornando al titolo dell’articolo, il 90% degli scooter in mostra ha batterie estraibili, che vengono anche vendute separatamente dagli scooter, ed hanno tensioni che spaziano dai 48 ai 72 volt; così sono andato un secondo giorno in fiera, armato questa volta di tester e righello :-), e mi sono messo a misurarle TUTTE. 🙂

Ecco i dati raccolti:

Penelope – LiFePO4 – 54V; dimensioni 22 x 17 x 47,5

Roman/Airone – Li-ion – 48V/28Ah, misurati 58,1V a batteria non del tutto carica; valigetta con manico sul lato piccolo, dimensioni 27 x 7,5 x 35,5

Zeus – 72V/25Ah, misurati 83,1 Volt su batteria non del tutto carica; valigetta con manico sul lato piccolo, dimensioni 31 x 7 x 40

Bertini:

Cityzen – 60V/28Ah, valigiotto col manico sul lato grande, dimensioni 16 x 24 x 32,5

Zaion – 60V/33Ah, valigia col manico sul lato grande, dimensioni 39 x 21 x 18

Etropolis – Litio-polimeri (??!!) – 60V/36Ah, 25 x 42 x 18  (1000 euro)

Altri etropolis: 48V/30Ah, 53,1V misurati, 34,5 x 27 x 15

 

Obiettivo di tutte queste misurazioni è trovare una batteria che vada bene per il lepton senza doverne comprare una in Cina pagando 150-300 euro di spedizione (!!!) o doverne costruire una da sola (il mondo dei BMS e PCM è ancora un grande mistero per me…)

Le misure del vano-batterie del lepton sono 20 x 67 cm di base per 17,5 cm di altezza.

Dovrò fare un po’ di disegni per vedere se è possibile ficcarcene dentro una sana.

I prezzi? Tutti i venditori mi hanno detto “700-800 euro” per tutte le batterie, tranne quella da 36Ah dell’Etropolis data per 1000 euro.

Diario elettrico Zem Star 45 – 19/3/2013

Posted in ambiente, scooter elettrici by jumpjack on 19 marzo 2013

Ops, ho fatto una fesseria: quando ho comprato i due nuovi caricabatterie, non ho attuato l’azione “correttiva preventiva” attuata invece su tutti i precedenti appena comprati, cioè  legare conil nastro isolante  il cavo del connettore al connettore stesso dopo aver piegato il cavo, in modo da non sforzare direttamente i contatti quando sfilo il morsetto d a quello della batteria.

Quindi uno dei fili ovviamente si è rotto dopo solo un mese di utilizzo…

Poco male, con un saldatore a punta fine e ad alta temperatura è un attimo fondere il grosso malloppo di stagno nascostoin profondità dentro al connettore in rame… ma un acquirente “qualunque” che non ha un saldatore in casa si troverebbe in questo caso a dover chiedere un caricabatterie nuovo, o farselo riparare! Perdendo chissà quanti giorni per avere di nuovo un CB funzionante!

Questi connettori a saldare senza viti sono un’emerita vaccata, mi domando perchè siano in uso su TUTTI gli scooter elettrici!

Controllare display 5110 mediante scheda Pinguino PIC32 MICRO

Posted in hardware by jumpjack on 16 marzo 2013

Nuovo, piccolo passo verso il completamento del logger di energia per scooter e pannelli fotovoltaici: finalmente il listato dimostrativo per Arduino di utilizzo del display 5110 funziona!
Adesso posso aggiungere finalmente al mio logger la visualizzazione in tempo reale dei dati registrati, in modo da poterlo tarare facilmente.

// LCD_5110_test for Pinguino PIC32 MICRO.
// Sample program to drive 5110 LCD display (Philips PCD8544 based).
// Display works at 3,3V, so no need for voltage regulators on Pinguino PIC32 Micro.
// Directly copied from Arduino site: http://playground.arduino.cc/Code/PCD8544
// Added shift_out procedure (copied from Arduino IDE source).
//
// Jumpjack march 2013

#define PIN_SCE 13 // CON2-03
#define PIN_RESET 12 // CON2-04
#define PIN_DC 11 // CON2-05
#define PIN_SDIN 10 // CON2-06
#define PIN_SCLK 9 // CON2-07
#define PIN_LED 8 // CON2-08 (Backlight, optional)

#define LCD_C LOW
#define LCD_D HIGH

#define LCD_X 84
#define LCD_Y 48

#define LSBFIRST 0
#define MSBFIRST 1

static const byte ASCII[][5] =
{
{0x00, 0x00, 0x00, 0x00, 0x00} // 20
,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 !
,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 "
,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 #
,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $
,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 %
,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 &
,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 '
,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 (
,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 )
,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a *
,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b +
,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c ,
,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d -
,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e .
,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f /
,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0
,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1
,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2
,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3
,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4
,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5
,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6
,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7
,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8
,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9
,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a :
,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ;
,{0x08, 0x14, 0x22, 0x41, 0x00} // 3c
,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ?
,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @
,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A
,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B
,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C
,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D
,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E
,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F
,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G
,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H
,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I
,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J
,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K
,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L
,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M
,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N
,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O
,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P
,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q
,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R
,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S
,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T
,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U
,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V
,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W
,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X
,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y
,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z
,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [
,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c ¥
,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ]
,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^
,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _
,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 `
,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a
,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b
,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c
,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d
,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e
,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f
,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g
,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h
,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i
,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j
,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k
,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l
,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m
,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n
,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o
,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p
,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q
,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r
,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s
,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t
,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u
,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v
,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w
,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x
,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y
,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z
,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b {
,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c |
,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d }
,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ←
,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f →
};

void LcdCharacter(char character)
{
int index=0;
LcdWrite(LCD_D, 0x00);
for ( index = 0; index < 5; index++)
{
LcdWrite(LCD_D, ASCII[character - 0x20][index]);
}
LcdWrite(LCD_D, 0x00);
}

void LcdClear(void)
{
int index=0;
for ( index = 0; index < LCD_X * LCD_Y / 8; index++)
{
LcdWrite(LCD_D, 0x00);
}
}

void LcdInitialise(void)
{
pinMode(PIN_SCE, OUTPUT);
pinMode(PIN_RESET, OUTPUT);
pinMode(PIN_DC, OUTPUT);
pinMode(PIN_SDIN, OUTPUT);
pinMode(PIN_SCLK, OUTPUT);
pinMode(8,OUTPUT); //backlight
digitalWrite(PIN_RESET, LOW);
digitalWrite(PIN_RESET, HIGH);
LcdWrite(LCD_C, 0x21 ); // LCD Extended Commands.
LcdWrite(LCD_C, 0xB1 ); // Set LCD Vop (Contrast).
LcdWrite(LCD_C, 0x04 ); // Set Temp coefficent. //0x04
LcdWrite(LCD_C, 0x14 ); // LCD bias mode 1:48. //0x13
LcdWrite(LCD_C, 0x0C ); // LCD in normal mode.
LcdWrite(LCD_C, 0x20 );
LcdWrite(LCD_C, 0x0C );
}

void LcdString(char *characters)
{
while (*characters)
{
LcdCharacter(*characters++);
}
}

void LcdWrite(byte dc, byte data)
{
digitalWrite(PIN_DC, dc);
digitalWrite(PIN_SCE, LOW);
shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data);
digitalWrite(PIN_SCE, HIGH);
}

void setup(void)
{
LcdInitialise();
LcdClear();
LcdString("Hello World!");
delay(1000);
digitalWrite(8,LOW);
}

void loop(void)
{
toggle(PIN_LED);
delay(1000);
}

void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val)
{
uint8_t i;

for (i = 0; i < 8; i++) {
if (bitOrder == LSBFIRST)
digitalWrite(dataPin, !!(val & (1 << i)));
else
digitalWrite(dataPin, !!(val & (1 << (7 - i))));

digitalWrite(clockPin, HIGH);
digitalWrite(clockPin, LOW);
}
}

Sempre parlando di logger, ho scoperto che esistono semplici contatori di kWh per la corrente di casa, da installare nel quadro elettrico, che fanno lampeggiare un led ogni tot kWh (come il contatore ufficiale ENEL), e che costano 20 euro invece che 200 come quelli che conoscevo io…
Questo significa che costruire un logger Arduino/Pinguino per la corrente dicasa diventa un po’ più semplice, perchè non serve più un sensore di corrente, ma basta una fotoresistenza, più un partitore 1:100 per la tensione (comunque necessario solo per misure molto precise della potenza e/o per misurare anche il cosFi).
Appena mi danno l’indirizzo lo compro e inizio a fare le prove.

Diario elettrico Zem Star 45 – 16 marzo 2013

Posted in ambiente, scooter elettrici by jumpjack on 16 marzo 2013

Oggi, come già anche una quindicina di giorni fa, ho percorso più di 30 km con lo scooter, anzichè i soliti 10+10 per andare a lavoro; quando torno da lavoro ho difficoltà “sul finale”, specie se piove e fa freddo, sulle salite,e arrvio a casa con la batteria carica a metà.
Invece, in queste due prove “lunghe” la batteria si è scaricata solo per metà della prima tacca (su tre tacche), e all’arrivo a casa lo scooter correva ancora come un treno…. MA solo in pianura: alla prima salita, e dopo 30 km ad ogni partenza, la lancetta della batteria va sul rosso e suona il cicalino; quando mi rifermo, la lancetta torna a metà della prima tacca IN ALTO, quindi come a indicare una scarica del 20%.
Praticamente le mie batterie sembrerebbero soggette a uno strano fenomeno non ducumentato sui datasheet che ho letto finora: contengono ancora moltissima energia, ma non hanno più potenza!
L’idea di mettere un supercondensatore la sto abbandonando perchè troppo complicato, oltre che costoso, trovare l’elettronica di controllo, però vorrei riuscire a trovare una piccola batteria da qualche centinaio di wattora appena, da usare “con le veci” di un supercondensatore: se riuscissi a trovare/costruire un pacco da 60V/10Ah/3C, lo scooter disporrebbe di almeno 40A sicuri per partenze e salite, e per parecchi secondi inveve che 2 come nel caso dei supercondensatori,quindi potrei forse prolungarne la vita un bel po’… in attesa di trovare invece la batteria “completa” per il Lepton, che se ne sta lì sotto la pioggia ad aspettare…

Intanto, lo Zem ha “perso un altro pezzo”, il contachilometri non va più; non so se si è sganciato o rotto il cavo, devo controllare.
E lo specchietto di destra ha deciso di farmi venire un esaurimento, tutti i giorni lo avvito e stringo il controdado, e tutti i giorni dopo solo una ventina di buche si risvita. Ora l’ho stretto talmente forte che temevo di slabbrare l’impanatura, vediamo se tiene!

Una delle due vecchie batterie appare più “stanca” dell’altra, lo scooter risulta moscio già dopo 10 chilometri invece che dopo 20.

Ogni tanto l’acceleratore non ha effetto: lo metto a manette per partire… ma resto fermo come un sasso!
Non riesco a capire se dipende dai sensori di sicurezza dei freni, dall’acceleratore stesso o da altro.

Anche il sedile sta ormai per lasciarmi: dopo due anni di esposizione alle intemperie e alle mie chiappe, si sono formate dapprima delle pieghe, che ora si sono consumate, è scomparsa la plastica e si vede il tessuto sotto; mi sa che tra un po’ si aprirà come un carciofo.

Considerando che tecnicamente sarebbe ancora in garanzia, se non fosse per il filo staccato dal meccanico quasi due anni fa, sono un sacco di impicci!

Il finto primo decino di Paperon de’ Paperoni

Posted in intuizioni by jumpjack on 15 marzo 2013

Rubrica “Cold cases- casi irrisolti”

Ottobre 1993.
In Italia l’Istituto Poligrafico – Zecca dello Stato conia una curiosa monetina: la “numero uno” di Paperon de’ Paperoni, il mitico “primo decino”, ossia i primi 10 centesimi guadagnati dal noto personaggio dei fumetti Paperon de’ Paperoni da bambino, dando inizio alla costruzione del suo enorme impero finanziario.
Ed eccolo qua, il primo decino coniato in oro:

 

Non c’è che dire, è proprio “uguale” a un decino di uso corrente…

 

Ma… un momento… non c’entra niente!!!
Piuttosto, la moneta coniata dalla Zecca è simile a questa:

Ma questo NON è un decino… è un centesimo!!!

Proprio così, i primi dieci centesimi di Paperon de’ Paperoni sono diventati un centesimo!

Di sicuro Paperone non avrebbe gradito molto vedersi volatilizzare così i suoi primi 9 centesimi! 🙂
La buffa svista nacque probabilmente dal fatto che il “primo decino” è spesso anche chiamato “la numero uno” nei fumetti… ma l’ “uno” si riferisce al fatto che fu “la moneta numero uno”, non al valore in centesimi della moneta stessa! La “numero uno” di Paperon de’ Paperoni era una moneta da dieci centesimi!
Chissà se la svista ha fatto aumentare di valore una moneta… inesistente?

“Cold cases” – La bufala dell’11 settembre

Posted in intuizioni by jumpjack on 14 marzo 2013

Nessun complotto terroristico, nessun complotto di Stato, nessun disco volante, nessuna complicatissima messa in scena: un avvenimento, invece, talmente semplice, da gettare talmente tanto nell’imbarazzo l’Amministrazione e la Difesa americane e l’opinione pubblica, da scatenare una caccia al complotto di risonanza mondiale, o meglio, una colossale caccia al capro espiatorio, con gli “effetti collaterali bellici” che tutti sappiamo.

E’ quella che io ho battezzato “Sindrome di Kennedy”: quando nel 1963 un cretino qualunque con un fucile in mano potè affacciarsi liberamente a una finestra e far fuori il “presidente più amato dagli americani” solo perché a lui stava sulle scatole, l’imbarazzo che, allora come nel 2001, travolse Amministrazione e opinione pubblica scatenò la caccia al complotto, al colpevole, ai segreti di Stato.

Successe la stessa cosa nel 1983, quando un cretino qualunque era libero di girare in piazza S.Pietro con una pistola e sparare a un Papa di passaggio che se ne andava bellamente in giro su un’auto scoperta in mezzo a 200.000 persone: imbarazzo, vergogna, caccia al complotto.

 

Ma allora, cosa è successo l’11 settembre 2001, quando chiunque poteva salire a bordo di un aereo con accendini, fiammiferi e forbicette varie e poteva entrare comodamente in cabina di pilotaggio semplicemente bussando alla porta o, se proprio doveva, sfondandola con un calcio?

Quattro fanatici decisero di dare spettacolo, bussarono a quattro cabine di pilotaggio, entrarono, riempirono di pugni piloti e assistenti e si misero ai comandi.

E si schiantarono sulle Torri Gemelle.

Nessuno poteva immaginare che potesse bastare un aereo carico di carburante a tirare giù un grattacielo alto 300 metri.

Ma fu molto comodo per tutti i detrattori che l’America aveva disseminato nel mondo: “Sì, siamo stati noi, l’abbiamo fatto apposta, era tutto calcolato, visto come siamo forti?”.

Che imbarazzo, 4 invasati qualunque rivelano al mondo che La Grande Superpotenza A Capo Del Mondo Occidentale ha in realtà le brache calate e chiunque può metterla in crisi in quattro e quattr’otto, quando vuole e come vuole!

Bisognava assolutamente trovare un capro espiatorio, un piano contorto, un mandante e almeno una quindicina di colpevoli che abbiano proditoriamente aggirato le inviolabili misure di sicurezza americane.

Il resto è nei libri di storia.

 

E, a proposito, anche abbattere intenzionalmente con un missile un aereo civile con 200 persone a bordo, bambini inclusi, non avrebbe costituito un gran motivo di orgoglio per Amministrazione e Difesa americane. Meglio che tutti e 200 si mettano d’accordo e stoicamente si suicidino eroicamente e volontariamente per salvare la Casa Bianca.