Conference presentation: Arduino-based Wireless Sensor Network

4 October 2012 2 comments

Last week, I presented an article on the development of an Arduino-based wireless sensor network implementation at the AMBIENT 2012 conference in Barcelona. The conference was organised by IARIA, a non-for-profit, non-government organization that aims to promote scientific and industrial interchanges between scientific, academic and industrial researchers.

The presentation and the article are available for download.

Abstract—The paper presents an Arduino-based wireless sensor network to monitor parking lots using a non-standard low-power energy-balanced system. The event-driven routing protocol follows the hierarchical clustering philosophy. Energy is saved by minimising the number of transmissions needed to forward information to the base station. The smart sensor platform is build using the popular Arduino development platform, Sharp IR distance sensors and nRF24 low-power radio modules. Our practical results show that this platform is easy to use, but not the most appropriate platform to develop low-power wireless sensor network applications.

Keywords: Wireless Sensor Network (WSN); Smart Parking Application; Clustering; Arduino; nRF24.

The source code will be available on Google Code in the near future.

Conference presentation on the development of Arduino based smart objects

I presented an article at the ECUMICT conference in Ghent.
ECUMICT is a two-days conference on the use of modern information and communication technologies, organised by the engineering department of KaHo St Lieven, Ghent.

The presentation and the article are available for download.

Abstract
The fields of embedded systems and networking are being merged, giving rise to the “Internet Of Things”, built with smart objects that allow people to interact with everyday objects and vice-versa. We developed a cube, equipped with an Arduino based development board, various sensors and an XBee wireless interface, which enables us to develop new methods of human computer interaction. The cube was tested as an input controller for several computer games. The software was released under an open source license. This system will be used to develop new sensor driven applications.

Kate/KDevelop syntax highlighting style for Arduino code

16 January 2012 Leave a comment

Kate, my favorite text/code editor has no native support for Arduino code syntax highlighting.

Because Arduino code is very similar to c++ code I made some adjustments to an existing C++0x Kate highlighting style by adding some Arduino specific settings and keywords.

The colors are loosely based on the original Arduino IDE syntax highlighting style.

Code available at: Google Code

The result can be seen in the screenshot:

Kate screenshot

Arduino Library for the SRF04 Ultrasonic Ranger

26 December 2011 2 comments

I started a Google code project to share an Arduino library for the SRF04 Ultrasonic Ranger (distance sensor).

Overview:

This project is a free initiative to create an Arduino library for the SRF04 Ultrasonic Ranger. The main goal is to provide a library that simplifies the usage of this particular sensor in Arduino projects.

Range: approx. 3 to 300 cm

How the sensor works:

  1. You apply a short 10uS pulse to the trigger input to start the ranging.
  2. The SRF04  sends out an 8 cycle burst of ultrasound at 40khz and raises its echo line high.
  3. It then listens for an echo, and as soon as it detects one it lowers the echo line again.
  4. The echo line is  a pulse whose width is proportional to the distance to the object.
  5. By timing the pulse it is possible to calculate the range.

Library usage:

  1. Download the source
  2. Place the DistanceSRF04 folder in your Arduino1.0+ “libraries” folder
  3. Open example sketch: “file”, “Examples”, “DistanceSRF04”, “Centimeter” (or “Inch” or “Time”)
  4. Connect echoPin to pin 2, trigPin to pin 3 (and connect Vcc and GND)
  5. Compile & upload code
  6. Sensor data should be arriving over the serial port

More info & download: http://code.google.com/p/srf04-library/

Arduino Library for the Sharp GP2Y0A21YK IR Distance sensor

20 December 2011 19 comments

I started a Google code project to share an Arduino library for the Sharp GP2Y0A21YK IR Distance sensor

Overview:
This project is a free initiative to create an Arduino library for the Sharp GP2Y0A21YK IR distance sensor. The main goal is to provide a library that simplifies the usage of this particular sensor in Arduino projects.

How the sensor works:

  1. A pulse of IR light is emitted by the emitter.
  2. This light travels out in the field of view and hits an object.
  3. The reflected light returns to the detector and creates a triangle between the point of reflection, the emitter, and the detector.
  4. The angles in this triangle vary based on the distance to the object.
  5. The receiver uses a precision lens to transmits the reflected light onto various portions of the enclosed linear CCD array based on the angle of the triangle described above.
  6. The CCD array can then determine what angle the reflected light came back at and therefore, it can calculate the distance to the object.

Library usage:

  1. Download the source
  2. Place the DistanceGP2Y0A21YK folder in your Arduino1.0+ “libraries” folder
  3. Open example sketch: “file”, “Examples”, “DistanceGP2Y0A21YK”, “Centimeter” (or “Voltage” or “Raw”)
  4. Connect the analog sensor to port A0 (and connect Vcc and GND)
  5. Compile & upload code
  6. Sensor data should be arriving over the serial port

More info & download: http://code.google.com/p/gp2y0a21yk-library/

Build script: course handouts from latex-beamer slides

4 December 2011 1 comment

As a lecturer, a part of my job consists of giving presentations using some kind of presentation software.

In the past, I uploaded a pdf file for each presentation to the  educational learing platform we use at our university. Typically 12+ files for one semester. Because some students prefer to print out the handouts, I provided a printer friendly version (8 slides per page), instantly doubling the number of files.

During the semester, I tend to adjust/tweak/update these files from time to time, making it dreadfull for me to update the files, and making it difficult for the student to ensure they have downloaded the last version of each file.

When I switched from OpenOffice.org to Latex beamer to prepare my presentations, I also decided to resolve this annoyance and add some extra features to my handouts.

This resulted in a build script.

What is it does:

  1. Build two pdf version for each lecture: presentation version and handout version (printer friendly colors, no slide transitions)
  2. Build a 8 slides per page (8pp) version starting from the handout version
  3. Create a nice handout document by joining all the 8pp files + include title page, introduction, table of contents
  4. Create a .zip archive file with all these documents

The end result is an updated .zip archive, with the last version of all the slides.  About once a week, I do a full build and upload this one file to our learning platform.

Sample commandline output:

$ ./build
Now processing: 0-hfdst0
Latex build succesfull
PDF 8pp build succesfull
Now processing: 7-hfdst7
Latex build succesfull
PDF 8pp build succesfull
Now processing: 8-hfdst8
Latex build succesfull
PDF 8pp build succesfull
Now joining all documents
Latex build succesfull
Build took 6 seconds.
done

Sample files:

(remove ‘.doc’ from the file extension, wordpress does not allow .zip/.sh)

Automated multiple choice exam grading

6 June 2011 4 comments

I wrote a little tool for automated multiple choice exam grading.

The idea:

  1. Students receive two sheets: one questions sheet and one answer sheet
  2. They indicate their correct answer by erasing the wrong answers (letters) on the answer sheet (see scan on the right)
  3. When all students have finished their exam, the answer sheets are batch-scanned and send to some email address.
  4. The server receives this email, starts processing the scans, calculates the grades and sends out a report to the lecturer

Read more…