Mechanische Logica

De logische AND- en OR-poorten uit de digitale elektronica kunnen worden beschouwd als de tastbare pioniers van de Booleaanse algebra. Hardwarematig programmeren op printplaatjes met verbindingen vormt immers de basis van wat heden ten dage steeds vaker in software kan worden opgelost. 

Ik ben nog een stap terug gegaan en ben met mijn favoriete constructiemateriaal wat aan het spelen gegaan met de logische functies van deze poorten. En er blijkt ook met mechanische equivalenten van deze poorten te kunnen worden aangetoond dat de functionaliteit van de AND- en OR-functie wiskundig uitwisselbaar is.

Video : toestemming voor cookies nodig
Instellingen

Basisfuncties

Logische poorten vormen het fundament van de digitale electronica. Ze hebben een of meer ingangen en een uitgang waarvan het logische signaalniveau wordt bepaald door de functie van de poort. De logische functies 'AND', 'OR' en de negatie- of 'NOT'-functie (het logisch tegenovergestelde van het ingangssignaal) vormen de basisfuncties van de z.g. Booleaanse algebra. Omdat elke denkbare complexere logische functie eerst mechanisch, later electro-mechanisch en tenslotte elektronisch (en wellicht in de nabije toekomst nog sneller, namelijk op optische wijze) gerealiseerd kan worden uit combinatie van meerdere van deze drie basisfuncties, werden al vroeg relais en later vacuümbuizen gebruikt om deze logische basisfuncties met elektronica te realiseren.

Logical OR symbol

Logische OR

In formules voor digitale elektronica wordt voor de OR-functie vaak het symbool + gebruikt, maar in de Booleaanse algebra is het symbool voor deze functie, ook wel de 'disjunctie' genoemd, het symbool ∨. De functie van de schakeling kan dus als formule worden geschreven als: OR = A ∨ B

De schematisch weergegeven OR-poort hiernaast heeft twee uitgangen: de normale OR én de geïnverteerde OR die op ieder moment precies het tegengestelde signaal voert.

Een praktijkvoorbeeld van een OR-functie, ook wel de logische disjunctie genoemd, zou kunnen zijn:

A = ik heb een fiets
B = ik heb een auto
OR = ik kan naar het werk rijden

De OR-functie beschrijft in dit geval: "Ik kan naar mijn werk rijden als ik een auto of een fiets heb". In de tabel hiernaast zijn alle mogelijkheden en uitkomsten in een z.g. waarheidstabel gezet. Het tegenovergestelde uitgangssignaal van de ingangssignalen A en B en uitgang OR zijn ook opgenomen. Het streepje erboven geeft aan dat het signaal complementair, oftewel geïnverteerd, is. De tabel met de in- en uitgangsmogelijkheden is in de z.g. 'waarheidstabel' weergegeven.

A B A B OR OR
0 0 1 1 0 1
0 1 1 0 1 0
1 0 0 1 1 0
1 1 0 0 1 0

De OR-functie mechanisch opgebouwd

Ver voordat dit elektronisch mogelijk werd, werden er al mechanische constructies gemaakt om bepaalde logische functies uit te voeren. Net als bij alle logische functies staat de manier waarop we technisch de relatie tussen de ingangen en uitgang realiseren in principe los van de uiteindelijk gerealiseerde logische functie. De inwendige werking is triviaal, zo lang alle mogelijke combinaties van de ingangssignalen volgens de ‘geprogrammeerde’ logische functie een eenduidig uitgangssignaal opleveren.

Wie online zoekt, vindt al snel 3D-geprinte varianten of bouwsels van hout, Lego of Knex. Een zuiver mechanische OR-functie poort laat zich echter ook met mijn favoriete constructiemateriaal fischertechnik eenvoudig construeren.

Op de foto hiernaast een compact model OR-poort opgebouwd op een kleine bouwplaat. Bij een dergelijke mechanische variant worden vanzelfsprekend geen elektrische spanningsniveaus voor de logische ’1’ en ’0’ waarden gedefinieerd. De 'standen' van de schuifjes aan de input-zijde (links) bepalen de stand van de wijzer aan de output-kant (rechts) van het mechanisme. De werking is in een statische foto wellicht lastig te doorgronden, bekijk daarom de demonstratie in het filmpje.

