23
A tale of ubiquitous bears, flyswatters and punching bags in education Coen De Roover Christophe Scholliers Yves Vandriessche Software Languages Lab Vrije Universiteit Brussel Belgium Hello, my name is Coen De Roover from the Software Languages Lab of the Vrije Universiteit Brussel, Belgium. I’m here to tell you a tale of ubiquitous bears, flyswatters and punching bags in education. As you know, all good tales start with “once upon a time.” This tale is no exception. So here we go.

UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

Embed Size (px)

Citation preview

Page 1: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

A tale of ubiquitous bears, flyswatters and punching bags in education

Coen De Roover Christophe ScholliersYves Vandriessche

Software Languages LabVrije Universiteit Brussel

Belgium

Hello, my name is Coen De Roover from the Software Languages Lab of the Vrije Universiteit Brussel, Belgium. I’m here to tell you a tale of ubiquitous bears, flyswatters and punching bags in education. As you know, all good tales start with “once upon a time.” This tale is no exception. So here we go.

Page 2: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

!

!

Once upon a time ..

!

there was a language called Picoand some students initiallyhostile towards programming

Once upon a time there was a programming language called Pico. It’s probably still remembered by many of you as Theo D’Hondt’s educational language in which the semicolon is a separator rather than a terminator ;) We were using it to teach principles of programming to the first bachelor of mathematics. As they hadn’t opted for computer science, we always tried to come up with assignments that would keep them motivated. For instance, simulating the drawings that are made by an harmonograph. It’s a device from the 19th century that uses a pendulum to create geometric images. The one that’s shown on the slide uses the pendulum to move a sheet of paper against a fixed pencil. However, not all students found these assignments equally interesting.

Page 3: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

.. so we had to find a carrot but without the stick

common in embedded systemsμ-controller

convenient package

8-bit, AVR, 16Mhz

popular in digital arts

1KB SRAM, 16KB Flash

cheap

14 digital I/O pins, 6 analog I

Referencing the English saying “The carrot and the stick”, we wanted to find a carrot ---but without the stick. Something that would render programming appealing to a non-cs audience. We believe we found several of such carrots. The one on the slide is called Arduino. It consist of a microcontroller housed in a convenient package. For those not familiar with microcontrollers, you can think of it as a CPU (this one operating at only 16Mhz) that is put on a small chip together with memory and functionality to interface with sensors and actuators. They are omnipresent in intelligent microwave ovens, washing machines and the likes. The Arduino development board is a convenient package for such a microcontroller. There is, for instance, a USB port that provides power to the controller and that can also be used to communicate with a PC. The Arduino board comes with a nice development environment and is quite cheap. This explains its popularity in interactive art installations.

Page 4: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

Swatting flieswith the carrot

So we provided our little mathematicians with Arduino boards that we had programmed beforehand to send sensor data over the USB cable to the PC. Then we asked them to read out the sensor data in a Pico program, and put their creativity at work. This movie shows one of the results: a little game. The full circles represent flies. The big empty circle represents a fly swatter. By tapping on a piezo sensor (or clapping your hands), the swatter comes down and kills the flies beneath it. Because we received an overwhelming amount of positive feedback from the mathematics students, we started thinking about introducing the same carrot to our computer science students. With one little difference: the students would program the carrot themselves. And not in C, but in Scheme.

Page 5: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

Birth of UbiLabphones, Lego robots, RFID readers, μ-controllers, wireless sensors

But first of all, we needed the hardware for all those students. The computer science department of the Vrije Universiteit Brussel decided to fund the necessary purchases such as microcontrollers, sensors, USB cables, LCD screens. But also Lego robots, RFID readers and hardware for wireless sensor networks. In short, all of the things that will realize the vision of ubiquitous computing that you heard about in the previous research-oriented talks. Note that all of this hardware can be borrowed freely by all of the students to be used for their course work.

Page 6: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

λ on μ4

μ to λ

λ on μ

UbiLab@soft

high school students

1st bachelor students

master student

teaching activities

