There are several times I needed to present stuff on the desktop. Also working internationally it was hard to present live at four in the morning. I love my sleep :)

So I looked for desktop recording. There has to be something so I can present my stuff and email it or post it online. Over time I have came across a couple of products and would like to share what I know.

Wink - This has become my favorite screen capture software. It works in a weird way by taking many screen shots. This allows you to make edits and also add stuff like captions or notes/call outs. Then Wink will compile all the pictures into a video format of your choice. I was really surprised on how well it works. Also exports so you can embed video into in your web pages. Works for Windows and Linux which is a big plus for me. Also a free download.

Camstudio -This is a open source Windows recorder. Looking through it seems this was the original code Camtasia Studio was built upon. You can see some strong similarities. I have used it and it works well. One thing Camtasia Studio does that Camstudio doesn’t is the ability to edit your recording and add callouts. You can do captions but they can sometimes be tricky. Don’t forget to install the Lossless Codec for good file compression.

Camtasia Studio - This is sort of the nicest software to record, edit, and produce . It’s super good stuff but comes with quite a hefty price. I have used the demo and wanted to purchase a license but don’t have that kind of money laying around.

So for a conclusion, if this needs one, is I like Wink. It’s a free tool that can be used on both  Windows and Linux which is a big plus for me.

Also I am still working on the air freshener but trying to design a way to use common parts because I don’t have a setup to machine custom parts.

I know it’s been a while since I have blogged, haven’t really came across anything exciting to tell you all. :)

Anyways there is a command that I always forget that help me with delete all folders and files in a directory. Such as a jump drive…lame example but you get the idea.

rm * -r -f

I will break it down.

1. The “rm” is the remove command

2. The “*” means delete all, not including directories I believe.

3. The “-r” means recursive, to go into all folders in folders

4. The “-f” is to force it to delete other wise it will ask you if you want to delete every file, file my file (can be slow)

Be careful where you use this command. It works fast and without asking questions.

Note: Dominic pointed out a good question that I completely over looked. What about hidden files? Well after looking here I found a special spot for this.

Note to handle hidden files: hidden files are deleted only when they explicitly named (rm .file, rm .*). The only case when hidden files are deleted is when we ask rm to delete a complete directory with the -r option (rm -r directory).

So in short it’s just easier to delete the folder and recreate it. Thanks Dominic for pointing that out!

I have tinked with Linux here and there but needed to “expand my horizons” lol. So I do what I always do with any OS, get the server editions and abuse them. I poked around and looked at a couple distros but Ubuntu come on top because of the big selection of packages via aptitude.

So I downloaded the iso, burned it, and poped in the CD tray. The installation came up and it was easy as pie. Then during the process it had the selection of configuring different types of systems, for me I selected LAMP + Openssh. So in a matter of about 15 minutes my server was up and running. Did the old point a browser to the server IP and apache was working from the beginning. How cool is that? I have setup LAMP without the “L” on a windows server before and it was about two hours of frustration. Even longer if you want to use IIS instead of apache.

Well my server was an old dell desktop that now doesn’t have anything hooked up to it(moitor, keyboard, mouse, etc..). So I started digging around and found SSH. By default SSH was already setup on the Ubuntu server so I issued a connect command.

ssh ipaddress

Was prompted for the password and bam I was in. At this point I was giddy. No extra installs or config, bam was in just like that. I messed around a few different things like scp and running x windows through ssh.

On my mandriva I had KDE so I wanted to play with gnome (see what all the talk was about) which was installed on the Ubuntu server. Should I use ttightvncserver or something else? Nope found another cool command. I found it here.

1. You need to switch to another terminal. (Ctrl+Alt+F1).
2. Log in and issue

xinit -e ssh -XCT ipaddress gmome-session –:1

3. You should be automatically forwarded to another terminal, if not do Ctrl+Alt+F8
4. Enter password and the gnome session will start up.

(if you want to go back to your original X terminal issue Ctrl+Alt+F7)

Once again in another giddy state!

Well now that finals are done with I can get back to blogging and working on my pet projects.

I blogged earlier about my first robotic project: the air freshener. After some ebay action (win some, lose some) I finally got a servo for about 5 dollars. It’s a fairly simple robot so the servo was the only thing I needed.

