Analog distance sensors – Arduino

Another very interesting component I will try to test out on a Arduino project :

Sharp GP2D12 and 2Y0A02 infrared rangers output a voltage proportionate to the distance of an object from the sensor. The GPD12 senses objects at a distance of 10-80cm, while the 2Y0A02 has twice the range. We’ve previously looked at the Sharp GP2Y0D02 digital proximity sensor. It only signals the presence of objects, while the GP2D12 and 2Y0A02 measure distance to them. If you’ve got a GP2YoD02, it might still be possible to tap the analog output. We’ll show you how use these sensors below. [From Parts: Analog distance sensors (Sharp GP2D12/2Y0A02)]

Running Ruby Programs on the Mac OS X Apache Web Server

And a reference to a article that shows you a very easy way to serve your first Ruby programs through your Apache webserver:

Running Ruby Programs on the Mac OS X Apache Web Server

The Mac OS X operating system includes a pre-configured Apache web server and also includes the libraries need to run Ruby. Thus, Ruby programs can be run without any configuration changes to the Apache configuration as long as the scripts are placed in the correct location and given the correct file permissions.

This guide assumes you are using OS X Leopard, although the steps should be the same or similar for earlier versions of OS X.

[From Running Ruby Programs on the Mac OS X Apache Web Server]

Running mod_rails on Leopard (OSX 10.5) | Ruby Zone

The following is a short excerpt from a article on how to install mod_rails – extremely useful

Running mod_rails on Leopard (OSX 10.5)
Submitted by danielwanja on Fri, 2008/07/04 – 5:56pm

1.gem install passenger

2.sudo passenger-install-apache2-module
The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:

view sourceprint?
1.LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-1.0.5/ext/apache2/
2.RailsSpawnServer /Library/Ruby/Gems/1.8/gems/passenger-1.0.5/bin/passenger-spawn-server
3.RailsRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

[From Running mod_rails on Leopard (OSX 10.5) | Ruby Zone]

I’m trying to learn Ruby On Rails

I have (this weekend) been busy trying to learn Ruby-on-Rails, or rather so far I’ve just been trying to learn the basics of Ruby.

And I must say I am truly enjoying the experience so far – especially as I have a fondness for object oriented languages, and especially ones that can be run both from the command-line and as a “proper” web language.

All I have managed to do so far is to read the output from my Arduinio in the garage, and parse this so I can read all the various inputs and outputs of the various sensors I have there.

Not bad.

Arduino – version 13 release

The core Ardunio development environment has been updated :

0013 – 2009.02.06

[documentation / examples]
* Adding examples for Parallax Ping Sensor and Memsic 2125 accelerometer.

[core / libraries]
* Adding support for printing floats to Print class (meaning that it works
in the Serial, Ethernet, and LiquidCrystal classes too). Includes two
decimal places.
* Added word, word(), bitRead(), bitWrite(), bitSet(), bitClear(), bit(),
lowByte(), and highByte(); see reference for details.
* Working around problem that caused PWM output on pins 5 and 6 to never go
to 0 (causing, for example, an LED to continue to glow faintly).
* Removing cast macros, since function-style casts are a feature of C++. This
should fix contributed libraries that broke in Arduino 0012.
* Modifying pulseIn() to wait for a transition to start timing (i.e. ignoring
any pulse that had already started when the function was called).
* Fixing bug in random() that limited the ranges of values generated. Thanks
to Mikal Hart.
* Modifying delay() to pause for at least the given number of milliseconds.
* Fixing bug in Ethernet library that interfered with use of pins 8 and 9.
* Originating each outgoing network connection from a different port (in the
Client class of the Ethernet library). Thanks to Paul and joquer.
* Updating ATmega168 bootloader to work with standard distributions of avrdude
(responding to signature requests made with the universal SPI command) and
correctly store EEPROM data. Thanks to ladyada.
* Adding support for the ATmega328. The upload speed is 57600 baud, so you
may need to edit boards.txt or reburn your bootloader if you bought an
ATmega328 w/ bootloader from adafruit or other supplier.

* Omitting unused functions from compiled sketches, reducing their size.
* Changing compilation process to allow for use of EEMEM directive (although
not yet uploading EEPROM data).

[From Arduino – ReleaseNotes ]

I2C audio volume potentiometer (DS1807)

Another interesting component ideal for a Arduino project :

The DS1807 contains two logarithmic digital potentiometers (pots) for audio volume adjustment. Each pot has 64 volume levels plus a mute setting. The volume level of each pot is set over a two-wire I2C serial interface. We’ll show you how to connect and interface the DS1807 below. [From Parts: I2C audio volume potentiometer (DS1807)]

Another well researched (not) story about teenagers and the Web

Another nonsense story about teenagers use of the Internet :

More than half of children surf the web unsupervised
While 29 per cent of teenage web users admitted they had been bullied online
Carrie-Ann Skinner PC Advisor

More than half of teenagers frequently surf the web without any supervision, according to a study from MSN, with almost a third admitting to being victims of online bullying.

The research into the online habits of 20,000 14-19 years olds in Europe revealed that 29 per cent of teenage web users admitted they had been bullied online.

“We were surprised that it’s over 50 per cent without any parental control,” said John Mangelaars, head of Microsoft’s consumer and online divisions in Europe.

“They [teens] still need help and guidance on how to tackle emerging issues such as online bullying,” added Mangelaars.

[From More than half of children surf the web unsupervised – Digital Lifestyle – Macworld UK]

I can just think about our own situation – The Student is 19 years old, and goes to university – does anyone really expect us to supervise his usage of the Internet on his laptop or his iPhone??? Does the journalist really believe that he needs guidance on tackling emerging issues so much that we have to “supervise” his usage of the Net?

I’m sorry – we stopped this when he was younger than 14 – so we’re probably bad parents.

Ardunio and temperature sensors with Ethernet

I now have set up a Arduino in the garage with 2 temperature sensors available through Ethernet.

– SHT series which senses both temperature and humidity

– DS1820 digital (onewire) temperature sensor

They are available from the link below – and via a PHP script on our main webserver the webserver on the Arduino is queried – and the extra processing is done in the PHP script.

The output looks like this :

Temperature: 10.0
Humidity: 69 %
Temperature sensor 2: 8.87

[From Untitled]

The 2 sensors are approximately 3 feet apart, and will have different temperatures.

The SHT series is soldered on to a Arduino shield (from nuelectronics) and it turned out this one gave a reading that was approximately 2 – 4 degrees wrong (due to the heat from the Arduino power supply etc) until i pointed a fan I had towards it. It is now quite accurate.

I will release the code to anyone that wants it – and on the website as soon as I can document it a bit more.