Human Machine Interfaces – Class of 2015

**Research from this class has been published as a paper**

I just wanted to quickly post a video showing some of the great projects to come out of a class I taught this semester at Griffith University called Human Machine Interfaces. These particular projects are presentations after 6 weeks of development combining research, design and prototyping into this short time-frame. I was super impressed to see things like exo-skeletons and products bringing gamification to life, of course combined with 3D printing, Arduino’s, Rhino CAD with Grasshopper and Firefly, and of course anything else the students could get their hands on.

Watch out designers, these guys will be changing the world! Some of these students will also be exhibiting these projects at the upcoming 3D Printing Forum in Brisbane on November 24 (click here to read my post), so come and say hello 🙂

– Posted by James Novak

Wiiduino – Coming to Design Philadelphia

20150829 Wii Arduino

I just like saying the name… Wiiduino!

My last post showed a video of my experiment modifying and controlling a 3D CAD model using nothing but Wii Nunchuck controllers plugged into an Arduino. Click here to take a look. The image at the top left is the circuit used for that experiment, which is great for prototyping, but definitely looks a bit rough to be part of an exhibition coming up at Design Philadelphia in October. So of course it’s no surprise that 3D printing was my logical next step!

Last year I 3D printed a cool baby NES Nintendo enclosure for a Raspberry Pi B+, and wanted to create a similar enclosure for this project. Firstly I simplified the electronics as much as possible, and stuck the Arduino to a breadboard to create a compact little unit. Next I dusted off the calipers and got stuck into 3D modelling the enclosure around the electronics using Solidworks, ensuring to allow plenty of clearance around the 3 plugs I needed to access – the Micro USB and the 2 Wiichuck adapters. A bit of text and some ventilation holes inspired by the original Wii console, and voila!

Unfortunately the bottom part lifted a little in the corners while printing on an Up! Plus 2 3D printer, which meant the internal dimensions aren’t quite right. I had to file a few millimeters off the top of the plug holes to compensate, but you’d never know. Of course the raised text has been painted to bring it all to life, and there is 1 hidden screw holding it all together.

And with that I officially christen this enclosure Wiiduino, long may you entertain and inspire 🙂

– Posted by James Novak

Parametric CAD Model with Arduino + Wii

As discussed in a recent post about generative design, I’ve been working on an interactive, generative CAD model to be exhibited at Design Philadelphia, in the Crane Arts Center. Well here is a preview of the [nearly] complete CAD model created using Grasshopper and Firefly within Rhino. Using 2 Wii Nunchuck controllers, 2 people can work together to customise the design of a 3D printable light cover in the form of a lightbulb – in essence, CAD modelling has been turned into a game that requires no instruction and is learned through play.

The biggest challenge with this has been getting the signal out of the Wii controllers. While Firefly has built-in Wii Nunchuck compatability, unfortunately I learned the hard way that it is only compatible with genuine Nintendo Wii Nunchuck’s – and I already bought 3rd party ones off Ebay for a fraction of the price. For some reason 3rd party controllers use a slightly different signal/code, and while the Wii console has no problems with this, the Arduino code is a little more particular. Thankfully after an entire day of messing around, ripping apart controllers, tweaking code and swearing, I managed to find a way in! I had to modify some Arduino code and also use the Serial Read tool in Firefly, running the Arduino IDE in the background and listening in to the readings.

As mentioned in the video I am 3D printing 6 examples of what these outputs look like in real life – this model is not just for fun, it is actually designed to create real products suitable for 3D printing, based off a previous design of mine for a Shattered Faceted Lightbulb which you can download for free on both Pinshape and Thingiverse.

Stay tuned for a look at these 6 prints, which have been printing for the last 94 hours on a Fortus 250mc 3D printer. Yes, 94 hours!

– Posted by James Novak

Documenting Arduino Experiments

150514 FritzingOver recent months I’ve experimented with so many open source tools including Arduino, Processing, MeshLab, and FreeCAD. The latest one on my list is called Fritzing, and with many of my recent posts featuring experiments with Arduino (or specifically the Freetronics Eleven), this is a fantastic tool to begin clearly documenting the schematics of these.