Of course, the UbiLab hardware is also used by the other groups of the department. The Lego robots, for instance, are used by the AI and COMO people in their teaching activities. Since this is the SOFT event, however, I will highlight how we have been using the UbiLab hardware in three of our teaching activities. I chose these three because each of them is targeted at a different audience and each of them uses Scheme in a different manner. In the first activity, the microcontroller sends data to a Pico program. It is very similar to what I’ve shown before. We use this in PR workshops to attract high school students. In the second activity, the Scheme program actually runs on the microcontroller. We use this in the programming projects of our first bachelor students. The last activity represents the work of one of our master students. He ported Scheme to a multi-core microcontroller.

Page 7: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

UbiLab@soft: μ to λ“I Love IT” workshops for high school students

In the first activity, several PR workshops designed to attract high school students to computer science, the microcontroller sends sensor data to a Pico program.

Page 8: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

Each student is asked to modify a preprogrammed game, a Breakout clone, such that it uses the data from an accelerometer ---sent to the game by an Arduino--- to steer its paddle. Indeed, the microcontroller is used as a joystick for the game. I’ll let the movie explain what happens almost every single workshop. After a short explanation of the accelerometer that can also be found in the WiiMote and a playful introduction to programming, the students complete the game "Breakout" in which the accelerometer controls the paddle. Next, they experiment with different variants of the game that they program themselves such as strangely shaped blocks, a huge ball, a longer paddle ... all of which are shown to the other students with the necessary pride.

Page 9: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

UbiLab@soft: μ to λ“I Love IT” workshops for high school students

Note that the students did all of this themselves after barely an hour of introduction to Pico ---which clearly highlights the educational merits of this programming language. Moreover, as evidenced by the movie, the students had a lot of fun completing the game as well. This feedback form, for instance, was very funny: although the girl says “me + computer = error”, she also says “thanks, it was very enlightening” and she is even handing out kisses on the form.

Page 10: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

UbiLab@soft: λ on μprogramming projects first bachelor students

The next teaching activity related to ubiquitous computing I’d like to discuss, is one in which we introduced the microcontroller in the programming projects of the first bachelor students of computer science.

Page 11: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

UbiLab@soft: λ on μa more powerful carrot

μ-controller

32-bit, ARM, 40Mhz16KB SRAM, 256K Flasheverything but the kitchen sink

convenient packagepopular for prototyping embedded systems

Each year, the first bachelors are asked to complete a programming project in Scheme. Although we wanted to expose them to ubiquitous computing hardware, our carrot to motivate them for this assignment, we didn’t want the experience to leave bad memories ---the proverbial stick. That’s why we needed a slightly more powerful carrot that could run an interactive Scheme interpreter, complete with garbage collector and read-eval-print loop, comfortably. We found the LPC2214 32-bit microcontroller on the Olimex LPC-H2214 development board more than capable of running the Scheme interpreter called “Armpit Scheme”.

Page 12: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

UbiLab@soft: λ on μproject assignments 1st bachelor

Realisatie van een Ritmespel in Soft - en HardwareTweede Deel Programmeerproject

Eerste Bachelor 2009-2010! Contact: [email protected]

IntroductieSituering

Waar het eerste deel van het programmeerproject voornamelijk steunde op de vakken

“Structuur I” en “Algoritmen en datastructuren I”, leunt dit deel van het

programmeerproject eerder aan bij de cursus “Interpretatie I” waarin recent het

programmeren van geïntegreerde systemen aan bod gekomen is. Deze bestaan uit op

maat ontwikkelde hardware én software die samen één bepaalde taak optimaal

uitvoeren: van het doorlopen van magnetron- of wasprogramma’s tot het controleren

van loopbanden in fitnesscentra. Praktijktoepassing Dit deel van het programmeerproject beoogt het realiseren van een geïntegreerd

systeem op maat van de opdracht. Een door middel van Scheme programmeerbare

microcontroller enerzijds en een op de opdracht af te stemmen assortiment sensoren

anderzijds vormen de hardware-componenten van dit systeem. Samen realiseren zij de

brug tussen de ons omringende fysieke wereld en de abstracte wereld van het Scheme

programma.

Een goede programmeerstijl, doordacht ontwerp en een verantwoorde keuze van

datastructuren en algoritmen blijft ook voor dit deel van het project uitermate

belangrijk. Meer nog, de inherent beperkte reken -en opslagcapaciteit van de

