Showing posts with label hobby. Show all posts
Showing posts with label hobby. Show all posts

Wednesday, May 14, 2014

Much awaited Arduino TRE is out.. !!

As many of you already know, the Arduino TRE is not a typical Arduino board. It’s a Linux computer running on a Sitara processor, plus a full Arduino Leonardo. It builds upon the experience of both Arduino and BeagleBoard.org, combining the strengths of both.
Can't wait to get one but still waiting for the real one for i don't have so much of spare time as before to dump my life on it.. But still would love to have one soon after the beta tests are over..

The Arduino TRE Developer Edition (see other pics) is a pre-production board. 


When using Arduino TRE  you’ll see a new editor (IDE) that has been specifically developed for this board. The TRE IDE comes pre-installed with the onboard Linux and is accessible via a web browser. It builds upon the simplicity of the Arduino software experience, while adding a few new powerful features (such as uploading sketches from the onboard Linux) and a refreshed UI.


A nice competition to Raspberry Pi

Saturday, January 04, 2014

Tuesday, May 15, 2012

Yet another Arduino GSM-CDMA cell phone Adapter

How often you had imagined if you could use arduino to do this, that and what not... I always had felt if i could put this + arduino.. that + arduino like.. was actually wondering if only i get some problem on my way would hardly hesitate to make some soln out of Arduino :)

This shield has the ability to connect to high speed WCDMA & HSPA networks that could launch us perfectly to the "internet of things" era as they prefer to call it.
With an internal GPS wit hmobile cell ID triangulation using both assisted-mobile (A-GPS) and mobile-based (S-GPS) modes this gizmo of dreams surely lives up perfectly to fill the void in the hyper market.
what more.. with a cam of 640x480 resolution for both photo and video recordings, SD file system and all those fancy little things that gadget of todays come....


I don't necessarily believe throwing more hardware at a problem will fix it but I have not seen this brought up in here. Will this device make up for what the phonedrone is missing and save you guys some work?

Wednesday, May 02, 2012

Arduino Based Auto Timer / Stop Watch Timer for stroking time Measurement

See my Instructables below for full version of this article
The Need:
Last week around at work I had another usual un-usual  problem to face with.  Having to make lots of mechanisms n components to work with-in seconds or fracs at times I kind-of knew this was always coming.


And invariably so my poor mind couldn't think of anything but Arduino for a handy solution that should be compact, flexible, highly customizable, rugged and most importantly easier to work around.

Step 1The Problem:


i
The Problem:
What we had is an arm moving around from an actuator which we would like to tap with some contact type micro switces (limit switches) to give a feed-back signal as the awkward figure suggests.

Step 2Components:


i
Components:
I franatically searched for the components from the Junks I always treasured with the hobby kit coming-in handy..


LCD Display (16x2) - 1
Micro Switches - 2
Hook-up wires for (bread board) - Plenty (see Fritizing schematic for actuals)
Bread Board - 1 (for Prototyping)
LED - 1 (fok blinking indication)
Resistors 330 & 2K - 1 each
potentiometer 4k - 1  ( I had used one 2k Resistor and a 4K POT in comb. instead of a 6k pot to control the display as it came so handy from the junk parts)

Arduino - 1 (Duemelanove is what I had)

Step 3The Methodology


i
The Methodology
  • IMG_5639.JPG
  • IMG_5633.JPG
  • Image1256.jpg
  • Image1255.jpg
Now that all I/O's are wired in order as per the schematic, it pretty much works-out itself and it all boils down to the programming now..


I had used the StopWatch library to evoke the timer and initiated the millis() function to record time step value as soon as Arduino is started.



But what I need is just a differential timer with the simple math which gives us the time on air or otherwise.



All that I did is declared some run-time variables and do some math to display the difference value to show only the time between micro-switches getting energised. Otherwise to display the time correctly in the format is similar to Dan Thompson's method as it only records the time values in millis and we have to convert the values to sec, min, hr and microsecs.



The other problem i encounter is the sign reversal as arduino cannot handle large buffer. I finally managed to overcome this error by using the unsigned longint as integer data type.

Step 4Display Shield


i
Display Shield
The display shield is constructed of pretty much the same components over a matrix board with pin rails for piggy-backing Arduino.


