Webcams
I have had these camera's up for some time, and have had them online for some time, and then took them off again. This was mostly because I used my ASRock ION330HT to make it all work, and after I decided to no longer have it running 24/7, I had no computer to bring the images online.
Now I finally took the time to make it work again, this time with everything running over my QNAP TS-219P nas instead of the ASRock.
Check them out, you can find them in the top under "Webcams"
I have posted this in multiple categories because I am going to update this with more info about how it all works.
A new face!
This started out as my own little blog where I blogged about the random stuff I made.
Lately it have become more and more about Arduino, and during that I also managed to infect one of my friends, and he will now also be blogging here about the things he make and the things he discover.
Another Arduino timer
Another little project, mostly made to learn how to use TIP102 transistors.
The setup is controller an 250 kg electromagnet (500mA@12V), and using only one TIP102 to open and close, and one small 1A 12V switch mode power supply. The power supply is connected the the Arduino's connector for an external power source, and the magnet is then driven through the VIN pin.
I also added a small piezo from a computer to make it able to beep when the timer is started and stopped.
Everything is mounted on a protoshield 4 and looks very clean (both because there aren't many components, plus no extra supply wires for the load).
I also added a "Start timer" function, where the analog pin 5 is used to determine when the timer should start. The reason for the analog pin is so it can be used for the pressure pads too, and start when enough pressure is reached. The pin is pulled up by an 10k ohm resistor, and will then be pulled towards gnd by the switch, variable resistor, pressure pad, or what else it could be.
Version 1.0
This is with the TIP102 to switch the 12V output on and off, the piezo to give some audio signal, and a blue LED to show that the TIP102 is activated.
BLAH! Hit the blue wire with my soldering iron, but didn't burn through the isolation.
Version 1.1
This got the same as version 1.0, but here I added screw terminals for the wires, and also feeding the Arduino through the VIN port, as the on-board diode on the Arduino gave up when it had to both pull the relay and the little motor I added to the TIP120. The TIP120 is connected to the PIN6 (pwm) on the Arduino.
Fun with pressure pads
Not really sure where this can be used, maybe some kind of game?
The standTime is how long (in seconds) you will have to press or stand on the pads before the task is complete.
If you want to allow some short dropdowns of pressure, you can set that in the maxRest (also in seconds) and the low pressure will then be ignored for that amount of time, and the timer will then be reset if it is exceeded.
//Define the time with pressure
int days = 0;
int hours = 0;
int minutes = 0;
int seconds = 10;
//Program starting
unsigned long standTime; //Seconds to have enough pressure on both pads
unsigned long maxRest = 3; //Seconds the minimum pressure can be bypassed without resetting the timer
int minPressure = 880; //Minimum allowed pressure on both pads
//Analog
int leftPadPin = 0; //Left pressure pad
int rightPadPin = 1; //Right pressure pad
//Digital
int piezoPin = 2; //Where the piezo is connected to
int ledPin = 13; //Just for visualisation
int relayPin = 3;
//No further editing needed
long lastSit;
long lastRest;
void beep(int val)
{
digitalWrite(ledPin, HIGH);
for(int i=0; i < 500; i++)
{
digitalWrite(piezoPin, HIGH);
delayMicroseconds(val);
digitalWrite(piezoPin, LOW);
delayMicroseconds(val);
}
digitalWrite(ledPin, LOW);
}
void setup()
{
standTime = (seconds*1000) + ((minutes*1000)*60) + (((hours*1000)*60)*60) + ((((hours*1000)*60)*60)*24);
maxRest = maxRest*1000;
//Set pin modes
pinMode(piezoPin, OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(relayPin, OUTPUT);
//Turn magnet on
digitalWrite(relayPin, HIGH);
lastSit = millis();
lastRest = millis();
}
void loop()
{
if (analogRead(leftPadPin) <= minPressure || analogRead(rightPadPin) <= minPressure)
{
if (millis() - lastRest > maxRest && lastSit != 999999999)
{
//Bummer, timer just go reset
beep(100);
lastRest = millis();
lastSit = millis();
}
}
else
{
lastRest = millis();
if (millis() - lastSit > standTime && lastSit != 999999999)
{
lastSit = 999999999; //Yay! You made it, lets set it high so it won't keep beeping
//Switch magnet off
digitalWrite(relayPin, LOW);
for(int i=0; i < 4; i++)
{
beep(200);
delay(100);
}
}
}
}
Piezo
This was a fun little thing to try.
All it required was an old piezo from a computer case, an arduino and a few lines of code. This little code only makes a beep every second, where the pitch can be adjusted by changing "val = 130" up or down. Changing it up will result in a deeper noise because it defines the delay between high and low.
int piezoPin = 11;
void beep()
{
for(int i=0; i < 500; i++)
{
int val = 130;
digitalWrite(piezoPin, HIGH);
delayMicroseconds(val);
digitalWrite(piezoPin, LOW);
delayMicroseconds(val);
}
}
void setup()
{
pinMode(piezoPin, OUTPUT);
}
void loop()
{
beep();
delay(1000);
}
Fitness?!

WHAT? Fitness? HELL NO!!! ... that is what I would have said some years ago.
The fact however, is that it probably would be good for me, and after Chrisser asked if I wanted to start with her, it was a bit hard to say not. Wasn't easy to say yes either, but I did!
The next question is, how much will we actually do it? Hopefully we can pull each other out of the sofa and get our asses down there!
New maws!
After my old Logitech G5 mouse broke it's scroll wheel, and started randomly scroll, I decided to try a cordless mouse. The choice was a Logitech MX1100R, but it only lasted for about a year, plus it was very inaccurate and had a slow response time. After it started act up, I went back to my old wired G5 and stayed with that for over a year, with the scroll wheel broken. Finally it was driving me enough crazy to buy a new, and this time it was a Logitech MX Revolution.
Logitech G5
Good precise all around mouse, but couldn't survive to meet a wall without injury.
Logitech MX1100R
Good mouse for office use, not good for games and broke after only one year. (Left and right click worked opposite randomly, sometimes double clicked when a normal click was made, and sometimes it was holding the left button down without it being held down)
Logitech MX Revolution
Haven't had it for long yet, but it seems like a very good and robust mouse. The weight is right, the buttons are at the right places and the form is perfect. Another really nice thing is the intelligent scroll wheel, where it changes to free wheel depending on the speed defined in the driver. A bad thing though, is the charger for it. There are no connector on the wire, and both the station and power supply are too big to fit through a normal standard cable hole in a desk.
Cat's mouse
I am sure it was with all good intension's, but it just couldn't be used for this...
CURL with image
This is the snippet I use for showing images from internally on my network. The idea is that only the web server is exposed to the internet, so it isn't possible to directly change anything on the picture server.
<?php
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,"http://10.0.0.50:8080/camera.jpg");
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
if (empty($buffer))
{
print "Picture unavalible";
}
else
{
header('Content-Type: image/jpeg');
print $buffer;
}
?>
My computer
Decided to clean my computer, and it was needed!
The specs is:
Processor
- Intel i7 920
Mainboard
- Asus P6T Deluxe
Memory
- Patriot 6GB (the version with Micron chips)
Graphics card
- ATI HD4870 1GB
Hard drives
- System: 2x 250GB Samsung F1 - Raid 0
- Backup 1: 1x 1TB Samsung F1
- Backup 2: 1x 750GB Samsung F1
Power supply
- Enermax Galaxy EGA1000EWL (1000W)
Case
- Coolermaster Cosmos S







