Tuesday, August 30, 2011

Serial Servo Controller

So , your search for serial servo controller should stop at this point
Take my word i have GOOGLED it for 2years

1) The most famous and popular Serial Servo Controller ( SSC32) open source project from lynxmotion
Uses Atmega and Serial to Parallel converter IC's to control Servo's with 1us resoltion
written in C , pulse width 0 - 65000 us ( which is not at all needed for controlling servos) ,
GUI interface and Control Terminals Available

2) mcu labs SSX32 Serial Servo Controller
PIC based , no extra Hardware needed , pulse width 500 to 2500 , 50% less cost compared to lynxmotion SSC32 , don't know the correct crystal speed but should be greater than 16Mhz ,
didn't find any GUI Application , should use it like an AT Modem

3) My favorite and inspiration 16 channel serial servo controller
AVR based , Poor resolution written in assembly language

There are other versions of SSC32 with 8 and 16 channels

That's as simple as it gets , personally i haven't used any of these but $20 / $40 is a little too much for me to digest

A Though cant we can Control all 32 servos without any hardware with Atmega8 ( 130INR ) or Atmega32 ( 250INR ) ,

Indian Made Serial Servo Controller - not compromising on
Resolution - 1us
No Extra Hardware apart for crystal , Caps
variable Pulse width's
GUI Interface
Group Moves and much more

That's where i am headed to , in short all the feature from SSC32 on a single chip without any need for extra Hardware

i tried to build it a year ago , that was my final year project !
my servo controller aka final year project had 255 steps with 7us resolution wrapped around a scheduler with GUI interface written in VB
Because of its poor resolution it has failed to pass all basic test's and more over servo used to shake from Kashmir to kanyakumari , some how i got Excellent Grade for my project
there ends the story

Today after 18months I Got an Idea to implement this IMSSC ( Indian Made Serial Servo Controller ) and succeeded in optimizing CODE for 1us resolution ,
i will be posting the details and the success story in my next blog

till then happy coding
Nataraja G



Sunday, August 21, 2011

My First Android App

Hello bloggers , after 2hrs of Java Tutorial from my brother ( @ http://gadikotamohan.blogspot.com/ ) i have created my first Android App

here it goes , Its very easy to understand and to program guess that's why its so popular
There are lot of things to do before you can start writing Android App
Download eclipse IDE , android SDK , integrated android emulator and various setting
i am not going through all these things google about'em and find it yourself

Here are the problem's which i encountered
1) The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (new OnClickListener(){})

in your code include
import android.view.View.OnClickListener;

else DialogInterface.OnClickListener would be assumed as the method
and remove import statement for DialogInterfaces

2) andorid" for attribute "andorid:name" associated with an element type "activity" is not bound.

while typing in a new activity name in AndriodManifest.xml , this error's might bug you
dont worry , it a TYPO :)
andorid" for attribute "andorid:name" associated with an element type "activity" is not bound.

It should be android , that's all about the errors

now the Android App

screenshot of android emulator ( what's more emulator can access internet , aint a dumb simulator )















Home screen showing the App which i have created














launch button which invokes another activity















second activity called successfully , i have added few text boxes to check the layout xml file
its is easier that VB.NET !! take my word for it















That's it nothing HIGH FI about the App , happy coding
FYI one of my friend has asked to develop a App which can record call's , after googling found that the developer's haven't considered this as it may cause legal issues in some countries


codes
:

package nataraja.helloworld;

import android.app.Activity;
import android.view.View.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class HelloworldActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnSimple = (Button) findViewById(R.id.btnSimple);
btnSimple.setOnClickListener (new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent (v.getContext(), activity2.class );
startActivityForResult(intent,0);
}
}) ;
}

}


activity2 class :

package nataraja.helloworld;

import android.app.Activity;
import android.os.Bundle;

public class activity2 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate( Bundle savedInstanceState ) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2);
}
}