microcontroller zet eventuele tekortkomingen alleen maar in de verf.

Individuele creativiteit bij het samenstellen van het systeem wordt aangemoedigd,

waardoor deze opdracht een unieke kans biedt om de in het afgelopen jaar verworven

vaardigheden op een ludieke manier in de praktijk toe te passen.

Realisatie van een Virtueel Doolhof in Soft - en HardwareTweede Deel Programmeerproject Eerste Bachelor

2008-2009 Tweede zittijdIntroductie

Situering

Waar het eerste deel van het programmeerproject voornamelijk steunde op de vakken

“Structuur I” en “Algoritmen en datastructuren I”, leunt dit deel van het

programmeerproject eerder aan bij de cursus “Interpretatie I” waarin recent het

programmeren van geïntegreerde systemen aan bod gekomen is. Deze bestaan uit op

maat ontwikkelde hardware én software die samen één bepaalde taak optimaal

uitvoeren: van het doorlopen van magnetron- of wasprogramma’s tot het controleren

van loopbanden in fitnesscentra. Praktijktoepassing Dit deel van het programmeerproject beoogt het realiseren van een geïntegreerd

systeem op maat van de opdracht. Een door middel van Scheme programmeerbare

microcontroller enerzijds en een op de opdracht af te stemmen assortiment sensoren

anderzijds vormen de hardware-componenten van dit systeem. Samen realiseren zij de

brug tussen de ons omringende fysieke wereld en de abstracte wereld van het Scheme

programma.

Een goede programmeerstijl, doordacht ontwerp en een verantwoorde keuze van

datastructuren en algoritmen blijft ook voor dit deel van het project uitermate

belangrijk. Meer nog, de inherent beperkte reken -en opslagcapaciteit van de

microcontroller zet eventuele tekortkomingen alleen maar in de verf.

Individuele creativiteit bij het samenstellen van het systeem wordt aangemoedigd,

waardoor deze opdracht een unieke kans biedt om de in het afgelopen jaar verworven

Realisatie van een Virtueel Huisdier in Soft - en HardwareTweede Deel Programmeerproject Eerste Bachelor 2007-2008

Introductie

Situering

Waar het eerste deel van het programmeerproject voornamelijk steunde op de vakken

“Structuur I” en “Algoritmen en datastructuren I”, leunt dit deel van het

programmeerproject eerder aan bij de cursus “Interpretatie I” waarin recent het

programmeren van geïntegreerde systemen aan bod gekomen is. Deze bestaan uit op

maat ontwikkelde hardware én software die samen één bepaalde taak optimaal

uitvoeren: van het doorlopen van magnetron- of wasprogramma’s tot het controleren

van loopbanden in fitnesscentra. Praktijktoepassing Dit deel van het programmeerproject beoogt het realiseren van een geïntegreerd

systeem op maat van de opdracht. Een door middel van Scheme

microcontroller enerzijds en een op de opdracht af te stemmen assortiment

anderzijds vormen de hardware-componenten van dit systeem. Samen realiseren zij de

brug tussen de ons omringende

(define led-pin (ash 1 6))(set-dir-output! GPIO_0 led-pin)(set-pin! GPIO_0 led-pin)

In three successive years, we asked the students to program their carrot using Scheme. Each time, the goal was to realize a game that receives input from the physical world. In the first year, for instance, we asked them to create a Tamagotchi. You can think of it as a virtual pet that you have to feed and put into bed when it is sleepy etc. Using sensors, the game can be made a little more interesting. If the tamagotchi wants to sleep, for instance, the player has to cover a light sensor and make sure the accelerometer measures you rocking the Tamagotchi to sleep. Again, we received a lot of positive feedback from the students. Just in case you don’t believe me, I will let some of their creations speak for themselves.

Page 13: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

Realisatie van een Virtueel Huisdier in Soft - en HardwareTweede Deel Programmeerproject Eerste Bachelor 2007-2008

Introductie

Situering

Waar het eerste deel van het programmeerproject voornamelijk steunde op de vakken

“Structuur I” en “Algoritmen en datastructuren I”, leunt dit deel van het

programmeerproject eerder aan bij de cursus “Interpretatie I” waarin recent het

programmeren van geïntegreerde systemen

