Showing posts with label Android. Show all posts
Showing posts with label Android. Show all posts

Monday, 9 January 2012

Pinguino


Pin-goo-ee-no, Ping-wee-no, I'm not sure how to pronounce it. But this is a project that been developing since 2008, with the purpose of designing an Arduino that can be built on the cheap by anyone at home. It mostly supports Arduino code, and this is getting improved on. As for other hardware, for the next release they they are working on supporting Zigbee, OTG and CDC, which makes it a hell of a lot easier to plug things in and get them working. Also whats interesting is that they are working on getting Android support, so effectively turning this into an ADK board as well.

What caught my eye though is that the guy who developed it, Jean-Pierre Mandon, is a teacher at the robotic lab at the Aix en Provence School of Art in Southern France. Why an art school needs a robotics lab I'm not yet sure, but initially this project was meant as a tool for his students. This guy might be useful to talk to.

Ultimately, it looks like they are saying this board exists to build more features into the existing Arduino platform, while making it more widely compatible and cheaper to make. I think its worth giving this a look at, at least after the next version.

More info and an interesting interview at MAKE and the original site here.

Tuesday, 15 November 2011

Bridging The Gap

So far with my studies I'm finding an inherent problem with trying to teach, and I'm sure its something that anyone who has ever attempted to teach multiple people - especially in a group - has encountered. The problem is that everyone is different. Particularly for teaching, everyone has different skill levels, ability to learn, willingness to learn, and also different levels of interest in the taught subject. This makes it very hard to fit the curriculum around a group of people, because some will excel and some will struggle, and some just wont care.

You even see this in everyday life. Computer programs often have a 'quick-start guide' to explain the basics to the people who don't have a clue. Video games have easy, medium and hard settings to suit the n00bs up to the hardcore players, and mobile phones will have an 'Advanced Settings' menu that only the brave should dare to venture.

The reason I type this is because while I am researching easy ways for people to prototype, and entry level routes into coding and App building, I cant help but think about 2 things;

One, are these basic introductions applicable in industry? Would you let a brick layer build a house if all you've taught him is Lego?

Two, what if some of the people this is teaching are far beyond this - find it child's play, or simply want to investigate further in their own time?

These resources should open up as many doors as possible and not restrict people to only the basics. They should encourage curiosity and let imaginations a skills flourish, prepare them for the real world but still not forget about the people who just want to complete the task so they can pass their degree module.

So this is why bridging the gap is so important, and why I'm looking at services like App Inventor as good examples. Just the other day I found out about the App Inventor to Java bridge, which is doing a great job at flattening the learning curve between simple block-interface coding and Java, the primary protocol used for coding Android applications. But not only that, it introduces the concept of having an Interface Builder separate from the code writing elements, and how they interact with each other. This is the same as in xCode when writing iPhone applications. So along with a few other parallels between the two approaches, students can relate what they learnt with the basic system to what they would encounter when tackling the more advanced tools.

On the ladder of learning, there should be many rungs so students of different skill sets and abilities can jump on when they want. The resources should be there to support this.

Monday, 7 November 2011

Hardware meets apps



Ok, so the Lego Mindstorms NXT robot kit I got last week is an awesome plaything, but it also packs some cool features, namely Bluetooth support. This opens it up to being controlled by (or controlling) all sorts of things, including PC's, tablets, phones and iPods.

In this demonstration I built the shooter bot (one of the several robot variations that are in the kit instructions) and have controlled it with my android phone, with an app built in App Inventor (see previous post about that).

I have to admit, the blocks (code) that I used in app inventor were not all my work. I gave it a shot, but even with a nice graphical block interface, there are some complicated processes you need to go through to make this work, like the Bluetooth connectivity, and the control statements to command the motors. So I got a headstart using sample code from The AI Repository, a folder of pre-built programs you can load straight into App Inventor.


I made some changes, added some extra buttons, arranged them into a directional layout and put in an "Action" button, for any functionality the front motor has.

