OBWIous – Opensource Bluetooth Watch Initiative

Hi everybody,
Lately i’ve been spending my spare times to build an homemade bluetooth wristwatch.I’ve used Nokia 6610 LCD for display, Bluesmirf GOLD for the bluetooth and Arduino Mini Pro for the processing.
I just finished most of the soldering & electronics part yesterday… Only one thing left on the electronics part and that is adding some buttons onto the watch.
I’ve written a bluetooth client application for N900(Maemo5). But it still needs some improvement on User Interface. So to speak back-end for N900 is done..
Today i made a simple Graphical User Interface for the watch and i recorded a video to introduce User Interface.


Continue reading

N900 Interaction with Arduino Mini Pro via Bluesmirf GOLD

I just got my Arduino Mini Pro & Bluesmirf GOLD yesterday. Im running some tests and practicing some stuff with them. Since yesterday , my personal achievements are “Using Arduino as an ISP Programmer” , “Communication through bluetooth with Bluesmirf”.

I used an old arduino of mine – which is a so called Arduino Severino – to program Arduino Mini Pro.I had a RS232 to USB converter so i could program it with my laptop. But the uploading process was quite tricky. Im going to write down the tips and tricks here in case i forgot , i dont want to struggle with whole that all over again.

Make sure baudrate is 19200
Switch Arduino Severino to Serial Enable Mode( Move (JP0)Serial Female header to 2-3 pins ).
Click upload button and wait for the “sketch size bla bla” notification appear below , when it appears press reset button asap…

Communication through Bluesmirf is no different than Serial Comm. But make sure you connect Tx-Rx pins reverse. Tx(bluesmirf)->Rx(arduino)……

And here are some photos and a video demo. of what i have done so far…
More Photos

Quadrotor… Long story short…

Hi fellows

Actually it is quite late to blog about this.. But i think at least i can share the materials rather than just keeping those in my archives.I’m not going to go much into details.We’ve started a project to build a Quadrotor at University.We’ve made presentations to some companies & foundations to get financial support.After 5-6 months of presentation we finally found some financial support.But the project start to evolve in a way that totally bother me.So i quit the project and the project ended a couple of days later… Anyway… as i already said im not going to blog about that part of the story because i think it would be ethically incorrect.

So… what i wanted to share here is the material i create for the presentations etc…Maybe it helps some people who are interested in Quadrotors…
Continue reading

Redo & Undo : different approaches on logging the Action

Here we are with another riddle to be solved. Undo and Redo feature , it’s everywhere , you can come across to it on any software you use on a daily basis.It has become an inevitable piece of feature on every application.
But im sure that you do experience too that sometimes it does fail to understand how much of action to undo.And sometimes you stuck at where you’ve end up after undoing and become unable to redo.
Well… I’ve been thinking about how to implement an undo & redo algorithm for a freelance project i have been working on.It’s kind of a start-up web project and will be a new thing online.Thus i wanted to make sure everything matches users expectations and works efficiently. It has a practical graphical editing interface.If you are already familiar with a couple of graphical productivity softwares.You might have already experienced the difference between them in undo&redo feature.Everyone has a unique way of its own to handle the data.So to speak every application requires a different approach on redo & undo algorithm to match its user’s expectations.
I’ve thought of 2 possible techniques and a third one which is actually a combination of those two.

History Data logged for each action:

OBJECT , ACTION , POST_DATA , PRESENT_DATA
I guess those are self-explanatory…

[kml_flashembed movie="http://mclightning.com/wp-content/uploads/2011/06/unredo.swf" width="550" height="400"]

Method A :

There is no ruling or filtering in this method whatever user does added into history log.
Cons:
Even the sequential smallest amount of movements logged.
Thus it consumes too much of memory
And User has to click over and over again to skip back while undoing.

Pros:
It is possible to undo every action as it is logged no matter how small effect it had on the design.

Method B:
Rule:
if (
last_logged_action->object==present_action->object
&&
last_logged_action->action==present_action->action
)
{
last_logged_action->present_data=present_action->present_data;
}
else
{
// Log present_action as a new record.
}

Pros:
User can directly undo just before the first of the sequential action.
So it comforts user from clicking over and over again to the undo button.

Cons:
There is no way to go back into the somewhere in the middle of the sequential action.

So… Here comes the Third Method The combination of these two methods above.

Method A+B : Convenient name huh :D ?
Rule:

sensitivity=5;
if (
last_logged_action->object==present_action->object
&&
last_logged_action->action==present_action->action
&&
last_logged_action->present_data – present_action->present_data>sensitivity
)
{
last_logged_action->present_data=present_action->present_data;
}
else
{
// Log present_action as a new record.
}

I guess you noticed that sensitivity comparing line addition to Method B.
By presetting a sensitivity value for each action type we can decide when to go with Method A or Method B.