Probeer deze gloednieuwe analoge computer

Er was eens, als je de pagina’s opende IEEE-spectrum Mogelijk ziet u overal op de pagina advertenties voor analoge computers, waarin het gebruiksgemak wordt aangeprezen en zelfs (in het geval van één model dat in een karretje met wielen is ingebouwd) de draagbaarheid ervan. Ingenieurs sloten potentiometers en op-amps aan om representaties van ingewikkelde differentiaalvergelijkingen op te zetten en de oplossingen af ​​te lezen als verschillende uitgangsspanningen. Maar toen veroverden digitale computers alles, waardoor analoog computergebruik net zo achterhaald werd als radiocoherers, mechanische televisies en ponskaarten. Bijna.

Net als andere ter ziele gegane technologieën die een comeback maken, zoals vinylplaten, Nixie-buizen en luchtschepen, hebben analoge computers aanhangers die aandringen op een heropleving. In 2017 schreef Yannis Tsividis een artikel voor Spectrum waarin hij zijn onderzoek aan Columbia University beschrijft naar de mogelijkheden van digitaal-analoge hybride computerchips. Het digitale element biedt gebruiksgemak, terwijl het analoge element energiezuinige oplossingen biedt voor veel soorten problemen uit de praktijk.

Toen het artikel werd gepubliceerd, dacht ik dat het een aantal overtuigende punten had, maar als gewone experimentator had ik niet echt goede toegang tot analoog computergebruik. Dat veranderde vorig jaar toen ik zag dat startup Anabrid een gloednieuwe analoge machine aanbood, $ 513 TO.

Anabrid’s belangrijkste taak is het ontwikkelen van hybride analoog-digitale chips van het soort dat door Tsividis is ontwikkeld.

Het is DAT bedoeld om het bewustzijn van de mogelijkheden van modern analoog computergebruik te vergroten. TO is een acroniem voor The Analog Thing, en het is een kleine, open-source machine die voornamelijk bestaat uit discrete op-amp geïntegreerde schakelingen.

DAT is kleiner dan de industriële machines van weleer, met slechts acht potentiometers voor parameteraanpassing en vijf integrators, samen met een verzameling hulpvluchten, omvormers, comparatoren enzovoort. Maar IT is niet zomaar een uitgesneden speeltje. Meerdere THAT’s kunnen met elkaar worden verbonden als er meer verwerkingskracht nodig is, en er is een hybride verbindingspoort aanwezig om de verbinding van THAT’s met een digitale computer te vergemakkelijken.

Componenten die nodig zijn voor digitaal-analoog hybride computergebruik.  Een analoge computer is een bord met veel aansluitingen bovenaan en twee rijen knoppen onderaan.Die analoge computer [left] het heeft aansluitingen om verschillende componenten aan te sluiten, zoals integratoren, die overeenkomen met wiskundige bewerkingen. Ik liet zijn resultaten zien via het LCD-scherm [top right]interface-protobord [middle right] en Arduino Uno [bottom right].James Provoost

Zoals de analoge computers die ooit in reclamespots te zien waren SpectrumDAT wordt geprogrammeerd door elementen die wiskundige functies uitvoeren met korte patchkabels met elkaar te verbinden. Je moet op je eigen manier zorgen om de uitgangsspanningen van DAT weer te geven – ik dacht dat het gepast zou zijn om een ​​oude analoge oscilloscoop aan te sluiten die ik een tijdje geleden van mijn oudere broer kreeg, gebaseerd op algemene principes.

Het was tijd om de computer uit te proberen. Alsof het een minuut geleden is dat ik Erwin Kreyszig voor het laatst heb gedownload Geavanceerde technische wiskunde om over differentiaalvergelijkingen na te denken, was ik blij om te zien dat de bijbehorende handleiding van THAT vol voorbeelden en patchdiagrammen staat. Het duurde niet lang voordat ik Euler-spiralen en simulaties van neurale pieken zag opbloeien tot fosforescerend leven, en hun evolutie gadesloeg terwijl ik aan de potentiometers draaide om de parameters aan te passen.

Ik vond het nodig om een ​​oude analoge oscilloscoop aan te sluiten die ik van mijn oudere broer had gekocht.

