PSXScope

psxinterfaceQuando ho messo per la prima volta le mani sulla PlayStation, il suo controller mi è piaciuto parecchio, tanto che avevo pensato di utilizzarlo anche altrove. Mi sono messo a cercare informazioni sul protocollo utilizzato per la comunicazione con la console, ma non ho trovato un bel niente!

Mi sono quindi fatto prestare un oscilloscopio (lo Zeroplus LAP-C è arrivato molti molti molti anni dopo), e ho cominciato a sbrogliare il protocollo a mano.

Il programma in questione (che poi ho usato anche per altro, dato che di fatto non era altro che un analizzatore logico) mi ha aiutato psxinterfacehwmolto nel reverse engineering, dato che i due canali dell’oscilloscopio non erano sufficienti. Il programma, assieme ad una interfaccia hardware (rigorosamente cablata su millefori, come quasi tutti i miei prototipi… adoro l’effetto gomitolo di lana dopo che è stato aggredito da un branco di felini :) ) connessa alla porta parallela del PC, alla playstation e al joypad, può generare un’arbitraria sequenza di dati su ogni piedino di uscita, catturando nel contempo lo stato di tutti i segnali presenti sul controller.

MP3 Jukebox

juke1Il mio primissimo jukeboxe MP3. No, gli iPod non c’erano, ma nemmeno i creative Nomad o i Diamond RIO…  ;)

C’è un PC dietro, ovviamente, avevo anche in mente di usare la scheda col decoder hardware ma questioni di tempo (e di voglia, ahemm…) me lo hanno impedito.
Il PC è stato messo in un apposito case già dotato di pannellino frontale con LCD 2×16 e un piccolo tastierino. Quest’ultimo è stato interfacciato con winamp da un plugin scritto appositamente.

La seconda versione del pannello frontale invece, con LCD 4×20, era invece collegata in emulazione di tastiera, con il PC nascosto juke2dentro un vano del mobile. Il PC (un modesto Pentium 133 con 20 giga di HD) parte con una configurazione particolare di windows98, che permette lo spegnimento “al volo” senza alcun problema. Il PC è senza monitor e floppy, ma viene caricato all’avvio oltre a winamp, tutto il sottosistema di rete (in modo da poter caricare i brani e le playlist in remoto) e un server VNC. Ho poi inserito un ricevitore interno che mi permette di accenderlo e spegnerlo e di controllare alcune funzioni tramite i comandi X10 via rete elettrica.

AxeKey e AxeKey Programmer

Primo prototipo della chiave hardware

La AxeKey è una chiave hardware su porta parallela per la protezione di software.

La chiave mi è stata richiesta dalla Geo&Soft di Torino ed è stata realizzata con l’oramai dimenticato PIC16C54 e con uno dei primi sistemi di sviluppo di Microchip arrivati in Italia.

La chiave è dotata di 64 bytes di payload salvati in eeprom interna, e di un certo numero di funzioni (sia challenge-response che di calcolo) a bordo. Ho sviluppato anche le necessarie librerie per permettere al software da proteggere di chiamare le funzioni a bordo della chiave.

Dialog del programmatore per la chiave

Il committente non ha fatto poi uso della eeprom interna, quindi il software di programmazione l’ho scritto in un secondo tempo, per un utilizzo personale della AxeKey.

R/C Speed Controller

rcspeedQuesto è un aggeggio molto carino che uso sulla mia macchina radiocomandata Tamiya (e ne ho anche venduto qualcuno).

Il suo scopo è quello di interpretare i segnali provenienti dalla radio, e pilotare di consequenza il motore della macchina. I finali di potenza hexfet reggono tranquillamente più di 40 Amperes senza praticamente nessuna dissipazione termica. Ma la cosa che mi è venuta meglio è la gestione dello stick dell’acceleratore:
Una piccola zona attorno alla posizione centrale dello stick è definita come “dead zone”, ovvero il motore è libero di girare. Muovendo lo stick in avanti, ovviamente, si controlla la velocità del movimento in avanti. Muovendo lo stick all’indietro, fino a metà corsa circa, si ottiene la frenata attiva: il motore viene cortocircuitato e di conseguenza oppone molta più resistenza alla rotazione. Oltre la metà corsa, si ottiene un movimento all’indietro con velocità proporzionale alla posizione.

Il controller può essere configurato molto facilmente per qualunque radio, basta accendere la macchinina tenendo premuto il pulsante sul circuito, attendere il “beep” (nessun altoparlantino, ho usato il motore come altoparlante :) ) dopodichè si porta lo stick tutto in avanti e si preme il pulsante, poi si porta lo stick tutto indietro e si preme nuovamente il pulsante. Finito. La configurazione viene scritta su una eeprom interna, e viene perciò conservata anche a batterie scollegate.

Se poi si usano le macchine in casa, oppure si sta imparando a guidare una macchina radiocomandata, si può attivare il “dummy mode”: premendo il pulsante a macchina accesa, il controller riduce la velocità massima a circa un quarto di quella normale, pur mantenendo tutte le funzioni proporzionali, e la frenata attiva.

(Naturalmente hobbyking e i suoi ESC da 10 dollari erano molto molto lontani… all’epoca non esistevano circuiti del genere a prezzo ragionevole)

Display dimostrativo a LED

leddispQuesto è stato, molti molti anni fa, il mio primo “vero” progetto (nel senso che qualcuno me lo ha chiesto e mi ha pure pagato!)

E’ un display a matrice con 16×16 LEDad alta luminosità, con pilotaggio diretto senza multiplexing, e un minimo di logica a bordo per permettere ad un PC di pilotarlo attraverso la porta parallela. La luminosità era incredibile (come la corrente assorbita) e con solo 16 dei 256 LED accesi, era impossibile guardare direttamente il display a meno di due metri.

Ho poi costruito un controller stand-alone, con una sequenza di immagini e animazioni memorizzate su EPROM. La ditta per cui l’ho realizzato ha poi messo tutto in un box di alluminio costruito apposta, per usarlo come campione dimostrativo. Mi è spiaciuto molto non tenerlo. Ho però conservato un prototipo 8×8 (tutto “filato” a mano) della prima versione, che è quello in fotografia.