Mechanical OR - small

Ter illustratie vergrootte ik het model waarbij voor betere zichtbaarheid de bewegende delen in grijs zijn uitgevoerd. Uit de afbeeldingen van het grotere model op de bouwplaat blijkt, dat de uitgang OR voor ingangswaarden ‘0’ of ‘1’ van de ingangen (A en B), de waarheidstabel van de OR-functie heel precies volgt.

Mechanical OR - 00Mechanical OR - 10Mechanical OR - 01Mechanical OR - 11

Logical AND symbol

Logische basisfuncties: AND

Een andere basisfunctie in de Booleaanse algebra, is de AND-functie. In formules voor digitale elektronica wordt voor de AND-functie vaak een (dikke) stip gebruikt, maar in formules is het teken het symbool ∧. De functie van deze poort kan als formule worden geschreven als: AND = A ∧ B

De schematisch weergegeven AND-poort hiernaast heeft twee uitgangen: de normale AND én de geïnverteerde AND die op ieder moment precies het tegengestelde signaal voert.

Een praktijkvoorbeeld van een AND-functie, ook wel de logische conjunctie genoemd, zou kunnen zijn:

A = ik heb een fiets
B = ik heb een auto
AND = ik kan kiezen hoe ik wil rijden

De AND-functie beschrijft in dit geval: "Ik kan kiezen waarmee ik ga rijden omdat ik een auto en een fiets heb". Het is mogelijk om alle mogelijkheden en uitkomsten in weer een waarheidstabel te zetten. De kolom AND geeft dan 'kan kiezen' weer, en het tegenovergestelde of complementaire resultaat 'geen keuze' vinden we dan in de kolom AND. Hiernaast de waarheidstabel met de mogelijkheden voor de in- en uitgangssignalen.

A B A B AND AND
0 0 1 1 0 1
0 1 1 0 0 1
1 0 0 1 0 1
1 1 0 0 1 0

De AND-functie mechanisch opgebouwd

De AND-functie is mechanisch iets lastiger te maken dan de OR-functie. De schuif aan de uitgang moet intern de beweging van één geactiveerd ingangssignaal mechanisch ‘elimineren’ en alleen in beweging komen als beide schuifjes aan de ingang op ‘1’ zijn geschoven. Dit is bij een lineare beweging, zoals hier, mogelijk door de ingangssignalen een zwenkbaar juk te laten bewegen. Een consequentie hiervan is dat de beweging van het uitgangssignaal kleiner is dan de bewegingsslag van de individuele ingangssignalen. Op de foto’s een mogelijke functionele opbouw van een mechanische AND-functie. Wie zich zelf eens met de materie bezighoudt, komt vast en zeker nog op andere oplossingen.

Mechanical AND - small

Zie ter demonstratie van de AND-functie het model op de grotere bouwplaat. Hierbij is de uitslag van de wijzer van het uitgangssignaal mechanisch ‘versterkt’ met een hefboom. In principe lijkt dit de mechanische variant van de achterliggende versterkingstrap met transistor in de vroege ‘Diode-Transistor’-logica die met halfgeleiders werd opgenouwd. Vaak werd, ook toen al, een tweede transistor-trap opgenomen om het uitgangssignaal (terug) te inverteren zodat de tegenovergestelde uitkomst van de functie aan de uitgang ter beschikking staat. Verderop zullen we hiervan de mechanische variant zien. Een hefboom kan mechanisch immers ook uitstekend gebruikt worden om een beweging (signaal) te inverteren.

Mechanical AND - 00Mechanical AND - 10Mechanical AND - 01Mechanical AND - 11

Logical NOT symbol

Logische basisfuncties: NOT

De laatste logische basisfunctie, is de eenvoudigste van de drie, en heeft slechts één ingang en één uitgang. De enige functie van deze negatie-, of NOT-functie, is het ingangssignaal te inverteren. Het uitgangssignaal is op elk moment precies het tegenovergestelde van het ingangssignaal. Staat er aan de ingang een logische ‘0’, dan geeft de uitgang een ‘1’ te zien, en andersom. Het uitgangssignaal is complementair aan het ingangssignaal.