maat ontwikkelde hardware én software die samen één bepaalde taak optimaal

UbiLab@soft: λ on μproject assignments 1st bachelor

In the first year, the year of the Tamagotchi assignment, some students went as far as stuffing a teddy bear with the microcontroller. This student, for instance, is demonstrating how you can navigate through the menus of the game using the arms and the nose of the bear.

Page 14: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

UbiLab@soft: λ on μproject assignments 1st bachelor

Realisatie van een Virtueel Huisdier in Soft - en HardwareTweede Deel Programmeerproject Eerste Bachelor 2007-2008

Introductie

Here are some other pictures from the same year. Clearly, putting a microcontroller in a teddy bear was very popular that year. The last picture stems from a student that preferred to focus instead on making the graphics fast enough such that you could play PacMan against the TamaGotchi.

Page 15: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

UbiLab@soft: λ on μproject assignments 1st bachelor

Realisatie van een Ritmespel in Soft - en HardwareTweede Deel Programmeerproject Eerste Bachelor 2009-2010! Contact: [email protected]

IntroductieSitueringIn the third year, we asked the students to implement a rhythm game in Scheme on the microcontroller. One of them was extremely creative and housed his game in a punching bag. Again, the movie will

explain the details. This is a punching bag housing a microcontroller, sensors and a display. Each boxing glove houses an accelerometer. The game's objective is to hit the punching bag when indicated by the display. Allow me to demonstrate. The rules of the game are shown first. The display shows multiple balls falling down. Hit the punching bag whenever a ball slides of the display. Some balls require you to give an uppercut. Others a jab. The gloves' accelerometers allow discerning both punches. As a student of computer science, Bram experienced few problems programming the game. But things had to be sewn together as well.... ... the accelerometers in the gloves ... ... patches in the punching bag. All to be enjoyed by people aged 7 to 77!

Page 16: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

UbiLab@soft: λ on μproject assignments 1st bachelor

Realisatie van een Ritmespel in Soft - en HardwareTweede Deel Programmeerproject Eerste Bachelor 2009-2010! Contact: [email protected]

IntroductieSitueringAnother very creative student turned his rhytm game in a full-fledged drum computer. Again, the movie will explain the details. Crash, hi-hat, snare and a foot pedal function as sensors. The

microcontroller itself is housed in a box with the LCD screen and leds. Note how the fonts of the menus scale with the amount of tracks a rhythm comprises ---even though the students had little more than a draw-pixel primitive at hand.

Page 17: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

UbiLab@soft: λ on μproject assignments 1st bachelor

Realisatie van een Ritmespel in Soft - en HardwareTweede Deel Programmeerproject

Eerste Bachelor 2009-2010! Contact: [email protected]

Here are some more pictures from the same year. Housing the rhythm game in a self-contained box was popular that year. The assignment was inspired by Tap Tap Revolution for the iPhone.

Page 18: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

UbiLab@soft: λ on μnot just pretty, also good code

Realisatie van een Ritmespel in Soft - en HardwareTweede Deel Programmeerproject Eerste Bachelor 2009-2010! Contact: [email protected]

IntroductieSituering

Waar het eerste deel van het programmeerproject voornamelijk steunde op de vakken

“Structuur I” en “Algoritmen en datastructuren I”, leunt dit deel van het

programmeerproject eerder aan bij de cursus “Interpretatie I” waarin recent het

programmeren van geïntegreerde systemen aan bod gekomen is. Deze bestaan uit op

maat ontwikkelde hardware én software die samen één bepaalde taak optimaal

uitvoeren: van het doorlopen van magnetron- of wasprogramma’s tot het controleren

van loopbanden in fitnesscentra. Praktijktoepassing Dit deel van het programmeerproject beoogt het realiseren van een geïntegreerd

systeem op maat van de opdracht. Een door middel van Scheme programmeerbare

microcontroller enerzijds en een op de opdracht af te stemmen assortiment sensoren

anderzijds vormen de hardware-componenten van dit systeem. Samen realiseren zij de

brug tussen de ons omringende fysieke wereld en de abstracte wereld van het Scheme

programma.Een goede programmeerstijl, doordacht ontwerp en een verantwoorde keuze van

datastructuren en algoritmen blijft ook voor dit deel van het project uitermate

