User Interface Progress

A project log for TMD-2: Turing Machine Demonstrator Mark 2

Build a Turing machine based on TMD-1 but with support for more states and symbols.

michael-gardiMichael Gardi 10/16/2020 at 19:450 Comments

I haven't posted in a while because I have been learning the ins and outs of Python. Having never used it in my professional career (I was mostly a Java guy) I have to say I'm really liking the language. 

So I hit a couple of milestones today. First of all I finished my first cut at the user interface for TMD-2.

Now when I say finished, what I really mean is that the layout is done (for now), the tape can be scrolled and the cells changed manually, the other buttons react to mouse clicks or touches but are not currently "live". Certainly I still have quite a bit of work to do before the whole system is end-to-end complete, but so far so good.

I'm doing all of the UI development on my Windows laptop under Eclipse (because I'm familiar with it) and PyDev.  At the recommendation of a fellow makerspace buddy I'm using the PyGame framework.  I'm really liking this environment as well. The double buffering makes for very smooth screen transitions. 

So this leads me to my second milestone. I probably should have tried this a lot sooner, but today I copied the python script and images from my laptop to the target environment, a Raspberry Pi with the official 7" LCD touch display, and as can be seen in the image above it worked! First try! I have used other pieces of software that claim to be "cross platform", but you end up having to make small (sometimes large) tweaks to get your program working in each new environment.  Not this time.  I'm very impressed. 

My next step is to get the finite state machine running and fully working with the UI, then I'll tackle integrating the camera piece that I already have working as a separate project.