Anyway, here's a little video of it working below, it's shooting stuff and spinning around. While Your watching it, chill out to some dub reggae in the background.






App inventor > Java Bridge

I've been using app inventor on and off for a few weeks now, and its pretty good. As a graphical way of realising code blocks, it does a great job, while still retaining the logical thinking required in real code writing. But, as an educational tool, is it the best way? Surely it isn't very applicable to the real world, and not good for people who actually want to learn to code?

Some developers in the AppInventor forum have created an AppInventor to Java bridge. This means that students who start with App Inventor can use these graphic block components in the Java-based Android SDK. The student can use as many or as few as they like until they start feeling more comfortable with the Java environment, thus graduating the transition. An ongoing project.

More can be found here

Tuesday, 1 November 2011

Toys

A package arrived for me today, a Lego Mindstorms NXT kit! With these things you can build robots, program them on a computer and even control it with apps made in App Inventor. A great example of mechanical prototyping and interface design in a package that effortlessly connects with students of all ages? Maybe. But who cares? I'm busy re-living my childhood.


Monday, 17 October 2011

EOTW

This is going to be the first of many 'end of the week' posts, covering what I've been up to in the past 7 days. Except this one is covering the last 2 weeks, and I'm writing it on the Monday of my third week. I'll get better at this blogging progress thing eventually!

The things that have been taking up my attention has been starting with the research and learning new skills.

The research I've been starting with is focusing directly at Problem Based Learning and Design Based Learning, both separate things, but sharing a lot in common.
Most of the PBL material I've been reading has been related to the medical industry, but there is also much written about PBL being applied to engineering disciplines. Both subjects are of interest, but interestingly, the medical papers touch a lot on PBL being used to teach ethics and morality; an interesting concept when applied to design, as you start to think about the ethical decisions a designer must face when designing a product. Is it something that would be thought about while hardware or interface prototyping? A medical product perhaps?

I haven't covered what Design Based Learning is on here yet, but I'll do a little post at some point explaining both PBL and DBL. There seems to be less written on DBL, but theres many sources of information I haven't tapped into yet. The most interesting paper I've found so far is entitled "Designing Learning through Learning to Design" (Mishra, Girod, 2006) which documents what a teacher witnessed when DBL was applied to her class, and an academic's interpretation of these observations.
It basically showed how an otherwise mundane subject can be turned into a very interesting and productive one when the tasks were to design and build models representing the core principles.


While researching different ways of teaching, I've also been teaching myself some new stuff.
In order to build learning environments around interfaces, it would probably be a good idea to learn how to create some interfaces to teach. So I've started with touch interfaces, and had my first play with Android App inventor.



Android App inventor is a very useful tool for people like me who are (at the moment) new to building apps. On top of that, it's also a very good example of the kind of stuff that would be good to put into the classroom, because of its very shallow learning curve. It works in two parts, like many app dev kits; It has a 'Designer' window and a 'Blocks Editer' window. Within the 'Designer' window, you layout the content of the app, buttons, images, sounds, moving elements and so on. But its in the Blocks Editor where you assign functions to each of these parts.
The 'Blocks Editor' function is the most interesting to me, because it is a good example of graphic-based code writing. In this, not a single line of code is actually written by the user. Instead, the logic of the program is in the form of blocks which the user drags into the main window. There, other blocks are attached to build up the code.
It is just the kind of thing I am looking for to introduce code to students who have never coded before.

One of the first apps I was able to create (thanks to the easy tutorials on the site), was a simple painting app.


OK, so maybe I was never good at finger painting at school...

Moving on from that, I've been diving into learning how to code with Objective C, which is what is needed to code iPhone and iPad apps. This is a little more challenging and is taking quite a lot of time to do. Thankfully, there are loads of resources on the web to help with this, the best so far being The New Boston on Youtube, who does a whole host of tutorials from C++ to 3Ds Max. I'm still at the early stages of this, no shiny apps to show yet!



This next week is going to be focused on progressing with very much the same things. Until next time...