and a Snap! extension for BOOST

I got excited with the Snap! extension for WeDo 1.0.

Having an extension that just exposes some methods already provided by a pyhton library (WeDoMore for the WeDo 1.0) means that I can adapt it very quickly to whatever device I want as long as I have a python library.

And I do have a python library for BOOST! 🙂

So changing just a few lines of code and a few XML definition blocks I have my first demonstration of Snap! working with BOOST:

Further details and another github project soon.

And since I’m on an Spanp! extension spree, I’ll probably add a WeDo 2.0 extension aswell.

A Snap! extension for WeDo 1.0

Yesterday I returned to Snap! to fast write a LEGO WeDo 1.0 extension.

It just requires two files:

  • A python script that implements a very basic HTTP server that exposes the WeDo 1.0 methods from WeDoMaster library.
  • A xml file containg 3 Snap! custom blocks (motor, tilt sensor and distance sensor)

It works on Raspberry Pi so anyone that wants to use the LEGO WeDo 1.0 just need an RPi and a browser with internet access. I used a Raspberry Pi Zero W so just a USB Hub with microUSB port and a power source is needed.

Source and details at github project SnapWeDo1.

Big thanks to:

Crónicas do Engenheiro Maluco por Tartes de Framboesa e Lego: Introdução

Objectivo:

Disponibilizar uma plataforma para que crianças de todas as idades se divertam enquanto desenvolvem aptidões nas áreas da Ciência e Engenharia (sobretudo Robótica).

Os blocos Lego não são apenas um brinquedo, são excelentes ferramentas pedagógicas. E além dos blocos básicos, com os quais já se pode construir quase tudo que vier à imaginação, os conjuntos Technic, Power Functions e Mindstorms permitem-nos acrescentar movimento e autonomia às nossas criações.

Nos Estados Unidos (e não só) existem várias organizações que pretendem incutir nas crianças e adolescentes o gosto pelas ciências (STEM – science, technology, engineering and mathematics). Muitas delas fazem-no justamente com Lego:

Dentro do mesmo espírito mas limitado apenas ao ramo das ciências da computação, dois projectos captaram muito recentemente a minha atenção:

A Raspberry Pi Foundation surgiu da preocupação de quatro docentes do Computer Laboratory na University of Cambridge com a falta de preparação dos candidatos a cursos de ciências da computação no Reino Unido. Decidiram por isso difundir entre o público juvenil a versão moderna dos micro-computadores baratos e fáceis de programar que abundaram nos anos 80/90 (a ideia parece-me pertinente já que eu tive um ZX Spectrum 128 aos 14 anos e vejam no que deu).

Tal como no Spectrum havia uma ligação muito directa à linguagem Basic, a Raspberry Pi Foundation decidiu apostar na linguagem Python (daí o Pi que surge no nome) e ainda na linguagem Scratch desenvolvida no Lifelong Kindergarten Group do Media Lab (MIT, Massachussets Institute of Technology) especificamente para estudantes dos 8 aos 16. Esta última é uma linguagem visual que permite desenvolver programas ou animações sem ser necessário escrever código, bastando apenas juntar blocos (como no Lego) e ajustá-los às nossas necessidades.

Como o Media Lab autoriza e até incentiva o desenvolvimento de extensões ao Scratch surgiram muitos outros projectos dele derivados, incluindo alguns que permitem interagir com blocos Lego Mindstorms como o Enchanting do Southern Alberta Robotics Enthusiasts e o Snap! (anteriormente chamado BYOB – Bring Your Own Blocks) da University of California em Berkeley.

Juntando tudo (Snap! + Raspberry Pi + algumas peças Lego Technic e Mindstorms) podemos criar pequenos robots relativamente fáceis de programar, sem o preço nem o peso de um computador portátil nem a complexidade de um microcontrolador dedicado (como um PIC ou um ARM, apesar de neste campo projectos como o Arduíno terem permitido diminuir significativamente a componente complexidade).

Depois é só dar asas à criativade e ao engenho dos engenheiros e cientistas de todas as idades que possam pegar nisto.