Had used some old components from an electronic choke for compacting

Step 5Arduino Sketch - Programming

Final sketch\code for Arduino below:
/*
Sketch \ Code by Chuppandi aka Subu
Chuppandi@gmail.com
www.chuppandee.blgospot.com
*/


#include
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // LCD pins decleration
int switchPin1 = 3;// switch1 is connected to pin 3
int switchPin2 = 2;// switch2 is connected to pin 2
int ledPin = 13; // LED is connected to pin 13 in arduino
int val1;
int val2;
int frameRate = 500;                // the frame rate (frames per second) at which the stopwatch runs - Change to suit
long interval = (1000/frameRate);   // blink interval
char buf[15f00];                       // string buffer for itoa function
unsigned long starttime = 0;
unsigned long endtime = 0;
unsigned long lasttime = 0;
unsigned long currenttime = 0;
StopWatch sw_millis;    // MILLIS (default)
StopWatch sw_micros(StopWatch::MICROS);
StopWatch sw_secs(StopWatch::SECONDS);
void setup() {
    lcd.begin(16,2);
    pinMode(switchPin1, INPUT);
    pinMode(switchPin2, INPUT);
    pinMode(ledPin, OUTPUT);
    Serial.begin(9600);
    sw_millis.start();
    sw_micros.start();
    sw_secs.start();
}
void loop() {
  val1 = digitalRead(switchPin1);   // read input value and store it in val
  val2 = digitalRead(switchPin2);   // read input value and store it in val
    if (val1 == LOW && val2 == LOW)
   {
    digitalWrite(ledPin, HIGH);   // turn LED on
    currenttime = (sw_millis.elapsed() - lasttime) ;
    Serial.print("sw_millis=");
    Serial.println(sw_millis.elapsed());
    Serial.print("sw_micros=");
    Serial.println(sw_micros.elapsed());
    Serial.print("sw_secs=");
    Serial.println(sw_secs.elapsed());
    lcd.clear();
    lcd.print("SECS:");
    float sec = sw_millis.elapsed()/10;
    lcd.print(sec);
  int elapsedMinutes = (currenttime / 60000L);
  int elapsedSeconds = (currenttime / 1000L);
  int elapsedFrames = (currenttime / interval);
  int fractionalSecs = (int)(elapsedSeconds % 60L);
  int fractional = (int)(elapsedFrames % frameRate);       // use modulo operator to get fractional part of 100 Seconds
   fractionalSecs = (int)(elapsedSeconds % 60L);        // use modulo operator to get fractional part of 60 Seconds
  int fractionalMins = (int)(elapsedMinutes % 60L);        // use modulo operator to get fractional part of 60 Minutes
   lcd.clear();                                         // clear the LCD
lcd.print("TIME:");



   if (fractionalMins < 10){                            // pad in leading zeros
      }
    lcd.print(itoa(fractionalMins, buf, 10));       // convert the int to a string and print a fractional part of 60 Minutes to the LCD
      lcd.print(":");                                 //print a colan.
if (fractionalSecs < 10){                            // pad in leading zeros
      lcd.print("0");                                 // add a zero
      }
lcd.print(itoa(fractionalSecs, buf, 10));          // convert the int to a string and print a fractional part of 60 Seconds to the LCD
   lcd.print(":");                                    //print a colan.
if (fractional < 10){                                // pad in leading zeros
      lcd.print("0");                                 // add a zero
      }
lcd.print(itoa(fractional, buf, 10));              // convert the int to a string and print a fractional part of 25 Frames to the LCD




    lcd.setCursor(0, 1);



    endtime = currenttime;
    lcd.print(sw_millis.elapsed());
    lcd.setCursor(0, 1);



    lcd.print("us=");
*/
  delay(10);
}
// if (val1 == LOW){
//       digitalWrite(ledPin, LOW);}
else{
  lasttime = sw_millis.elapsed();
//  endtime = (sw_millis.elapsed() - starttime);
//  endtime = (currenttime - starttime);
digitalWrite(ledPin, LOW);
  int elapsedMinutes = (endtime / 60000L);
  int elapsedSeconds = (endtime / 1000L);
  int elapsedFrames = (endtime / interval);
  int fractionalSecs = (int)(elapsedSeconds % 60L);




int fractional = (int)(elapsedFrames % frameRate);       // use modulo operator to get fractional part of 100 Seconds
int fractionalMins = (int)(elapsedMinutes % 60L);        // use modulo operator to get fractional part of 60 Minutes
lcd.clear();                                         // clear the LCD
lcd.print("TIME:");



   if (fractionalMins < 10){                            // pad in leading zeros
      }
    lcd.print(itoa(fractionalMins, buf, 10));       // convert the int to a string and print a fractional part of 60 Minutes to the LCD
      lcd.print(":");                                 //print a colan.
if (fractionalSecs < 10){                            // pad in leading zeros
      lcd.print("0");                                 // add a zero
      }
lcd.print(itoa(fractionalSecs, buf, 10));          // convert the int to a string and print a fractional part of 60 Seconds to the LCD
   lcd.print(":");                                    //print a colan.
if (fractional < 10){                                // pad in leading zeros
      lcd.print("0");                                 // add a zero
      }
lcd.print(itoa(fractional, buf, 10));              // convert the int to a string and print a fractional part of 25 Frames to the LCD
    lcd.setCursor(0, 1);
    lcd.print("ACTUATOR TIMER");
}
}
// End of the program

      lcd.print("0");                                 // add a zero

