Udover de andetsteds omtalte udendørs fritidsaktiviteter, bliver der brugt en del tid indendørs på teknikrelaterede udfordringer.
Uddannet som elektronikingeniør og efter en knap 40 år lang karriere i udvikling af integreret mikroelektronik, er det stadig en fristelse at prøve nogle ting af indenfor området som det har været umuligt at bruge tid på i en travl hverdag på kontoret.
Derfor, efter mange års daglig brug af dyrt indkøbte og komplekse Computer Aided Design (CAD) software værktøjer, er det sjovt og samtidig en intellektuel udfordring, at prøve at lave egne lignende software værktøjer fra scratch, selvfølgelig i simplificerede udgaver – det skal jo være sjovt og overkommeligt.
En udfordring som denne kræver for mig at programmeringskundskaber tillært for 3-4 årtier siden skal støves af og indsigt i relevante algoritmer skal tilegnes.
Med baggrund i ‘old-school’ programmeringssprog såsom Fortran, Basic og Pascal, har det heldigvis været en overraskende men meget behagelig oplevelse at finde et moderne, open-source og aktivt vedligeholdt integreret udviklingsmiljø IDE (Integrated Development Environment ) på nettet baseret på (Delphi-) Pascal kaldet Lazarus.
Med dette RAD (Rapid Application Development) værktøj tilgængeligt samt en masse tutorials og eksempler, har det været ligetil at starte udviklingen af en CAD applikation. Valget af applikation faldt på en hændelse-drevet digital kredsløbssimulator som fik navnet eLogSim.
Efter omkring et års udviklingstid, er eLogSim blevet tilgængeligt gratis som open-source (GPL v3 licenseret) applikation via Sourceforge.
De mest bemærkelsesværdige egenskaber for denne applikation, er at den findes til forskellige platforme (Windows 10 og diverse Linux varianter til to h/w arkitekturer amd64 og arm/aarch64) samt den indbyggede fejlsimulerings option.
I videoen herunder beskrives og demonstreres kort den helt grundlæggende funktion af eLogSim. For at komme et spadestik dybere, download eLogSim og prøv et eller flere af de mange eksempler der følger med.
Under udvikling ..
En anden applikation der er under udvikling er ePnR. ePnR er et såkaldt “IC standard cell placement & routing” værktøj til fysisk realisering af mindre IC (“Integrated Circuit” = mikroelektroniske kredsløb) blokke.
ePnR kan læse en SPICE lignende kredsløbsnetliste og sammenholdt med et bibliotek af standard celler, placere og forbinde kredsløbets elementer (= standard celler) automatisk og korrekt. Et eksempel på en IC blok til addering af to 64 bit tal, er vist herunder. Først med en initial placering af de indgående standard celler (grønne rektangulære blokke) og deres indbyrdes forbindelser vist som sorte flyvelinjer:
Efterfølgende kan ePnR optimere placeringen af de grønne celler for mindst mulig akkumuleret forbindelseslængde og omdanne de sorte flyvelinjer (forbindelser) til teknologi-korrekte vandrette & lodrette forbindelser:
ePnR kan til slut generere en layout fil der kan viderebearbejdes i en IC layout editor. ePnR er selvfølgelig open-source og licenseret under GPL v3. Videre information og seneste udgave af ePnR kan altid findes på Sourceforge.
En tredje applikation der er under udvikling ved brug af Lazarus IDE er eGPXviewer. Er du bruger af en GPS tracker på vandreture, cykelture eller skiløb, f.eks. i form af en smartphone app, er det ofte muligt at gemme waypoints og højdedata i GPX fil format. På basis af en sådan GPX fil, er det muligt at lave en applikation der beregner og viser detaljer omkring dit spor inklusiv grafisk at vise et 3D perspektiv af dit spor. En sådan applikation er for tiden under udvikling. Et glimt af hvad denne applikation kan gøre, er vist herunder:
og 3D perspektiv af sporet:
Seneste udgave af applikationen, kan findes og downloades på Sourceforge.