Well this week I had some time off and was finally able to devote some overdue attention to some of my many on-going projects. First in line was my 3D printer build Leonard. It’s been a while since my last Leonard posting, what with work, Koothrappali and Project Wave (coming soon) poor old Leonard has just sat in a corner collecting dust and er…. breaking!!!
To my surprise over the approximately 3 month period since I last did some development, nearly all of the printed bar clamp parts have failed and those that are still in one piece, are showing serious signs of fatigue.
The obvious conclusion (looking at the above picture) would be that I had overtightened the frame around these parts, however I strongly refute this to be the cause and/or case and lay the blame on a combination of both material properties and poor part design.
Those of you who have been following via my facebook page would have seen that I have been toying around with the idea of utilising the power of the Kinect with my latest robot build, Koothrappali. In order to facilitate this however I first had to verify that I could run the system unmodified with my tablet and with a portable power source.
Point one was easy to resolve, and after installing the drivers I soon had the Kinect up and running. Point 2 however, was a little more tricky, but also achievable via the development of a custom Kinect Robot Power Adapter.
Hello again and welcome to another two birds one stone posting. Today I would like to introduce you to another little side project that I currently have on the go, The Haptic Track Pad, and whilst I’m at it, also provide you with a little code so that you too can apply simple touch screen technology to your Arduino applications.
The Haptic TrackPad
Designed primarily for those with visual impairment, the Haptic Track Pad is a peripheral input device that utilises force feedback to afford the user with an enhanced sensory experience in a similar manner found within contemporary gaming peripherals and mobile technologies such as smart phones and tablets.
To see prototype one in action check out the following video:
My research into Assistive Technology peripheral development has indicated that on the whole as a device the standard laptop/net-book track-pad is usually completely abandoned by those with VI’s, resulting from artefact’s's such as incompatibility with screen readers and/or positional point of reference bearing.
This is a shame and a big problem especially as as we progress further towards Weisers Third Wave of computing. Many interfaces are now becoming touch screen dependant and as mobile and tablet computing grows in strength so too does an influx of potential new barriers for those with disability.
The Haptic TrackPad utilises a combination of technologies to alleviate the restrictions commonly found by those with visual impairment, for example PWM can be used to vary the feedback given for a variety of uses such as iconic hot-spot indication and/or physical boundary identification and even some novel uses such as per-pixel indication of image and/or colour.
In today’s post I am going to kill two birds with one stone as so to speak. Primarily I plan to introduce the Arduino Motor Shield R3 and provide an accompanying tutorial, in turn also allowing opportunity to introduce you to my latest robot build, Koothrappali. After all, what better way to get to grips with a little code than with a practical example.
This post demonstrates the control of a Rover 5 Robot Platform via the use of an Arduino Pro and the Arduino Motor Shield R3. If you don’t have a Rover 5 or an Arduino Pro specifically, don’t worry as in theory the code can be used to control the shield with any variance of equivalents e.g. 2 DC motors and an Arduino Uno etc.
One of the initial requirements I came across whilst developing with the Arduino platform, as with the Netduino platform, was the need for effective 2 way serial communication between both the Arduino(s) and my desktop. Luckily, the Arduino software provides several examples that can get you up and running with serial communication in no time.
These examples can be found dotted around the File>Examples> within the Arduino IDE. However, the example primarily used for basis of this tutorial (also available online here) can be located via File>Examples>Communication>SerialEvent. SerialEvent() is a function which is called after loop() whenever new data has been recieved over serial RX.
With minimal expansion to this example code its quite an easy task to add methods for data parsing via use of delimiters, thus affording functional instructions and/or commands to be sent between devices.
Here we have a quick photo of a quick mini project I put together last night whilst playing with my new Sparkfun BluetoothMate. The EarTrack. Features include full 9DOF tracking (inc Yaw, Pitch and Roll right out the box), Bluetooth serial (thanks to the BluetoothMate) connection (fast data transfer) and even USB recharging.
The device can be used to provide head tracking capability for natural user interface(s) and VR and is soon to be released as an open source project just as soon as I have finished putting together a little accompanying windows app and library etc. If you cant wait a few days send me a mail and i’l see what I can do beforehand (you will just need to parse the serial stream).
The EarTrack is to be the first of many open source projects demonstrating my research into Assistive Technology and Natural User Interface peripheral development.
More information and a how to guide to follow shortly
Following on from my previous post detailing my transition to the Arduino platform let me to introduce you to the varients of hardware with which I have been working as of late. From left to right, the Arduino Pro, Pro Mini and finally the Fio.
I thought long and hard before my initial purchase and after a little research and also by drawing upon my experiences with the Netduino platform I opted to go for 3V3 variants of the Arduino platform whenever possible. The rational for this decision were factors such as easier integration with the majority of the breakouts that i’ve collected over the last few years and/or provision of power etc.
I always found 5V to be a real pain with the Netduino Mini.
Well this is my official first post of the year, better late than never!
A lot has happened since my last posting including the successful defence of my thesis in last December, a massive New Years Eve bash followed by the birth of my second grandchild in January, the realisation that I could not be bothered to buy a Kinect for Windows (Yet) in February and seeing Rammstien (check out the vid) live for the first time last week
As far as this blog goes however the major event of which you will probably be most interested (judging from page stats) is a shift in technology focus from that of Netduino and the .NetMicroframework to that of Arduino and C/C++.
Initially driven by the development of project Leonard and a desire to learn both C and C++ in readiness for the advent of Metro (just in case lol) I quickly fell in love with Arduino and have not looked back.
The transition over to the platform has enabled me to finally realise many personal projects that have in reality been hampered by the immaturity and limitations of the Netduino platform. Gone are factors such as limited access to USB/HID, lack of software serial, shield and related technology compatibility to name but a few.
In addition to the Arduino transition I have also made a real push into Windows Phone development. From now on the .Net aspects of this site will primarily reflect this new interest in conjunction with tablet based NUI development. However this may change with the advent of updates to the .Net Micro framework and or investigation of Fez hardware (just like dad lol).
These shifts in focus have got me thinking about how I would like to further develop this website and my personal profile. The first step on this new and exciting path is a revamp of the look and feel of dyadica.co.uk , I hope you like it
Following on from yesterdays Project Leonard post, today I fortunately I managed to get a set of the Z Axis couplings I designed last night printed. If you haven’t been following my RepRap build, yesterday evening I tried to assemble the machines Z axis and hit a small problem, when trying to attach the steppers to the 8mm threaded bar used to lift the X carriage.
The default Prusa couplings just would not grip the 8mm shaft, even when tightened to and/or even past full capacity. A little research of the RepRap wiki revealed another potential design solution as made by Chris Hanton, however I would need to machine the part. Instead I decided to utilise the design as a basis for the development of a printable solution. The above picture shows the bespoke part and the original coupling (with tightening damage).
As you can see the new design is much simpler in implementation.
Well this evening I hit the first snag in the Leonard build. No matter how much I tightened the motor to 8mm bar couplers the bar would not grip. I even tried wrapping tape around the bar in order to increase diameter (yup a dirty hack) but alas to no avail (bad design and/or model implementation if you ask me).
Eventually one of the couplers snapped due to purpose over tightening (not surprisingly) and this brought a halt to proceedings for most of today’s build. The above image shows the snapped coupling. Despite this issue however, I decided to continue mocking up the axis so I could get a feel of how things go together ready for my next attempt.
Once completed I decided to have a go at developing my own coupler utilising the “more durable design” developed by Chris Hanton and as suggested at reprap.org.