Fritzing includes a library of standard electronic components, along with of course Arduino boards and blank breadboards, replicating the physical hardware in a graphical ‘sketch.’ It’s a simple matter of dragging and dropping components, and then drawing wires to connect everything together. In a matter of seconds you have a clear record of your layout to come back to at any time. The images above start with a photograph of the simple potentiometer circuit I used for a previous post combining the Arduino + Rhino + Grasshopper + Firefly, followed by a diagram from Fritzing (called ‘breadboard’ view), and finally another automatically generated view of the schematic. That’s the great thing about Fritzing – everything you do in one view translates across to all the others. You can even design your own PCB’s from scratch ready for manufacture!

It also looks like there is a section to add your Arduino code and upload directly, although according to the website this is a new experimental feature. But looking into the future it seems a fantastic tool to combine everything you need to both program and digitally test your project in one place, along with just sharing your design with others. I’ll use this for any future posts detailing Arduino experiments so you can also replicate them easily, or at least understand what’s been done.

– Posted by James Novak

Arduino + Rhino + Grasshopper + Firefly

For me this is finally the wow moment. Today I have made the connection between all my Arduino experiments and the latest work I’ve been doing in Rhino. This video shows a very simple Arduino circuit featuring nothing more than a potentiometer (basically like a volume knob). Rather than writing code within the Arduino IDE as per normal, you can actually load an add-in for Grasshopper called Firefly, which will allow you to build code through the normal Grasshopper graphic interface. As a designer, not a coder, this really makes a lot more sense to me!

I’ve then added the Arduino to my previous Grasshopper model (check it out here), allowing the heights of the hexagons to be controlled by turning the potentiometer, and dividing the area of each hexagon by a function of this reading. The attractor points still also modify the model when dragged, so if I had some more potentiometers I could potentially control the location of these as well and creat a model that is easily modified using hardware external to the computer. Very cool!

As yet I’ve had no real luck finding any tutorials for Firefly so I think I’ll be making it up as I go from now on. If anyone does have some good links, please leave me a comment.

– Posted by James Novak

Arduino 102

150329 Arduino ProjectsFinally another chance to spend some time learning my new Freetronics Eleven (aka. Arduino). Some of the basics are starting to sink in, the project guide that came with the kit is actually quite good at explaining the reasons why certain things must be done for both hardware and software. The projects pictured above are:

  1. Project #4: using a light sensor to dim an LED.
  2. Project #6: controlling a servo.
  3. Project #6 Customised: adding an LED that turns on when the servo spins in one direction, and off in the other.

Again not the most exciting projects, but at the moment it’s all about making sense of this ‘new world.’ I have included the code for the custom project #6 if you want to build it yourself.

int led = 13;
int delaytime=5;
int angle=0;

#include <Servo.h>
Servo myservo;

void setup()
  pinMode(led, OUTPUT);

void loop()
  while (angle <=180)
      angle = angle + 1;
      digitalWrite(led, HIGH);
  while (angle > 0)
      angle = angle - 1;
      digitalWrite(led, LOW);

Happy hacking!

– Posted by James Novak

Arduino 101

150324 Arduino ProjectsFor something new outside the normal 3D printing stuff I post here, I have now started experimenting with the Freetronics Eleven Kit (essentially an Arduino). This has been something I’ve wanted to try for a long time now, and I’ve finally found an excuse through my PhD research to make time to learn about the electronics and coding of this system. Admittedly I feel like a child when it comes to my knowledge of circuits, so I’m starting out nice and simple!

Pictured above are photos of the first 3 projects supplied with the kit:

  1. Firstly creating a basic LED circuit with coding to control blinking.
  2. Controlling 8 LED’s and using coding to control a ‘scanning’ effect progressing through the LED’s.
  3. Adding a button to allow pausing of the LED’s during scanning (reminds of of arcade games where you have to stop the lights in a certain spot to win a prize).

Now I admit it’s far from exciting like a robot would be, but for someone with no electronic skills it’s a great way to get started with an understanding of both circuitry and coding. As a designer used to using 3D modelling tools to produce what I imagine, using text-based code to control this is quite a side-step, requiring a new way of thinking. But what I like about the Arduino is the community surrounding it – there is a tutorial and free code for almost anything you need to create. I don’t know how well I’ll pick it up, but it’s great to begin learning something totally new! Stay tuned, I’m sure there will be some 3D printed enclosures or something coming very soon.

– Posted by James Novak