Turing-ring: processo meccanico ai giorni nostri!

Turing

La Macchina di Turing desta ancora oggi notevole curiosità tra gli appassionati. Se non ci credete, sappiate che alcuni anni fa, Mark Wilson era un partecipante a una conferenza online che organizzava una competizione su un problema della macchina di Turing (TM). Dopo la vittoria della competizione, il premio ottenuto è stato un anello NeoPixel che imita il nastro utilizzato all’interno di una macchina di Turing.

Una macchina di Turing (MdT – NDR) è una macchina ideale che manipola i dati contenuti su un nastro di lunghezza potenzialmente infinita, secondo un insieme prefissato di regole ben definite. In altre parole si tratta di un modello astratto che definisce una macchina in grado di eseguire algoritmi e dotata di un nastro potenzialmente infinito su cui può leggere e/o scrivere dei simboli. Si tratta di un potente strumento teorico che viene largamente usato nella teoria della calcolabilità e nello studio della complessità degli algoritmi, in quanto è di notevole aiuto agli studiosi nel comprendere i limiti del calcolo meccanico; la sua importanza è tale che oggi, per definire in modo formalmente preciso la nozione di algoritmo, si tende a ricondurlo alle elaborazioni effettuabili con macchine di Turing.

 

Turing

 

Sebbene sembri elementare, questa macchina è in grado di eseguire qualsiasi algoritmo informatico. Quindi, qualsiasi altra macchina completa di Turing, con tempo e memoria sufficienti, possiede le medesime capacità. Questo è ciò che ha ispirato Wilson a creare una versione leggermente più avanzata, soprannominata Turing-ring, che utilizza il colore di un LED per denotare il suo stato, insieme a diverse opzioni in un menu per eseguire determinate attività.

Come accennato in precedenza, le macchine di Turing sono estremamente semplici nel modo in cui sono costruite, motivo per cui il progetto di Wilson si basa su un singolo anello NeoPixel LED RGB guidato da un Arduino Nano. L’input dell’utente viene immesso tramite un encoder rotativo che dispone anche di un pulsante per confermare una selezione. Infine, l’alimentazione viene fornita al dispositivo tramite un connettore jack cilindrico da 5 V CC.

 

Turing

 

L’interfaccia utente di qualsiasi dispositivo/programma è una cosa difficile da ottenere e il compito è reso ancora più difficile quando tutto ciò con cui una persona può interagire è un anello LED e un singolo quadrante. All’avvio, il sistema è in “modalità editor”, il che significa che è possibile scrivere sullo stato del nastro o della macchina. Se è selezionata la modalità “menu”, vengono visualizzate un totale di dieci opzioni che consentono all’utente di eseguire qualsiasi operazione, dal caricamento/memorizzazione dei programmi alla modifica della velocità globale. Inoltre, è possibile modificare la velocità di un programma attualmente in esecuzione ruotando l’encoder rotativo sulla parte anteriore.

Per la shell della macchina, Wilson ha tagliato al laser un pannello posteriore con spazi per le viti e il connettore cilindrico CC da un foglio di acrilico nero. Sulla parte anteriore, è stato fabbricato un secondo pannello nero insieme a uno bianco più piccolo che si trova appena sopra l’anello NeoPixel. Il corpo e la manopola del codificatore rotante sono stati stampati in 3D e rifiniti con una trama liscia e lucida per abbinarsi al resto dei pezzi.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nel suo video di presentazione del Turing-ring, Wilson mostra come è possibile creare una sequenza di “inseguimento” con poche regole. Tuttavia, non si ferma qui, poiché il suo repository GitHub contiene esempi di programmi che includono il conteggio in binario, il ciclo dei colori e persino l’aggiunta di due numeri insieme. Tutti questi programmi sono dati da una stringa codificata che specifica gli stati e le azioni eseguite. Meglio ancora, queste informazioni possono anche essere lette dalla porta seriale in fase di runtime se la memoria flash si sta esaurendo.

Join our groups onTelegram…

… and don’t forget our social channels!

###Da sempre appassionato di tecnologia, soffro di insaziabile curiosità scientifica. Adoro sperimentare e approfondire le mie conoscenze sulle ultime novità sul mercato in termini di hardware, alta tecnologia e videogiochi. Attratto e coinvolto nella prototipazione hardware dalla piattaforma Arduino, Raspberry Pi e Nvidia Jetson.### ###Always passionate about technology, I am suffering from insatiable scientific curiosity. I love experimenting and deepening of my knowledge on the latest news on the market in terms of hardware, hi-tech and video games. Got attracted and involved in hardware prototyping by the Arduino platform, Raspberry Pi and Nvidia Jetson.###

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.