fractionalSecs = (int)(elapsedSeconds % 60L);        // use modulo operator to get fractional part of 60 Seconds

    lcd.print(sw_micros.elapsed());

/*  lcd.print(" ms=");

    lcd.print("ACTUATOR TIMER");

      lcd.print("0");                                 // add a zero

#include

Step 6Packaging


i
Packaging
  • Image1285.jpg
  • Image1286.jpg
Packaging is always fun.. Just pick-up whatever you could come up with from the mighty treasure junks... you can make wonders...


Do visit my space for more updates on my Arduino erector kit.

See my Instructables below for full version of this article
http://www.instructables.com/id/Arduino-Based-Auto-Timer-Stop-Watch-Timer-for-st/


Saturday, November 12, 2011

arduino LCD Display. Tamil characters

Tamil in seven segment display on my 16x2 LCD panel... with the counter..

Thatz my name in tamil. followed by tamil arduino... cool isn't it...


Sorry for the blurred images.. this is the best i could manage with my mobile.

I have been experimenting with my Arduino for a while now... did this for fun before having to read a thermo couple output and those messy signal condition circuits driving me crazy.... couldn't afford those costly ones though... will see about that....

And this is a nice pic of my arduino with ATMega 32 Sitting atop...

Saturday, June 25, 2011

Solving the 4x4x4 Cube - The Rubik Revenge - New Obsession

Solving the Rubik Revenge has become a new obsession. Thanks to Murali for importing one for me (For free ofcourse :) )  

While I must admit that I still am trying to perfect my skills and that i could only accidentally arrive at the solution after trying different combinations for atleast half-an-hour, its really a wonderful and exciting step ahead much more that one could get solving a beginners 3x3x3.

I had taught many of my pals to use an easier algorithm based on patterns and orientations. I would soon post  my very own algorithm for solving a 3x3x3 aka algo-de-chuppandi. It feels really weary to prepare a documentation of sorts. I approach the given scrambled cube in the form of a 3cube matrix. starting from orienting to transpose layer-via-layer. This way one could get to the solution quite quickly. However it would seem all very complex with lots of moves. 

Now Rubik revenge is an entirely different game altogether. I kinda vaguely remembered I had read somewhere a professor I Ching had similar structure at hand when he had to transpose DNA segments when arranged in the form of a three dimensional matrix. In cond-mat/0204078, too they've tried to re-orgenize the cubes in a spacial nodes with particular application to binary sequences of length six of the general concept of sequence-space, first introduced in coding theory by Hamming. 
a six-dimensional hypercube

It also makes us wonder how the nature points us ways of solving things that could be far complex to comprehend by a human mind..

Well sorry for yet another boring subject guyz. If you sure are not able to catch what i was just balbberring just wait for my next video and documentation on solving a hyper cube of any size. 

Now for the record thatz me with my cube... intolerable ain't it... :)





And thatz how i keep my desk... :)