Servo

I did a little wiring and since I am such a newbie looked had to get a little help know which wires were what. Society Of Robots is a good resource for newbies like me :)

So after wiring to the Arduino some programming needed to be dealt with. I found some servo code here. Great code with a bunch of comments. Perfect for me. Whalala copy, paste, and uploaded to the Arduino. To talk to the Arduino I used the screen to connect via USB.

screen /dev/ttyUSB0 9600

At first it didn’t work. So I had to tweak the original code to disregard the left and right arrow keys and just used “u” and “d” to increment/decrement the pulse width sent to the server. Or to change to angle of the servo.

// Adjust these values for your servo and setup, if necessary
int servoPin = 6; // control pin for servo motor
int minPulse = 540; // minimum servo position
int maxPulse = 2370; // maximum servo position
int turnRate = 100; // servo turn rate increment (larger value, faster rate)
int refreshTime = 20; // time (ms) between pulses (50Hz)

// The Arduino will calculate these values for you
int centerServo; // center servo position
int pulseWidth; // servo pulse width
int moveServo; // raw user input
long lastPulse = 0; // recorded time (ms) of the last pulse

int intTest;

void setup() {
pinMode(servoPin, OUTPUT); // Set servo pin as an output pin
centerServo = maxPulse - ((maxPulse - minPulse)/2);
pulseWidth = centerServo; // Give the servo a starting point (or it floats)
Serial.begin(9600);
Serial.println(” Arduino Serial Servo Control”);
Serial.println(”Press to move, spacebar to center”);
Serial.println();
}

void loop()
{
// wait for serial input
if (Serial.available() > 0)
{
// read the incoming byte:
moveServo = Serial.read();

if(moveServo == ‘u’)
{
pulseWidth = pulseWidth + 10;
Serial.println(”Increasing Width”);
Serial.println(pulseWidth);
}

if(moveServo == ‘d’)
{
pulseWidth = pulseWidth - 10;
Serial.println(”Decreasing Width”);
Serial.println(pulseWidth);
}

if(pulseWidth < minPulse)
{
pulseWidth = minPulse;
}
if(pulseWidth > maxPulse)
{
pulseWidth = maxPulse;
}

}
// pulse the servo every 20 ms (refreshTime) with current pulseWidth
// this will hold the servo’s position if unchanged, or move it if changed
if (millis() - lastPulse >= refreshTime)
{
digitalWrite(servoPin, HIGH); // start the pulse
delayMicroseconds(pulseWidth); // pulse width
digitalWrite(servoPin, LOW); // stop the pulse
lastPulse = millis(); // save the time of the last pulse
}
}

This also was a good way to find out the min and max pulse of the servo I got. Oh also side note if anyone happens to buy a AE A1903 servo the above settings are perfect.

Hi All,

Well once again I have been looking for a program that will allow me to draw and save my schematics on Linux. There is a couple of different solutions out there but one that did catch my attention is Quite Universal Circuit Simulator(QUCS). So I downloaded and compiled a it seems to work great. I will be the first to admit I am not a expert on circuits but in a couple of minutes I “think” I drew a simple voltage divider.

The QUCS project seems to be very alive and still producing updates. It is not yet complete so still in “beta” but so far my experience with compiling and using have been great.

QUCS Voltage Divider

Well I have decided what my first robot it going to be. I know after I tell you my idea there might be a good chance you will be laughing. Keep in mind I wanted my first robot to be simple. It will let me know get my hands dirty with a little bit of micro controller programming (as shown earlier with python) and dc electronics.

So without further adu my next robot will be a air freshener.

Simple air freshener

Yup you read it right a simple air freshener. Basically I will take a can of Axe or something similar and have one motor to press the spray valve for a second or two then release. At first I will have it set up for every 30 minutes or something.

The next version after that will have a button to change the time modes, 10, 15, 30, 60 minutes. Depending how comfortable I am I might throw in a LCD to tell the time remaining. So yup there is my idea. It’s sort of sad isn’t it?

Well shortly I will be releasing some blueprint drawings, circuit diagrams, and pictures (once I find or buy a digital camera) to share and show my progress.

Wish me luck!

