Kaffemaskinen är mer komplicerad än du tror

Tänkte ge ytterligare ett roligt exempel på digitalteknik och enklare programmering. Ta kaffemaskinen på jobbet. Du lägger i ett mynt, den släpper ned en kopp, börjar hälla upp kaffet och ber dig sedan genom ett pip eller liknande att ta koppen. Har du någon gång tänkt på allt som måste hända inuti kaffemaskinen för att det ska fungera? Maskinen måste känna av myntet, förstå att den skall släppa ned koppen innan den börjar hälla upp kaffet och sedan inte råka släppa ned en ny kopp om den gamla inte tagits bort. Idag kräver allt fler vardagliga maskiner den här typen av programmering, allt från brödrostar och kaffemaskiner till avancerade styrsystem i bilmotorer. Och detta är precis vad vi pysslar med just nu i Elektrotekniken!

I ettan på mitt program Maskinteknik (och de flesta andra civilingenjörsprogram på KTH) läser vi lättare programmering i programmet MATLAB. Den typen av programmering som krävs till Elektrotekniken, som görs i programmeringsspråket C, påminner mycket denna och det är skönt att känna igen sig lite. Ovan ser ni ett exempel på hur sådan kod kan se ut, mest för skojs skull, men ni som läst lite MATLAB känner säkert igen er!

Att programmera en legohiss

Igår var vi igång och labbade i Elektrotekniken igen (labbarna är ett obligatoriskt moment och genomförs med jämna mellanrum under hela kursen). Just nu håller vi på med digitalteknik, d.v.s. enklare programmering (ettor och nollor). Således handlade den här labben om att programmera ett styrsystem för en hiss, i detta fall en legohiss (kolla bilden till höger, hur cool?!).

Hisskonstruktionen hade två våningar och på respektive våning fanns en givare som kände av om hissen stod på den våningen eller inte. Tillsammans med signalerna från knapparna inuti hissen och utanför på respektive våning kallas dessa insignaler. Utsignalerna är två stycken och talar om för hissmotorn om den skall få hissen att åka upp eller ned. Mellan in och utsignaler sker själva programmeringen. För vilka givna villkor skall vad hända? Om jag trycker på nedknappen inuti hissen vill jag ju att hissen skall åka ned men vad händer om jag trycker på både upp- och nedknappen samtidigt? Eller om jag redan är på övre våningen och trycker på uppknappen? Allt detta är möjliga scenarion som måste täckas upp i ett så kallat sanningsdiagram, vad skall hända när helt enkelt.

Det mesta löser man först på papper med hjälp av verktyg vid namn Boolesk algebra och Karnaughdiagram. Dessa papperslösningar översätts sedan till kod som skrivs in i programmet LabView och det färdiga resultatet kan ni se sedan – hissen fungerar!

http://www.youtube.com/watch?v=BxkgKS0x7F0

Det må verka både svårt, udda, lätt, konstigt eller föga imponerande men jag var galet stolt i slutet av den här labben. Enligt mig är detta i särklass det roligaste vi gjort hittills i Elektrotekniken. Att faktiskt själv kunna programmera hur en enkel hiss skall fungera efter givna insignaler tycker jag är superspännande och ger en bra fingervisning om vad masterprogrammet Mekatronik handlar om, något jag funderar allt mer på att läsa.