Maar ik wilde een hybride aanpak testen. Het was een logische keuze om de Anabrid-demopatch te upgraden naar een maanlandingsspel: beginnend boven het oppervlak met beperkte brandstof, bevindt het ruimtevaartuig zich in de greep van de zwaartekracht van de maan. De speler moet het gaspedaal van de motor van het vaartuig regelen door aan de potentiometer te draaien, zodat het vaartuig landt voordat de brandstof opraakt.

Met een oscilloscoop mist het spel een zekere visuele flair, met brandstof- en hoogtemetingen als twee horizontale lijnen. Ook ontbreekt een cruciaal element van elk maanlandingsspel: het bepalen of de landingssnelheid van het ruimtevaartuig resulteert in een sierlijke landing of een nieuwe krater. Maar deze tekortkomingen zouden digitaal kunnen worden opgelost.

Een blokdiagram dat laat zien hoe analoge computerelementen zijn aangesloten.Aan de linkerkant staan ​​de differentiaalvergelijkingen die de vlucht van de maanlander in leerboekvorm modelleren. Aan de rechterkant ziet u hoe ze worden gecodeerd in elementen die door THAT worden geleverd, zoals integratoren en comparatoren. De cijfers in de cirkels verwijzen naar de potentiometers die worden gebruikt om de parameterwaarden in te stellen.James Provoost

Voor mijn digitale computer en grafische weergave heb ik een Arduino Uno en een klein LCD-aanraakscherm uitgegraven. Het LCD-scherm gebruikt bijna alle pinnen van een gewone Arduino Uno, maar er blijven twee analoge ingangen beschikbaar om spanningen te lezen die de hoogte en brandstof vertegenwoordigen.

Dit betekende dat er enige nauwkeurigheid moest worden opgeofferd. Intern vertegenwoordigt DAT hoeveelheden die het bereik tussen -10 en +10 volt gebruiken. Dat volledige bereik zou de analoog-naar-digitaal-converters die in de meeste microcontrollerkaarten zijn ingebouwd, ondermijnen, dus DAT comprimeert en verschuift dat bereik voor een hybride poort. Daar variëren de spanningen tussen 0 V en 3,3 V. De Arduino Uno werkt op 5 V en leest met een precisie van 10 bits, dus de hoogte en het brandstofniveau worden uiteindelijk benaderd als getallen tussen 0 en 675. Maar dat is acceptabel, gezien het feit dat mijn LCD-scherm heeft maximaal 320 verticale pixels om de locatie van het vaartuig boven het oppervlak weer te geven.

Ik heb een Arduino-protoboard gemaakt met connectoren voor het LCD-scherm en een lintkabel die naar DAT’s hybride poort gaat. Het is mogelijk om via de hybride poort enige actieve controle over DAT uit te oefenen, bijvoorbeeld door deze te bevelen terug te keren naar de beginvoorwaarden en Vgl. Omdat er echter slechts twee analoge ingangen beschikbaar waren na het installeren van het LCD-scherm, gebruikte ik de Arduino als een puur passief display.

Ik heb een programma geschreven om het oppervlak van de maan en het ruimtevaartuig van de speler in een klassieke vectorstijl weer te geven. Brandstof wordt weergegeven als een afnemende horizontale balk. De snelheid wordt berekend en weergegeven door de hoogte van het ruimtevaartuig ongeveer 10 keer per seconde te meten en de hoogteverandering te delen door het tijdsinterval tussen de metingen. Wanneer de hoogte nul bereikt, wordt de snelheid gecontroleerd en wordt de speler verteld of hij veilig is geland, zijn vliegtuig heeft beschadigd of bij een botsing is vernietigd. Het programma wacht dan totdat THAT is gereset voor een nieuwe poging.

Tot mijn verbazing werkte mijn hybride apparaat soepel. Ruimtevaartuigen rezen en daalden op het scherm volgens de wetten van de natuurkunde die in DAT nest van draden zijn gecodeerd, en leefden of stierven, afhankelijk van mijn vaardigheid met het gaspedaal. Als introductie tot een vorm van computergebruik die nu voor bijna alle ingenieurs vreemd is: DAT is ongeveer een zo goed ontworpen oprit als je maar wilt. Nu is het tijd om Kreyszig af te breken en mijn eigen natuurkundemodellen te gaan verkennen!

Dit artikel verschijnt in de gedrukte editie van januari 2024 als “The All-New Analog Computer”.