De NOT-functie mechanisch opgebouwd

De NOT-functie blijkt mechanisch relatief eenvoudig te realiseren. Het gaat er zuiver om de eindstand van het uitgangssignaal tegengesteld te maken aan de beweging van het ingangssignaal. Aan elke kant zullen dus de staafjes moeten zijn ingedrukt, of juist uitgetrokken. Op de foto’s enkele voorbeelden van opbouw van deze functie op een kleine bouwplaat. De werking spreekt voor zich en kan in het filmpje beter worden bestudeerd.

Inverter 1Inverter 2Inverter 3

De wetten van De Morgan

Naast de OR- en de AND-functie speelt de negatie, of NOT-functie, een belangrijke rol als logische basisfunctie. Het blijkt dat, met behulp van deze NOT-functie, de OR en de AND functies uitwisselbaar worden

Degene die deze wetmatigheden bekend heeft gemaakt, was de Britse wiskundige Augustus De Morgan. De, naar hem vernoemde, regels worden ook wel ‘de wetten van De Morgan’ genoemd, en stellen dat elke conjunctie (AND-functie) kan worden uitgedrukt door een disjunctie (OR-functie) en vice versa. Ze zijn sindsdien veel gebruikt in wiskundige bewijzen en programmatuur. Samen met George Boole wordt De Morgan door deze definitie beschouwd als de grondlegger van de formele logica.

De wetten van De Morgan luiden:

AB = A ∧ B
A ∧ B = A ∨ B

De formules beschrijven dat, door gebruik van de NOT-functie op de individuele ingangs- en het uiteindelijke logisch gecombineerde uitgangssignaal, de OR- en AND-basisfuncties uitwisselbaar worden. Oftewel: indien de ingangssignalen van de OR-functie ieder vooraf worden geïnverteerd met de NOT-functie, het geïnverteerde uitgangssignaal van de OR-functie een AND-functie zal zijn. En andersom geldt dat indien de ingangssignalen van de AND-functie ieder vooraf worden geïnverteerd met de NOT-functie, het geïnverteerde uitgangssignaal zich voor de buitenwereld niet volgens de ‘interne’ AND-functie, maar als een OR-functie zal gedragen.
 
De wetten van De Morgan kunnen vanzelfsprekend ook op het praktische voorbeeld van de fiets en de auto hierboven worden toegepast. Bij de functie X=A ∨ B is X in principe in gewone taal uit te leggen als: "Ik kan naar mijn werk rijden als ik een auto OF een fiets heb". Precies hetzelfde kan worden uitgedrukt als: "Ik kan niet naar mijn werk rijden als ik geen auto EN geen fiets heb" waarbij in de resulterende formule X=AB de OR-functie werd omgeschreven tot een AND-functie door de ontkennende situatie te beschrijven. Beiden betekenen hetzelfde en leggen dezelfde relatie tussen de ‘ingangssignalen’ en de conclusie, het ‘uitgangsignaal’, vast. Er worden alleen twee verschillende basisfuncties gebruikt om hetzelfde te beschrijven.
 
Wie terug scrollt, stelt dan ook vast dat in de waarheidstabel van de OR-functie de meest rechtse kolom OR voor ingangssignalen A en B de AND-functie beschrijft. Het omgekeerde is zichtbaar in de waarheidstabel van de AND-functie. Daar toont de meest rechtse kolom AND voor de ingangssignalen A en B een logische OR-functie.

De uitwisselbaarheid van OR en AND

De wetten van De Morgan kunnen ook met een mechanisch model aanschouwelijk worden gemaakt. De basisfunctie van het model hiernaast is de mechanische OR-functie die we hierboven reeds opgebouwd zagen. Met simpele hefbomen aan de in- en uitgangen zijn echter zowel de ingangsignalen als de uitgang geïnverteerd. Daardoor gedraagt deze mechanische poort zich voor de buitenwereld als een AND-functie.

