Arduino to relax

Last week Simon suddenly unpacked his old electronics sets and completed several projects with Arduino, his old single-board friend that got him into coding a little over a year ago. Back then it was the most difficult stuff he had ever tried, his first “setups”and “draws”, his first dive into serious circuits. Now Arduino (and iCircuit) is something he does while taking breaks from the real studying/ coding. Amazing how skillful he has become in assembling the circuits, too. All those little wires. Especially considering he still isn’t an expert at tying his shoelaces.

DSC_2549

DSC_2550

DSC_2563

DSC_2564

Advertisements

Cellular Automata in Arduino

Yesterday Simon spent the whole day studying the concept of Cellular Automaton (CA), a discrete model of a system of “cell” objects used in physics, math and theoretical biology. He learned a lot from Daniel Shiffman’s tutorials on Cellular Automata and his book The Nature of Code (Chapter 7).

Simon describes Cellular Automaton as a set of rules for getting nature-like patterns. 1D cellular automata are static (think of a pattern resembling the Pascal triangle) and 2D are not static (the most famous example is Conway’s Game of Life).

The mathematician who made cellular automata a big thing (and even Turing-compatible!) was Stephen Wolfram. Simon also looked at some of Wolfram’s writings. Wolfram’s book A New Kind of Science is intimidating (in content and size) but full of graphic illustrations and available for free at http://www.wolframscience.com/nksonline/toc.html

A CA is basically a grid where cells live, each cell in a particular state (the simplest example being “1” or “0”). In Processing, it’s possible to have a CA draw a beautiful pattern this way. Simon tried to write a CA program in another language. He tried writing it in Python on his RaspberryPi first, but I overheard him say “don’t know how classes really work in Python, let’s try Ruby – I know how classes work in Ruby!” Then I saw him move over to the desktop and plug his long forgotten Arduino in. He said he now wanted to translate a CA code into C. Of course, there would be no pattern, but he wanted to have the Arduino “spit out numbers in the console” instead. Eventually he got an error and gave up, but it was intriguing to observe him.

The videos below show Simon talk about CA and program a CA in Arduino (C):

 

 

 

 

 

DSC_0151

 

DSC_0161

 

Cellular Automation 31 Mei 2017

Sometimes it just doesn’t work

Simon was trying to program his Arduino board to use a magnetic switch to turn an LED on and off, but the code didn’t work. The LED was burning no matter what we did to the wiring leading to the magnet.

wp-image-32293993jpeg.jpeg

Many of those crafty projects don’t work. Our DIY bend sensor project last month was a flop, too:

 

image

Code Academy Python Courses, Day 2.

Today we had a much busier day as we had to bike for two hours to get Simon to his Scratch programming class. That said, Code Academy still largely ruled the day. Simon has completed four and a half courses by now and the tasks are getting tougher. Sometimes he finishes a tasks without errors, but mostly not and then he asks me to help debug his code. We sit down together and go through it again and brainstorm and try different variants. Yet it hit me that most of the time it’s not I who finds the final solution but Simon.

python-code-academy-8-2-okt-2016

python-code-academy-9-2-okt-2016

python-code-academy-10-2-okt-2016python-code-academy-11-2-okt-2016

python-code-academy-12-2-okt-2016

python-code-academy-13-2-okt-2016

And he even squeezed some Raspberry Pi Photon Red Board programming in, too:

sparkfun-photon-red-board-1-okt-2016

Simon translates code from Python to Arduino

To write a Python project in Arduino Simon had to calculate how many milliseconds there are in one day, one month and one year. Here he explains how he did that (in Dutch):

This is the result. As it turned later it does contain errors, but still impressive for someone who is only getting acquainted with both languages. The code, that Simon says should be uploaded on New Year’s day at midnight, should be able to send you weather and humidity updates every hour, every day or every month, depending on your personal settings.