I just came across a cool piece of software and wanted to share. I have a Windows Mobile 6 phone. There is a feature called Internet Sharing Connection (ISC). With XP or Vista you can plug in the phone and fire up ICS and a new network connection will be connected and you have internet via your cell. It comes in handy time to time.

Well if you run Linux your beat or as far as I can tell. The little utility I found is called WMWifiRouter. It’s a little utility that will take the wireless connection and the cellular data connection and bridge them making the cellphone a wireless internet access point. Then simply use your favorite distro and connect to the cell phone via wireless and just like that you have internet.

So far it has worked on my phone without a hitch and right now writing this on Mandriva via my cell phone in the middle of a park. Luckily I have broad band on my cell here so it’s really fast.

If anybody does click the above link they will find that it now has become a commercial product. It used to be shareware/freeware and there is still copies of it floating around the internet. If you can find a shareware version that works on your phone then cool. If not you might try and then buy the commercial version. The shareware didn’t work on my phone but the commercial version does. So in short the commercial version is more stable and more compatible with various phone.

Well since my laptop is dual boot (MS & Linux) there is some times when you want to be able to read and write on each other’s partitions. For my example is running VBox on Vista and now I want to run it under Linux or my Mandriva.

The distro I use is Mandriva and out of the box I was able to mount the NTFS partition used by Vista. Vista though doesn’t support Ext2 and Ext3 paritions used most the time by Linux as far as I have seen. Still a newbie…

Anyways I came across a cool little utility called Ext2 IFS For Windows. Once installed it gave me a couple of options to allow the driver the ability to write (I selected yes) and the ability to support large files just in case running a older kernel which will put the partition into read only (I selected yes, kernel 2.6).

Viola mounted and right now transferring a 15 gig Vbox image from NTFS to the Ext2 partition without a problem. Here is my proof :)

Ext2 Properties Dialog In Windows

Well my previous post was about the Arduino C code used to turn off and on a LED via transistor. Well even though I am tired as heck I was too excited to just go to sleep. So I dove into Python.

Well after obtaining a serial library called pySerial and downloading it here it was easy as pie. I even made the python script do a simple blink. Disclaimer: My first python script so be easy on me.

#import libraries
import serial
import time

#create serial object and open
ser = serial.Serial(port=’/dev/ttyUSB0′, baudrate=19200, bytesize=8, parity=’N', stopbits=1, timeout=None, xonxoff=0, rtscts=0)
ser.open()

#bool value ? maybe as integer
a = 0
#infinite loop, if a == 0 -> turn off LED, flush command,
#sleep 1 second, set a to 1, elif does the same thing but turns LED on
while 1 == 1:
if a == 0:
ser.write(”0″)
ser.flushOutput()
time.sleep(1)
a = 1
elif a ==1:
ser.write(”1″)
ser.flushOutput()
time.sleep(1)
a = 0

#if loop ever finishes of manual break, turn of LED, flush, and close serial
ser.write(”0″)
ser.flushOutput()
ser.close()
Well I think Python is growing on me so expect to see more of it on my blog.

Well I finally got had some free time on my hands so I decided to play with my Arduino :)

Well here is a simple sketch that reads the serial for a ‘0′ or ‘1′ and does something based on the input. For me it was to trip (if proper terminology) a transistor to turn on a LED. I will put a little motor instead of a LED once I can get my hands on one.

(I found a good example of Arduino Serial here. I adapted the code to fit my needs.)

char incomingByte; // for incoming serial data
int intdigitOut = 7;

void setup ()
{
beginSerial (19200);
pinMode(intdigitOut, OUTPUT);
digitalWrite (13, HIGH); //turn on debugging LED
}

// MAIN CODE
void loop ()
{
// send data only when you receive data:
if (Serial.available () > 0)
{
// read the incoming byte:
incomingByte = Serial.read ();

//turn of power to base pin on transistor = no led ground
//ASCII 48 = 0
if(incomingByte == 48)
{
digitalWrite(intdigitOut, LOW);
Serial.println(incomingByte, DEC);
}

//apply voltage to transistor = led ground available
//ASCII 49 = 1
if(incomingByte == 49)
{
digitalWrite(intdigitOut, HIGH);
Serial.println(incomingByte, DEC);
}
}

}