Uit de vier afbeeldingen van de verschillende ingangssignalen van deze mechanische poort hieronder, kan een waarheidstabel worden opgesteld. De conclusie kan slechts zijn dat het uitgangssignaal AND daarvan overeenkomt met de OR kolom uit de waarheidstabel van de OR-functie, waarbij de geïnverteerde ingangssignalen A en B worden gebruikt, maar ook volledig met het in de overeenkomstige waarheidstabel beschreven gedrag van een AND-poort.

OR-->AND

OR-->AND 00OR-->AND 10OR-->AND 01OR-->AND 11

De logische OR kan zich dus gedragen als logische AND, en andersom. De wetten van De Morgan gelden zodra we zowel de individuele input-signalen als het verkregen output-signaal inverteren. Indien als elektronische digitale poort een NAND of NOR poort wordt gebruikt, waarvan het uitgangssignaal reeds geïnverteerd is, hebben we zelfs direct al het gewenste ingangssignaal voor vervolg-poorten van onze logica ter beschikking. Bovendien kunnen NAND of NOR poorten, indien nodig, ook eenvoudig als eenvoudige NOT-poort (inverter) worden gebruikt.

De mechanische modellen van de logische poorten maken de wetten van De Morgan inzichtelijk. Bedenk echter dat voor elke logische functie vele verschillende mechanische oplossingen mogelijk zijn. Zo is het mogelijk de functies te maken met tandwielen, kogels die door parcoursen vallen of bijvoorbeeld met touwen en gewichten. Bij mijn mechanische experimenten onderzocht ik tot nu toe vooral lineare bewegingen. Wellicht vanwege de visuele analogie met de elektronische werking van de ‘Transistor-Transistor-Logik’ die ik kende uit de latere IC’s. Hoe meer je de materie overdenkt, hoe meer parallelen er zijn tussen de elektronica en de mechanische modellen.

Slider Stone - AlternativeSlider Stone - 3D-print

De lineaire, schuivende of zwenkende beweging kan met fischertechnik natuurlijk op vele manieren worden gerealiseerd. Niet alleen een as door een gat (bv. in een bouwsteen) kan hierbij als draaipunt dienen. Draaipunten kunnen ook worden gerealiseerd met een kardan of de diverse scharnierstenen. Een opening waardoor een z.g. 'Statika Strebe' kan schuiven, is eenvoudig te maken. Het was alleen lastig hiervoor een oplossing vinden die netjes in het 15x15 mm grid bleef en waarbij de Strebe soepel, maar met niet te veel (vertikale) speling door de opening schoof. Zuiver omdat het tot de mogelijkheden behoorde, ontwierp ik daarom voor de gelegenheid hiervoor twee maatwerk stenen. De kleine komt qua afmetingen overeen met fischertechnik onderdeel ‘Baustein 5’ (15x15) nr. 37237, de bredere komt qua afmetingen overeen met fischertechnik onderdeel 'Bauplatte 5 (15x30)', nr. 35049. Wie ze nuttig vindt kan ze zelf (laten) printen. Lukt dit niet, neem dan een kijkje in de lijst met 3D-objecten waarmee ik misschien kan helpen.

Wordt vervolgd....?

De beweging van de uitgang wordt bij deze mechanische modellen volledig gevormd door de bewegingen van de ingangssignalen. Voor het bouwen van complexere functies, zoals een XOR-poort of Flip-Flop moeten echter meerdere mechanische basisfuncties aaneen geschakeld worden. Door speling en wrijving in de mechanische draaipunten laten de hier getoonde poorten zich echter niet zo eenvoudig achter elkaar schakelen. De kracht aan de uitgangen neemt snel af. Analoog aan de oplossingen die hiervoor gebruikt worden in de elektronische varianten van deze logische poorten, zou een vervolgstap het onderzoeken van de mogelijkheden tot het ‘versterken’ of mechanisch ‘ontkoppelen’ van de krachten aan de uitgang kunnen zijn. Voor nu hoop ik dat met mijn zoektocht ook uw interesse gewekt is. Experimenteer, en laat me weten zodra u met succes complexere logische functies met mechanische poorten heeft opgebouwd! 😉