belangrijk. Meer nog, de inherent beperkte reken -en opslagcapaciteit van de

microcontroller zet eventuele tekortkomingen alleen maar in de verf.

Individuele creativiteit bij het samenstellen van het systeem wordt aangemoedigd,

waardoor deze opdracht een unieke kans biedt om de in het afgelopen jaar verworven

vaardigheden op een ludieke manier in de praktijk toe te passen.

Realisatie van een Virtueel Doolhof in Soft - en HardwareTweede Deel Programmeerproject Eerste Bachelor

2008-2009 Tweede zittijdIntroductieSituering

Waar het eerste deel van het programmeerproject voornamelijk steunde op de vakken

“Structuur I” en “Algoritmen en datastructuren I”, leunt dit deel van het

programmeerproject eerder aan bij de cursus “Interpretatie I” waarin recent het

programmeren van geïntegreerde systemen aan bod gekomen is. Deze bestaan uit op

maat ontwikkelde hardware én software die samen één bepaalde taak optimaal

uitvoeren: van het doorlopen van magnetron- of wasprogramma’s tot het controleren

van loopbanden in fitnesscentra. Praktijktoepassing Dit deel van het programmeerproject beoogt het realiseren van een geïntegreerd

systeem op maat van de opdracht. Een door middel van Scheme programmeerbare

microcontroller enerzijds en een op de opdracht af te stemmen assortiment sensoren

anderzijds vormen de hardware-componenten van dit systeem. Samen realiseren zij de

brug tussen de ons omringende fysieke wereld en de abstracte wereld van het Scheme

programma.

Een goede programmeerstijl, doordacht ontwerp en een verantwoorde keuze van

datastructuren en algoritmen blijft ook voor dit deel van het project uitermate

belangrijk. Meer nog, de inherent beperkte reken -en opslagcapaciteit van de

microcontroller zet eventuele tekortkomingen alleen maar in de verf.

Individuele creativiteit bij het samenstellen van het systeem wordt aangemoedigd,

waardoor deze opdracht een unieke kans biedt om de in het afgelopen jaar verworven

vaardigheden op een ludieke manier in de praktijk toe te passen.

Realisatie van een Virtueel Huisdier in Soft - en HardwareTweede Deel Programmeerproject Eerste Bachelor 2007-2008

IntroductieSituering

Waar het eerste deel van het programmeerproject voornamelijk steunde op de vakken

“Structuur I” en “Algoritmen en datastructuren I”, leunt dit deel van het

programmeerproject eerder aan bij de cursus “Interpretatie I” waarin recent het

programmeren van geïntegreerde systemen aan bod gekomen is. Deze bestaan uit op

maat ontwikkelde hardware én software die samen één bepaalde taak optimaal

uitvoeren: van het doorlopen van magnetron- of wasprogramma’s tot het controleren

van loopbanden in fitnesscentra. Praktijktoepassing Dit deel van het programmeerproject beoogt het realiseren van een geïntegreerd

systeem op maat van de opdracht. Een door middel van Scheme programmeerbare

microcontroller enerzijds en een op de opdracht af te stemmen assortiment sensoren

anderzijds vormen de hardware-componenten van dit systeem. Samen realiseren zij de

brug tussen de ons omringende fysieke wereld en de abstracte wereld van het Scheme

programma.

Een goede programmeerstijl, doordacht ontwerp en een verantwoorde keuze van

datastructuren en algoritmen blijft ook voor dit deel van het project uitermate

belangrijk. Meer nog, de inherent beperkte reken -en opslagcapaciteit van de

microcontroller zet eventuele tekortkomingen alleen maar in de verf.

Individuele creativiteit bij het samenstellen van het systeem wordt aangemoedigd,

waardoor deze opdracht een unieke kans biedt om de in het afgelopen jaar verworven

vaardigheden op een ludieke manier in de praktijk toe te passen.

Ondersteuning In de practica van het vak “Interpretatie I” wordt kort de werking van enkele

prototypische sensoren verduidelijkt, wat voor elektrische schakelingen deze met de

microcontroller verbinden en welke Scheme-procedures sensorwaarden uitlezen.

finite state machinesevent streams

procedural abstractions

