2020/08/03

Principi di cannibalizzazioni

Ho trovato le cuffiette che usavo con un vecchio walkman Sonoko e ho pensato di fare bottino degli auricolari e del jack. Così ho provato pure il saldatore e posso confermare che funziona (come del resto sapevo già)

2020/08/02

Sintetizzatore e suonatore

In un post precedente ho finalmente alimentato il sintetizzatore provando la cosa più ovvia, cioè l’USB del nanuino (o come volete chiamarlo). Avevo però dei dubbi perché si accendono delle luci che non ricordavo di aver visto accese.

Più volte ho anche detto che non avevo mai prestato la dovuta attenzione a come stessero le cose quando lo suonava: a cosa era attaccato? Ricordavo vagamente solo l’uscita audio.

2020/08/01

Prima della tastiera

Prima che gli regalassimo la tastiera il sintetizzatore aveva alcuni tasti, scomodissimi, con i quali provava a fare i primi accordi. Ho trovato una foto nella quale si vede la versione del sintetizzatore prima della tastiera.

2020/07/05

Un gioco che sembra facile…

Mi sembra un’idea semplice che persino io dovrei riuscire a realizzare: una pulsantiera per prenotare il turno di un gioco che accetta fino a 4 giocatori (squadre).

Immagino uno scatolotto che ha 4 ingressi, ai quali è possibile attaccare, tramite un filo lungo (niente bluetooth…), i pulsanti (con impugnatura ergonomica… o no). In corrispondenza di ogni ingresso due LED: uno per testimoniare il funzionamento del pulsante e un altro per indicare il “vincitore”.

Un display (4 cifre da 8 segmenti) sullo scatolotto indica il tempo (in millisecondi…). Un tastino sullo scatolotto permette di selezionare e mostrare il tempo degli altri pulsanti (i perdenti). Un quinto pulsante serve per inizializzare/avviare il temporizzatore ed è in mano al “mastro di gioco” — cioè per esempio chi legge la domanda, o un operatore incaricato di questo compito una volta che il presentatore ha letto la domanda (o quel che sia nel gioco).

Come timer dovrei usare il 555, e serve un contatore che “manda” i conteggi a N latch che latchano solo quando il giocatore preme il corrispondente bottone (solo il reset fatto dal mastro di gioco li può sbloccare). Dei comparatori possono essere usati per far sì che si accenda il LED del più veloce, e il display visualizzerà il suo tempo. Un pulsante consentirà di vedere a che tempo si sono “latchati” gli altri.

Sto immaginando un progetto digitale, come si può intuire.

Con 4 posso arrivare a 9999 millisecondi, ma facciamo che invece il massimo sia tale che siano sufficienti 12 bit. Mi servono contatori a 12 bit, e per ogni “pulsante” deve essere possibile memorizzare questi 12 bit.

Usando un flip-flop D, ne servirebbero 12×4… usando 74LS74 che ne contiene 2, servirebbero 24 di questi componenti… Usando un 74LS273 che ne contiene 8, ne bastano 6. Dopodiché serve un componente per poter selezionare quale valore deve visualizzare il display, e quindi poi serve un qualcosa che decodifichi questo valore in modo adatto per un display costituito da 4 cifre di otto segmenti ciascuna (dovrebbero essere solo sette: non sono interessato il punto: il numero visualizzato è espresso in millesimi).

Poi come detto mi serve un componente (o un blocco) per contare (un contatore) fino a 212: sarà il timer (555?) a far incrementare ogni volta questo contatore, che poi sarà resettato dal pulsante del mastro di gioco.

I 12 flip-flop D di un pulsante bloccano il valore fornito da questo contatore quando il pulsante viene premuto. (Ogni seconda pressione del tasto non deve avere effetto, quindi non serve debounce?)

Il primo flip flop D che “scatta” deve far partire un altro conteggio? Il timer va ancora per qualche ciclo, in modo che gli altri abbiano tempo per premere, se premono. Se non premono il valore indicato dovrà essere il massimo (tutte e 12 le linee su).

Servono condensatori e resistenze adeguate per far sì che il timer dia un impulso al millisecondo. La precisione non è essenziale, visto che si procede per differenze.

Dei comparatori non credo che servano: si può fare una logica per cui il primo flip-flop a bloccare un valore è anche il vincitore.

