This page will document the process leading to

specifically trying to answer the question "How does a computer work?" using material available at home.

This was done here using :

  • Lego blocks
  • Raspberry Pi 3
  • Makey-Makey
  • an elastic banc
  • conductive tape or alluminium foil
  • a touch screen
  • a power supply
  • all requires cables

In particular it lead through 3 sessions to :

  • a key that could be plugged to an already working computer
  • an improvement of the design for that key to
    • make it modular
    • forcing it to reset on release
  • building the casing to support
    • a (touch) screen
    • the RPi 3
    • the modular key with the Makey-Makey
  • installing the OS
  • building GCompris
  • printing a message from the working computer, a thank you gift card

While sharing the result, a French distribution was also found (PrimeTux https://primtux.fr ) which includes GCompris and more. It is working on the RPi 400 and an older version of RPi3.

Building instructions

Honestly this is not important. They will eventually be added but arguably what is core here is precisely

  • codiscovering a learning outcome
  • composability
  • iteration

Namely each person wanting to go through the process will come from a different background. People might want to learn what a computer is only to do music with it, others because they want to have a more direct affordance to computer science, etc. Also everybody will have a different set of Lego pieces, different hardware (e.g RPi5 vs RPi Zero vs Nuc, etc), no Makey-Makey, etc. This does not mean though that one needs to get more hardware, instead it is more interesting to consider what can be learned "here" with what is available.

Highlighted parts :

  • the elastic did not exist in the first iteration, this means once pressed, the key had to be pulled back up. This was "bad" yet it was still enough to work.
  • the MakeyMakey (cf top right arrow) allow a "no tinkering" to work, "just" USB. It that's not possible then using GPIO can be done with no additional hardware required
  • the key sits on its own white Lego plate. Initially it was on a much larger board leaving no place for the Raspberry Pi. This was the occasion to build anew now that the concept was proven. It also led to the notion of a "module" that could be move, changed, put back.

Ideas for future sessions

Clarify the modular part

The "beauty" of the single key on its own Lego plate was that it could still be stacked back on the "main" board. It made it convenient to remove, modify safely then bring back.

The architecture itself thus should be documented, facilitating the construction, and sharing through documentation, of such modules as functional pedagogical units.

External computing unit

Instead of having an AI accelerator or a CPU having an external decelerator computing unit based on the Turing tumble game namely using sensor that will count for example how many balls will fall based on how many ball have started in the same kind of system as Turing tumble but made out of Lego pieces

From built computer to robot

Once a setup is working, e.g RPi on plate with working OS, with an interface (local if screen is present or remote, e.g HTTP server and ssh for setup) it can be mounted on wheels. If at least one wheel can be controllers (e.g Lego Spike Essential) then the computer itself becomes, arguably, a robot. Others modules could be added for e.g computer vision and thus giving instructions without a keyboard.

Exploring wireless signals

WiFi, BlueTooth, 4G, ZigBee, etc are relatively well known signal but they are not "seen". One could instead rely on the visualization of a microphone. When a threshold is reached for a certain duration, then a 1 is captured, otherwise a 0. This would be displayed over the wave form.

From this, once a certain signal is captured (generated from hand clapping) e.g 10101010 then a result would be displayed (showing an image).

Use GPIO ports of the RPi

Plenty of relatively easy extensions are possible, e.g light sensors, motion sensor, etc. This is arguably easier to understand that yet another USB gagdet that comes with its (non Lego) enclosure.

Printer from Lego blocks and paint

Even though IPP might be relatively easily to implementing unfortunately connecting will not be sufficient, unlike the input, e.g keyboard. Maybe turning on/off the "ink" delivery could be a start. Alternatively a kind of plotter from Spike Essential (or GPIO with small motors) could be used.

IMU from MakeyMakey from Lego tray and conductive core

Each of the 4 walls of the containing tray would be an arrow key on the MakeyMakey. The core would be the ground connection.

See also