interrupt handlersauto-power on

Now you might think that all of the students’ energy went into the creative part (boxes, teddy bears and punching bags), but each year the code that was handed in was also of a very high quality. Because of the limited computational abilities of the microcontroller, suboptimal implementations or algorithmic choices become apparent immediately. For the Tamagotchi project, most students came up with clean finite state machine designs. For the rhythm game projct, some students even structured their game around event streams: only when the next element in the stream is required, a new sensor reading is made. Students that were particularly interested in the hardware side of the project, incorporated interrupt handlers in their code or ensured their game launches by itself as soon as the controller is powered on.

Page 19: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

UbiLab@soft: λ on μ4

master thesisFaculty of Engineer

ing

Implementing Concurrency Abs

tractions

for Programming Multi-Core Em

bedded

Systems in Scheme

Graduation thesis submitted in partial fulfi

llment of the

requirements for thedegree of Master of En

gineering: Applied Computer Scien

ce

Ruben Vandamme

Promotor: Prof. Dr. Wolfgang De Meuter

Advisors:Dr. Coen De Roover

ChristopheScholliers

2010

We have already had the high school students, the first bachelor students .. this only leaves some of our teaching activities in the master. I’d like to quickly walk you through a thesis from one of last year’s master students. What he did was port a Scheme interpreter to a multi-core embedded system.

Page 20: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

UbiLab@soft: λ on μ4master thesis about multi-core carrots

convenient packagecan be linked together

μ4-controller

4 cores

64KB RAM / core4 hardware threads @ 400Mhz

already used to implement hardware in software

Yes, you heard me right. Apparently, there will even be multi-core carrots in future microwave ovens. The one that we used (an XMOS XC-1) has 4 cores each capable of running several threads. The nice thing about this chip is that it provides hard guarantees about the speed at which each thread will be executed. This allows you to implement timing-sensitive tasks in software rather than in hardware. One of those timing-sensitive tasks is, for instance, the serial communication protocol in which the right bit has to be put on the wire at the right time.

Page 21: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

UbiLab@soft: λ on μ4master thesis about multi-core carrots

PWM

!"#$%&'()$$(*+*%,-()./(01(#%22&3&$&'&+2

UART TX UART

RX

logic

UART RXUART

TX

PWM logic

For his thesis, the student ported a Scheme interpreter to the multi-core embedded system. In this example from his thesis, there is a Scheme process running on each of the cores of the microcontroller. One of them takes care of application logic. This application logic comprises changing the color of a LED when a button is pressed. The LED’s color is altered by changing the width of each pulse in a rapid succession of pulses that are delivered to the LED. This process is called pulse width modulation: a way to deliver energy through a rapid succession of (digital) pulses rather than a continous (analog) signal. In this example, the pulse with modulation is implemented by a Scheme process that runs on a different core and communicates with the application logic through message passing. Precise software control over these pulses is only possible because of the timings that are guaranteed by the microcontroller. The same goes for the serial communication protocol through which two Scheme processes on different multi-core microcontrollers can communicate wirelessly. The next movie shows how this functionality is used to alter the color of a LED on another microcontroller than the one on which the buttons are pressed.

Page 22: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

awarded

Usually, microcontrollers implement the functionality related to serial communication (UART TX and UART RX) or pulse width modulation (PWM) in hardware. However, this approach requires such dedicated hardware to synchronize with the application logic. For instance, through interrupts. Unfortunately, interrupts are a frequent source of bugs (stack overflows, interrupt overloads, etc..). The student’s thesis demonstrates that it is feasible to implement such functionality in software instead. More precisely, as fully garbage-collected and interpreted Scheme (!) processes that communicate through message passing.

Page 23: UbiLab@SOFT: A tale of ubiquitous bears, flyswatters and punching bags in education

ChristopheScholliers

YvesVandriessche

Coen De RooverFinally, none of the aforementioned teaching activities related to ubiquitous computing at the SOFT Lab could have been possible without my partners in crime: Yves Vandriessche and Christophe Scholliers. Thanks guys! And of course, the same goes for the heads of the SOFT lab who were instrumental in introducing the UbiLab hardware in their courses: Theo D’Hondt, Wolfgang De Meuter and Viviane Jonckers.