Dopo che il primo ha premuto il pulsante, quanti “cicli” (millisecondi) devono passare? Ovvero, dato un evento a cui N persone devono reagire, qual è la “variabilità” della reazione. (Al di là del termine statistico corretto: mi interessa sapere quanti ms ha senso aspettare prima di rinunciare definitivamente a “sentire” anche la pressione degli altri bottoni.

Raggiunto questo limite, la “memoria” dei vari pulsanti non premuti viene portata tutta su, in modo che sul display mostrino il massimo. (Il valore massimo può essere visualizzato in modo speciale, per esempio con tutte “lineette” invece che con il valore effettivo.)

Ricapitolando i componenti per ora:

  • condensatori, resistenze (da contare)
  • 1 × timer 555…
  • 6 × 74LS273
  • 8 × LED
  • 7 × pulsanti (uno in più di quanto detto prima perché voglio un reset esplicito…)
  • 1 × display (questo?

Ma non è finita: il display è tale per cui accende solo una cifra per volta. Quindi occorre passare rapidamente da una cifra all’altra (abbastanza rapidamente da non far vedere che si spegne). Forse si può usare sempre il timer (che quindi non si ferma mai in realtà) per selezionare a rotazione le cifre.

  • 1 × 74HC595 (shift register)

E poi: come converto il numero binario rappresentato dalle 12 linee in un numero a base 10 e dunque in 7×4 (numero delle cifre) linee che, una per volta, vanno ad accendere le cifre del display?

Finisce che sarebbe molto più facile e forse anche economico progettare il tutto con un µC adeguato (ATmega usato da papà mi sembra un po’ eccessivo per un progetto simile: basta e avanza un µC molto più elementare).

Ma proseguendo la strada dell’idea iniziale (solo componenti passivi e componenti digitali “elementari”)… mancano due componenti/blocchi:

  • convertitore 12-bit a decimale (BCD × 4 cifre)
  • multiplexer (deve selezionare 4 gruppi di 12 linee in ingresso e uscire con le 12 linee selezionate)

Le 12 linee selezionate dal multiplexer vanno al convertitore 12-bit a decimale BCD, che in qualche modo va al display (una cifra per volta a rotazione)

Mancano ancora parecchi componenti mi sa, se voglio evitare, come in effetti voglio, µC. Altrimenti: rinunciare all’idea di memorizzare i millisecondi e permettere di visualizzarli. Cioè, detta altrimenti, uno si deve fidare della macchina e basta: il circuito accenderà il LED di chi è arrivato prima e questa prima “attivazione” va a bloccare la possibilità di accensione dei LED degli altri giocatori, dando quindi contezza di chi sia il vincitore.

Per 12-bit a 4 cifre BCD, cfr. pure questo forum in cui un commentatore in effetti suggerisce l’uso di µC… (Lui 16-bit… basta tenerne 4 sempre a 0 si può riciclare la soluzione.)

Senza usare un µC il progetto è più “dispendioso”.

Ho buttato alcuni dei componenti alla rinfusa in KiCad, tanto per avere un’immagine per questo post:

Visto che il progetto è semplice ma nello stesso tempo presenta delle “complicazioni” interessanti, forse lo continuo davvero.

Fritzing?

In questo video lo schema è marcato Fritzing, e quindi suppongo che l’immagine della breadboard sia pure generata con Fritzing, e mi sembra più 2D-osa… :think: Ma forse solo perché non compaiono componenti con lunghi piedini (il disegno delle resistenze e dei circuiti integrati è ok…)

Il testo associato dovrebbe essere questo: Arduino lesson – 4 Digit 7 Segment LED Display.

2020/07/04

Fritzing e condensatori ingombranti

Volevo provare a riportare la breadboard su Fritzing che sembra molto carino e tutto, ma ho scoperto, con un pizzico di disappunto, che l’aspetto “3D” intralcia non poco il posizionamento dei componenti e che non c’è una vista 2D (dall’alto). Una vista “piatta”, ma ancora grafica e non schematica, sarebbe più pratica, almeno per i miei scopi e il mio utilizzo. O per le mie capacità visuali: come al solito preferisco le codifiche “testuali”, per cui stavo pensando di scrivere la breadboard con un linguaggio ad hoc da inventare (un DSL in ruby o in lisp?) che descriva la breadboard e che nello stesso tempo, dopo aver scritto l’opportuno codice, consenta di generare un file nel formato di Fritzing e uno nel formato di KiCad, ecc. Insomma, output ad libitum, a patto di spendere tempo per capire le specifiche dei formati e per scrivere il relativo codice generatore.

(Nell’immagine c’è il tentativo di riprodurre la breadboard di un progetto su Make Electronics), interrotto nel tentativo di limitare l’ingombrante presenza coprente dei condensatori.

Ci sarà un modo di ovviare al problema? Esistono componenti 2D? Dalla lettura rapida di commenti un qualche forum sembra che la risposta sia sì, ma ad oggi non ho trovato niente di usabile con impegno zero.

2020/07/02

Lavori del passato

Scavando tra i documenti si trovano carte che a volte ricordano informazioni dimenticate, altre volte invece ne danno delle nuove.

2020/07/01

Beethoven, Schubert e Chopin tra i circuiti

Prendeva gli appunti su qualunque pezzo di carta fosse a portata di mano.

In quest’immagine ci sono un paio di appunti di circuiti e opere classiche…

2020/06/29

Caricatori alternativi

Nell’arco del tempo siamo passati da un telefono fisso “classico” a un fisso “moderno”, in comodato d’uso (Telecom), e poi ai telefoni portatili, il primo dei quali fu quello fornito da Tele2. Successivamente cambiammo compagnia, il telefono di Tele2 (abbondantemente ripagato) non fu richiesto indietro, e perciò lo usammo finché si poté usare.

2020/06/28

LM555

A quanto pare esiste un circuito integrato mitologico, un timer chiamato 555 o in modo simile (su wikipedia in italiano è descritto alla pagina NE555; più informazioni nella pagina inglese 555 timer IC), che è un must nel bagaglio di ogni inventore moderno.

2020/06/27

Forme d'onda

Di sicuro non è possibile ottenere timbri interessanti usando solo una bella sinusoide. Il sintetizzatore ha quindi delle forme d’onda di base per creare diversi timbri. Nei preset dovrebbe essere memorizzata, tramite indice, anche la forma d’onda di partenza insieme agli altri parametri. Non so ancora come avveniva questa selezione (quale combinazione di tasti controllo e tastiera?)

2020/06/26

Scacchi in hardware

Volevo riprendere il discorso dei motori scacchistici (un’altra delle cosucce che ho in mente che richiedono poco tempo e poco impegno…) e mi sono chiesto se c’è qualcosa di attinente implementato in hardware.

E la risposta è sì, e non da ieri…

2020/06/25

Simulazione spice dal tutorial

Sto provando a fare altri simulazioni con ngspice usando KiCad, e quindi partendo dagli schemi. Non sono riuscito ad ottenere quello che volevo.

Per verificare che almeno ngspice sia “buono”, ho provato questo tutorial.

2020/06/24

Biglietti tra le ferraglie

Per qualche misterioso motivo conservava i biglietti usati. Forse all’inizio lo faceva perché gli avevano detto di farlo, magari per avere un rimborso spese o qualcosa del genere. Ma ha continuato a farlo anche quando ciò non era possibile.

2020/06/22

Organi in giro

Un organo “vero” a Losanna (in realtà l’organo non si vede), fotografato da mio padre a fine aprile 2016.

2020/06/21

Era un computer?

Ci sono oggetti di cui purtroppo non esistono foto perché all’epoca non c’era il digitale: le macchinette fotografiche erano per le vere occasioni e non per fotografare oggetti della quotidianità. Il rullino aveva poche foto e lo sviluppo costava.

2020/06/20

Altro sull'organo elettronico 2

Forse gli appunti sull’organo elettronico sono un miscuglio di apporti o elaborazioni originali e trascrizione di un progetto forse apparso a puntate su qualche rivista d’elettronica di quei tempi?

2020/06/19

Come poteva apparire?

L’organo elettronico era definito anche nell’aspetto, nelle dimensioni e quindi nel suo ingombro.

2020/06/18

Altro sull'organo elettronico

L’organo elettronico — in progettazione negli anni ottanta — richiedeva molto più impegno nella realizzazione finale e gli aiuti tecnologici all’epoca erano molto meno accessibili o proprio inesistenti.

2020/06/17

Prova simulazione di un 4051 in VHDL

Ho provato un po’ di VHDL. Ho scritto quello che fa il 4051, e l’ho “provato”. La simulazione alla fine genera un file VCD (value change dump) che ho guardato con gtkwave. L’immagine seguente è la cattura del risultato.

2020/06/16

Simulazione con un transistor

Un altro test di una simulazione un poco più complessa e soprattutto che usa un transistor. (Attenzione: questo circuito è solo per la simulazione! Se lo provate davvero e il transistor si “rompe”, non ve la prendete con me che, come detto, sto esplorando questo nuovo territorio — scaricando parole su questo blog per una specie di necessità personale, non per “insegnare” qualcosa… anche se si possono imparare lezioni da tutto, anche dagli errori altrui, naturalmente, posto di partire dal presupposto che quanto qui scritto non può costituire una fonte autorevole della materia trattata, tra l’altro come prodotto collaterale. In particolare notate che V1 è connesso direttamente alla base e che il collettore diventa a tensione inferiore alla base per un certo lasso di tempo…)

2020/06/13

Ritrovati misteriosi

Scavando in un cassetto contenente cacciaviti, trapano, succhiastagno, spellafili, pinze, un metro e ancora altre cose… abbiamo trovato questa bustina di plastica con dentro un qualcosa di non meglio definito.

2020/06/12

Cose forse perse

Mi sono venuto in mente quattro cosette che mi piacerebbe recuperare ma non so più dove possano essere, se esistono ancora.

2020/06/11

Tracce di passato nel presente

Sfogliando il quaderno del progetto storico dell’organo elettronico (anni ottanta!) uno schema a blocchi (schema generico) contiene il testo µP: quindi nel progetto dell’epoca era prevista la presenza di un microprocessore per svolgere certe funzioni.



2020/06/09

Conti e appunti 1

Papà prendeva appunti quando e dove capitava. Nei casi più fortunati poteva essere un foglio A4 riciclato (scritto solo su una faccia). Altre volte erano questi grigi fogli da stampante che abbiamo in quantità da più di tre decenni.

2020/06/08

KiCad e ngspice, prime prove

KiCAD permette anche di eseguire una simulazione del circuito. Qui c’è un esempio che potrebbe essere utile.

Quello che non mi piace è che lo schema è diverso a seconda se si voglia un certo stile o si voglia creare il circuito per simularlo. Per esempio se metto una power source di +3.3V, questa sorgente non corrisponde a una sorgente “reale” utile alla simulazione.

2020/06/07

Sottili induttanze

Sulla breadboard il pin 3 del 4051 va al pin 28 dell’ATmega328 (PC5) tramite un filo più lungo del necessario e perciò è costretto a fare una spira per non strabordare (o strabreadboardare?)

Il motivo più ovvio è che non aveva fili della lunghezza giusta…

… e nemmeno tra i jumper da lui preparati ce ne era uno adatto.

Quindi ha usato quel filo che fa la spira.

Ciò però mi ha fatto ricordare di una cosa che mi aveva raccontato.

Non ricordo i dettagli: forse si trattava di un televisore, forse di qualche altro apparecchio. Comunque, fatto sta che lo rimonta, lo accende, dovrebbe tutto funzionare bene ma invece non è così. Cos’è, cosa non è? Alla fine risultò questo: una volta aperto lo scatolotto, al suo interno c’era un filo lungo che faceva una spira. Quando aveva finito l’intervento e richiuso lo scatolotto, non aveva fatto rifare al filo quella spira — forse addirittura ne aveva messo uno più corto? Non ricordo. Comunque la morale è questa: quella spira apparentemente inutile in realtà creava un effetto induttivo necessario al più corretto funzionamento dell’apparecchio.

Sicuramente qui non c’è niente del genere… però quel filo lungo che fa una spira mi ha ricordato questo racconto fattomi tantissimi anni fa (facevo ancora le superiori, quindi più di venti anni fa).

2020/06/06

Bug software e uscita audio

Ancora una nota sul codice (ce ne saranno altre, ovviamente) prima di vedere quella che potrebbe essere l’uscita audio.

Mi ero concentrato sul codice serie I, pensando che fosse quello più consolidato, ma ho trovato un bug tale da inficiarne il funzionamento dei modi (almeno nella versione 8).

2020/06/05

Scansione tasti e tasti controllo (funzioni ed effetti)

In un post precedente avevo detto che mio padre aveva preso in considerazione l’idea di sentire la pressione del tasto all’inizio o alla fine (cioè quando arriva in fondo) o entrambe, in modo da poter avere la velocità.

2020/06/04

Commodore

Non ricordo esattamente quando, ma penso ben prima che a casa entrasse un’Amiga (cosa che accadde quando facevo la quinta elementare o forse già la prima media), fece la sua comparsa una “bella” calcolatrice Commodore.

2020/06/03

Riparazioni e recuperi

«Papà, non funziona più…»

Così sono iniziate molte sessioni di riparazione di oggetti elettronici e non solo.

In questa foto, colta da un cugino, stava riparando il telecomando della macchina: il mini interruttore non funzionava più. Utilizzando gli strumenti in suo possesso, che non sempre erano quelli più adatti allo scopo, riusciva a riparare quasi tutto.

Saldatura o dissaldatura in corso

Sono visibili le destre mani, il saldatore, un multimetro, il contenuto di uno dei molti scrigni rovesciato sul tavolo (per cercare il sostituto del pulsante rotto), un pezzo di una lampada LED…

Con quello stesso saldatore chissà quanti componenti avrà recuperato e inscatolato. Per alcune cose usava bustine di plastica, per altre le scatole rotonde dei Formaggini, per altre ancora varie ed eventuali scatole e scatoline che riusciva a recuperare — e poi ovviamente alcune cose andavano nei cassettini che qui ho chiamato “scrigni”: si vedono nella foto del post Lungo il viale della memoria, cassettini rossi, verdi, grigi…

Ecco un concentrato di componenti a montaggio superficiale, non so di che provenienza:

2020/06/02

Perché il 4051?

Perché il 4051? Ci possono essere tanti motivi, a cominciare da quelli tecnici: era il componente giusto per quello che voleva fare e aveva le caratteristiche tecniche necessarie. E certamente era già nel suo arsenale1.

Ma forse anche perché era un componente a lui noto, sia perché, come già detto, presente nel suo arsenale, sia perché aveva questo datasheet

Tratto da Fairchild semiconductor, “34000 isoplanar CMOS data book”, 1975. Cartaceo, ovviamente. Quello che sta sulla BB non è proprio il 34051; la sigla stampigliata sul componente è V4051D; c’è un simbolo che non riesco a definire bene (penso che sia il produttore del componente) e un’altra scritta, A6, in basso a destra della sigla del componente.


  1. Arsenale… cercando trovo: dall’arabo dār aṣ-ṣinā‘a (“casa del lavoro” o “del mestiere”), passata all’italiano tramite il veneziano arzanà. Sulla Treccani dicono di confrontare anche darsena: dār ṣinā‘a, ma dall’antico genovese, e come significato gli viene dato “casa dell’industria”, “fabbrica” (in fondo la stessa cosa). Mio padre si divertiva a trovare queste etimologie; ogni tanto facevamo il censimento delle parole italianizzate ma che avevano una più lontana origine. Per me questa è una nuova: non ricordo che l’avessimo mai elencata tra quelle a noi note derivanti dall’arabo. Nell’accezione luogo in cui sia ammassata molta roba in disordine, penso che si confaccia perfettamente all’angolo di mio padre.↩︎

2020/06/01

Ancora sul codice

Ho continuato a guardare il codice, serie I versione 8 (quello che va, o uno di quelli che vanno, con lo schema 8) un terreno a me un po’ più familiare.

La funzione setup() eseguita una tantum può essere interessante anche per capire il resto (ferraglia inclusa); poi devo cercare quali sono i fuse usati.

2020/05/31

Cosa c'è nelle scatoline bianche?

Cosa c’è nelle scatolette bianche?

Nella foto usata in Presentazione del sintetizzatore si vedono due scatoline bianche a destra (chi ha occhio avrà notato anche un multimetro, ma non era quello in uso).

Cosa mai ci sarà dentro?

2020/05/30

Schema e codice del sintetizzatore

Lo schema quasi completo del sintetizzatore su breadboard è più o meno questo:

Si vedono la matrice (già mostrata), un array resistivo che è parte del circuito della matrice (due array in parallelo, in realtà, sicuramente perché non ne aveva uno del valore che gli serviva1), il µC 328P, il 4051, l’oscillatore, i futuri potenziometri, per ora trimmer (ADSR + LFO2), un condensatore di disaccoppiamento. Ci sono altri componenti passivi sulla breadboard (condensatori, principalmente, e resistenze, tre LED ma legati all’ISP), ma ancora devo trascriverli.

Polifonia, parafonia, mono, stereo…?

Il sintetizzatore ha polifonia sei, nel senso che suona fino a sei note in contemporanea. Ma controllando la definizione di parafonia, mi accorgo che potrebbe avere parafonia sei, e al massimo polifonia due…?

Mio padre suonava fondamentalmente triadi consonanti, tre note con la sinistra e tre con la destra (quindi tutte raddoppiate).

2020/05/24

Soluzioni e dubbi (e correzioni)

Il progetto prevedeva sedici potenziometri: due ADSR (4 parametri ciscuno), due LFO (due parametri ciascuno), più altri 4 parametri: in uno degli schemi, vicino a due potenziometri si legge PITCH e VEL2.

Ma sulla breadboard ci sono solo 7 trimmer (e solo due circuiti integrati: il µC e un 4051, 8-channel analog multiplexer/demultiplexer).

I 7 trimmer

2020/05/20

Esplorazione visiva della breadboard 2

In questa foto si vede l’ATmega328P e (più o meno) i suoi 28 pin, oltre all’oscillatore e un trimmer in alto, e un condensatore a destra.