explorestem / rpi_kit

Raspberry Pi Kits
2 stars 1 forks source link

GPIO Zero #4

Open soslug opened 8 years ago

soslug commented 8 years ago

Now that GPIOzero has been adopted and is used in Jesse and looking at you Python code for Minecraft progams, it does not look as though you are using this particular library with in the listings. Does this mean you will need to re-write your book or will you be sticking with this programming method.

whaleygeek commented 8 years ago

Hi Soslug,

GPIO Zero is a simplified abstraction, with a view to getting younger children and beginners into digital making, without actually doing much actual programming. It's all about 'wiring things up' and less about sequence, selection, and iteration. It's all about inputs and outputs, and less about the algorithms in the middle.

However, at some level you have to learn the real language to do other things beyond just wiring inputs to outputs. Learning a textual programming language to decompose a problem into smaller steps, developing algorithms, and using computational thinking, are key aspects of the national curriculum that teachers have to teach and assess. Python as a language does not only run on the Raspberry Pi, and I always hope that readers will later progress to bigger platforms (and those platforms do not use GPIOZero).

I love the work done on GPIOZero, and there is nothing stopping anyone writing their own resources around GPIOZero should they wish to - but I see it as a start, not the whole story. I see it as a way to tease people into making and tinkering, where the natural progression should be to progress to algorithms and deeper computational thinking that can be applied in a variety of wider contexts, hopefully leading many of them to a career in computing.

I have no plans to rewrite my book to simplify it. I see GPIOZero as a stepping stone that leads to bigger things. I think it does an excellent job as a stepping stone. But we need people to ultimately learn the real language, learn real computational thinking, and learn to develop real algorithms.

Hope this makes sense!

David

@whaleygeek

soslug commented 8 years ago

As you know I am an avid supporter of all things Pi but I am dismayed that the Pi community choose to use GPIO for pinouts rather then the pins numbers themselves. The GPIO pins are not logically placed on any of the Raspberry Pi their is no GPIO "0" or GPIO "1" for starters as opposed to using the pin assignments (1,2,3,4,5,6,7,8,9......). It is a lot easier to tell a student to go to Pin 15 than it is to explain were GPIO 22 resides, even with a table in front of them, from the students perspective it is very confusing from a childs perspective its like driving a lorry before they can walk, and as you must use the GPIO notation (for want of a better word) in Scratch ie (gpio14on, gpio15off, gpio18on). So my question was related to this, I know for example you must use GPIO port_numbers in Scratch to define your input and output ports is the same true in python now a new library GPIOZero has been added does this use the same methodology. (GPIO instead of Pin Numbers) I apologies if my first question fell short of the correct explanation.