October 24th, 2009 Alex Posted in electronics, media, video Comments Off
Another option would be to use an Home Theater PC (HTPC), more expensive but also more versatile.
http://www.linuxtech.net/features/best_linux_htpc_motherboards.html has some good tips for building your own.
August 19th, 2009 Alex Posted in electronics, internet, linux Comments Off
Using Digi Watchport/H USB Serial Humidity/Temperature Sensor in Linux
Ubuntu 9.04 has everything you need except for minicom. So all I had to do was to:
dmesg should get you the following output:
usb 2-9: new full speed USB device using ohci_hcd and address 50
usb 2-9: configuration #1 chosen from 1 choice
io_ti 2-9:1.0: Edgeport TI 1 port adapter converter detected
usb 2-9: Edgeport TI 1 port adapter converter now attached to ttyUSB0
sudo apt-get install minicom~$ minicom -s
Change the Serial Device to /dev/ttyUSB0
Change the Bps/Par/Bits field to 9600 8N1, (9600 baud, 8 bits, no parity, 1 stop bit). These are the default settings used by the Linux kernel; they can, if necessary, be overridden from the kernel command line by adding extra parameters to the console= option. See kernel-parameters.txt and serial-console.txt.
Turn off both Hardware Flow Control and Software Flow Control.
In the Modem and dialing menu, remove the Init string and Reset string completely if required.
| Command | Description | Return Value |
| ?<CR> | Tells about the command set available for this Watchport | as described in this section |
| I<CR> | Tells what kind of Watchport is connected. | Watchport/H<CR> |
| H<CR> | Gives the percentage relative humidity. | 38%<CR> |
| T<CR> | Gives temperature in Celsius. | +22.2500C<CR> |
| TC<CR> | Also gives temperature in Celsius. | +22.2500C<CR> |
| TF<CR> | Gives temperature in Fahrenheit. | +72.0000F<CR> |
| TF+<CR> | Repeats the TF command every 3-4 seconds until the next keystroke. Appending + also works with the TC and H commands | +72.0000F<CR> |
| L4<CR> | Adjusts the slew rate of the data line. When āLā is followed by a numeric value, 1 through 8, Watchport responds with OK. Other values return Invalid Command. The default setting is 4. Adjust the parameter until the data transmission becomes error-free. The setting remains in effect until the Watchport is power-cycled. | OK |
Now all I need is a perl script to automate the posting of these values to twitter?
August 11th, 2009 Alex Posted in electronics, hardware Comments Off
Here is a nice hardware chart:
Here is a larger version. If this link is down, try http://www.google.com/search?q=Computer_hardware_poster_1_7_by_Sonic840
May 13th, 2009 Alex Posted in diy, electronics Comments Off
My first attempt at using the Arduino (Duemilnove). This sketch is based on this and that but mine uses 2 LEDs, one for the sensor and one for the feedback. And instead of getting bright when more ambient light is present, it turns OFF if ambient light is bright, stays ON in the dark and blinks if it’s in between.
//
// This example shows one way of using an LED as a light sensor.
// You will need to wire up your components as such:
//LED #1:
// + digital2 (N side)
// |
// <
// > 100 ohm resistor
// <
// |
// |
// -----
// / \ LED #1, 5mm, clear plastic is good (or translucent green lense)
// -----
// |
// |
// + digital3 (P side)
//
//////////////////////////////////
//LED #2 (only required if you don't have the on-board LED on pin 13):
// + digital13 (P side)
// |
// |
// -----
// / \ LED #2
// -----
// |
// |
// + Ground
//
// What we are going to do is apply a positive voltage at digital2 and
// a low voltage at digital3. This is backwards for the LED, current will
// not flow and light will not come out, but we will charge up the
// capacitance of the LED junction and the Arduino pin.
//
// Then we are going to disconnect the output drivers from digital2 and
// count how long it takes the stored charge to bleed off through the
// the LED. The brighter the light, the faster it will bleed away to
// digital3.
//
// Then just to be perverse we will display the brightness back on the
// same LED by turning it on for a millisecond. This happens more often
// with brighter lighting, so the LED is dim in a dim room and brighter
// in a bright room. Quite nice.
//
//
#define LED1_N_SIDE 2 // original code uses pin 2
#define LED1_P_SIDE 3 // original code uses pin 3
#define LED2 13 // LED 2 is on-board or external on pin 13 and ground
//
// -1 = very dark ; 1 = very bright
int extreme = 0;
//
void setup()
{
pinMode(LED1_N_SIDE, OUTPUT); // N side is output or input but starts w/ output
pinMode(LED1_P_SIDE, OUTPUT); // P side is alway output pin (drive low or high)
pinMode(LED2, OUTPUT);
}
//
void loop()
{
unsigned int waitDischarge, extenLimit;
//
// Apply reverse voltage, charge up the pin and led capacitance
digitalWrite(LED1_N_SIDE,HIGH);
digitalWrite(LED1_P_SIDE,LOW);
delay(30);
//
// Isolate the pin 2 end of the diode
pinMode(LED1_N_SIDE,INPUT);
digitalWrite(LED1_N_SIDE,LOW); // turn off internal pull-up resistor
//
// Turn LED on if ambient light is very dark or medium
if (extreme <= 0) {
digitalWrite(LED2,HIGH);
}
//
// Count how long it takes the diode to bleed back down to a logic zero
for ( waitDischarge = 0; waitDischarge < 65534; waitDischarge++) {
if ( digitalRead(LED1_N_SIDE)==0) {
// very dark (you might need to sligthly change this number depending
// on the color of the lense of LED #1 for example)
if ( waitDischarge > 6 ) extreme = -1;
// very bright (you might need to sligthly change this number depending
// on the color of the lense of LED #1 for example)
else if ( waitDischarge < 3 ) extreme = 1;
else extreme = 0;
break;
}
delay(30); // to avoid going above 65534
}
//
// Turn LED off if ambient light is very bright or medium
if (extreme >= 0) digitalWrite(LED2,LOW);
delay(200);
}