Sunday, 11 May 2014

Health monitoring system


This project is my contribution to a larger project called the IKRobo wheelchair research project funded by the research division at Durham College. The aim of this project is to enlighten the community about the difficulties of wheelchair use, direction of possible and probable solutions to these difficulties, and a working prototype of these solutions in place.The project is currently finishing its first phase of prototyping and is pursuing additional funding.The IKRobo has three main distinctions from the regular consumer wheelchair. 
  1. Multiple steering choices; Joystick, Eye tracking, Object avoidance, Voice command
  2. Three body positions; Sitting, Walker(standing), Bed(sleeping)
  3. Electronic bio-medical health monitoring 
More information on the IKRobo can be found here at http://ictbits.com/ikrobo/ 

My contribution has been the electronic bio-medical health monitoring system. The requirements were to sense seven different medical signals, data-log them to the internet, and notify a caregiver if any signal was not within range.

The Arduino Yun was chosen for its ease of use and integration with the eHealth sensor shield from cooking hacks. Xively.com and Plot.ly were used to view and log the data to the internet. Nexmo was used to make the phone call to the caregiver


The data that is collected comes from a variety of non-invasive bio-medical sensors including: pulse rate, blood oxygen percent, blood pressure, electrocardiogram, breathing rate, weight, and temperature. These sensors are monitored by a microcontroller that sends the data via WiFi to the cloud storage. If this data falls out of range, phone calls are automatically sent to the medical adviser or caregiver.

Monday, 21 April 2014

Updates of projects in progress.

No posts lately :( I have been very busy with college. Well Exams are almost finished! So I finally have some time to do some updating. 
I have been recently involved with a project at the college called the IKRobo. This project is a smart, self guided wheelchair for the mild to critically handicapped patient who can be remotely monitored of all medical information, and is informed if any changes occur. The area of the project I am involved in in the monitoring, logging alerting of medical information by the use of electronic medical sensors. The hardware being used is the Arduino Yun, Cooking hacks E-health kit, Bluetooth adapter, Standard bathroom scale, and custom PCB's. The data is being collected by the YUN and stored on the internet cloud via Xively.com website, ECG data is displayed in "real"time via Plot.ly website. This data can be viewed locally on a tablet with a custom app. Additionally if the patient's vital signs fell below normal, a phone call can be sent to the patient's caregiver.
I have also started a few other projects; a portable BeagleBone LapTablet, a camera slide, CNC machine, small foundry and rebuilding my reprap extruder.



Thursday, 13 March 2014

Raspberry Pi Development board

Although not as popular as the Arduino line-up, the Raspberry Pi is much more capable in other factors. The Raspberry Pi starts where the arduino left off, while the arduino is great at inputs and outputs and simple programming, the Raspberry Pi is great at internet integration. The Raspberry PI has a very low cost, that is built for youth and beginners to programming. The Raspberry Pi is a very capable device with a reliable processor
This $35 microcomputer development board was built for a purpose. That purpose is getting people interested in programming, particularly youth. The issue is that youth, teens and even college graduates all seem to think that computers can do nothing more than check e-mail, go on the internet, and write word documents. Programming has been forgotten, this is a problem. The Raspberry Pi fixes this problem by using easy to use programming software(Scratch), an easy to use programming language(Python), and very low cost.
Scratch is a simple program that uses pieces of code that can be joined together like a puzzle, this makes it easy for anyone to learn. The pieces of code are from the python programming language, which is the easyiest to learn. Python has become the easiest due to the lack of programming grammer needed. This ease of use makes programming the Raspberry Pi very fun for beginners.
The Raspberry Pi is a  small device, measuring about the size of a credit card. This small size does not hinder performance, with being able to perform any function that a PC can do. The Raspberry PI features two USB ports (for a mouse and keyboard), a Ethernet port(for internet), A micro-USB(for powering it), SD card reader(for storage), two camera inputs, a HDMI output(for new TVs), and analog output(for older TVs). The last feature is what sets it apart from a tablet or laptop, it is the GPIO pins. GPIO stands for general purpose input output, these pins are used for hooking up real world inputs and outputs such as buttons, lights and sensors.
The chip that the Raspberry Pi uses is a SOC(system on a chip) called the BCM2835. The BCM2835 is a dual-core high definition 1080p embedded multimedia applications processor. This means that is is really good in media playback, imaging, streaming media, graphics, 3D gaming, and even camcorder functions. The chip is manufactured by Broadcom, and is mostly used in various cell phones and tablets, although it is also found in cameras and camcorders. It is also very reliable and has a low cost because of its use in cell phones.
The Raspberry PI can be used for many projects that involve internet access such as; cloud based datalogging of sensor values, building your own personal server to host a webpage, or even building a home automation network. The Raspberry PI has also been used for other various projects such as super-computer projects where sixty-four Raspberry Pi's are attached together.
The Raspberry Pi is a good starting point for anyone who wants to get involved with internet projects and programming. The low cost makes it appeal to younger generations who do not have alot of money. The simple and easy-to-use programming language is great for beginners and youth.

TI Launchpad Development Boards

This Series of development boards is from Texas Instruments and is called the Launchpad. The Launchpad comes in four different series with 2-3 boards per series. Each of the boards are well priced when compared to other boards from other manufactures. These range in price from $9.99 to $29.99. Each board can be programmed with multiple different software packages. The MSP430, C2000 boards can be programmed with software very similar to the Arduino IDE, this interface is called Energia.
The four different series of Launchpads are called the MSP430, C2000, Tiva C and Hercules. Each series is named after the processor chip series contained on the board. The MSP430 series is a low power option that is designed for portable measurement applications. The C2000 series is designed for real-time motor control applications and advanced power circuits. The Tiva C series is targeted for industrial applications that use precision timed devices. The Hercules series is designed for automotive, industial and medical safety critical systems.

MSP430 Launchpad

The MSP430 has three boards in its family, the MSP-EXP430G2, MSP-EXP430F5529LP, and the MSP-BNDL-FR5969LCD. The MSP430 series is a low power option that is designed for portable measurement applications
The more expensive of the two development boards is the MSP430FR5969 Launchpad costing $29.99. Making it costing the most of the three MP430 boards. The development board 4 has a 20-pin GPIO interface, on-board buttons, LEDs and a Sharp memory LCD for quick building of simple user interfaces. The processor is the MSP430FR5969 device that is a RISC-based, 16-bit mixed-signal processor for ultra low power consumption systems. TI claims it is the lowest power consumption in the world of all MCU's. The MSP430FR5969 features: 16MHZ CPU speed, 64KB FRAM, 2KB RAM, LCD driver, RTC, 4 SPI, 2 UART, 2 I2C, PWM, 5 16-bit Timers, 12-bit ADC, and many more features found on the datasheet.

C2000 Launchpad

The C2000 has two boards in its family, both have very similar specifications. The LAUNCHXL-F28027 and the LAUNCHXL-F28027F, the two boards are both designed for real-time motor control applications and advanced power circuits.
The more feature packed of the two development boards is the TM4C1294XL Launchpad costing $17.00. The devopment board has two 40-pin interfaces allowing additon of displays, sensors, and wireless modules. The processor is the F28027F device that is a high efficiency 32-bit CPU running up to 60MHz. The features include; 22 individually programable multiplexed GPIO pins, low power consumption, 128KB RAM, 1 SPI, 1 UART, 1 I2C, 4 PWM, ADC, and many more features found on the datasheet.

Tiva C Launchpad

The Tiva C has two boards in its family, both have very similar specifications. The EK-TM4C123GXL and EK-TM4C129XL integrate a large number of communication features to enable highly connected devices that allow real-time control.
The more expensive of the two development boards is the EK-TM4C1294XL at $19.99. The board features out of the box internet connectivity by using the on-board ethernet port. The board features; buttons, LEDS, two 40 pin GPIO connectors, 1MB flash, Two 12 bit ADCs, General purpose timers, and an on-board in-circuit debug interface(used for programming). The processor is the TM4C129NCPDT device that is a ARM Cortex-M4F processor running at 120-Mhz providing high performance and advanced integration. The features are; 256KB SRAM, 6KB EEPROM, 8 UART, 4 quad SSI, 10 I2C, 2 CAN controllers, Ethernet, USB Host/Device, 8 timers, 8 PWM, and many more features found on the datasheet.

Hercules Launchpad

The Hercules has two boards it its family, both have very similar specifications. The LAUNCHXL-TMS57004 is built for transportation applications, while the LAUNCHXL-RM42 is for industrial and medical applications. Both boards are for safety critical applications.
The more safety critical is the LAUNCHXL-RM42 costing $19.99. This development board features; A general purpose switch, two LEDs, a 40-pin GPIO connector, on-board in-circuit debug interface. The processor is the RM42L432 device, it is a high-performance microcontroller designed for safety critical systems. The safety architecture is designed using dual 32-bit ARM Cortex-R4 CPU that can run up to 100 MHz in lockstep. Lockstep runs the same code on two processors at the same time in parallel. This redundancy allows error detection and correction by comparing the outputs of the two processors. The RM42L432 features are impressive featuring: 384KB Flash, 32kb RAM, 16KB EEPROM, 45 GPIO pins, 2 CAN controllers, Multi-buffered SPI, UART, PWM, 16 channel ADC, 19 programmable high-end timers, and many more features that can be found on the datasheet.

Wednesday, 12 March 2014

MSP430FR5969 LaunchPad Evaluation Kit MSP-BNDL-FR5969LCD - MSP430FR5969 LaunchPad Evaluation Kit with Sharp ® Memory LCD BoosterPack Bundle

MSP430FR5969 LaunchPad Evaluation Kit with Sharp ® Memory LCD BoosterPack Bundle

This development board is the MSP430FR5969 from Texas Instruments. This board has a terrible name, with good information hidden inside. The MSP430 is a from a line of 16 bit microcontroller chips, this chips code FR5969 comes from the FRAM series. The development board/Evaluation kit has on-board buttons, LEDs and a Sharp memory LCD for quick building of simple user interfaces. The board can be programmed with a interface very similar to the Arduino IDE, this interface is called Energia. The best feature of this board is the price, at only $29.99 this thing looks like a good deal.

The MSP430 is a RISC-based, mixed-signal processor for ultra low power consumption systems.TI claims it is the lowest power consumption in the world of all MCU's. The MSP430FR5969 features are impressive featuring: 16MHZ CPU speed, 40 GPIO max low-power, LCD driver RTC, SPI, UART, PWM and many more features including 64KBFRAM. FRAM stands for ferroelectric random access memory, this technology combines the speed, ultra-low power, endurance and flexibility of SRAM with the stability and reliability of Flash. this combination provides low power and easy to use microcontroller architecture.

Sunday, 2 February 2014

The World of the Internet of Things - Another Post in Progress

The world is becoming an internet of things and devices. Already today most people carry around a GPS device, accelerometer, temperature sensor, noise detector, colour and image detector, output screen, speaker, NFD communication, WiFi, Bluetooth and a touch screen. All these come packed in a nice little hand held device. Obliviously this is the modern day smart phone, with so many features, this is the starting point for the internet of things.

Below is a list of possible "things" to be sensed. Not all of them are viable as of today, mostly because of the high cost per sensor, they are more of in the near future option. An example of this is the GPS tracking of every parcel or package. It would not be viable to stick a $40 sensor on a $10 package. For the sensor is worth more than the package. If the package cost, let's say $400, I may want to use this option!

The List 
Personal - Blood Pressure, Blood Oxygen, Pulse Rate, ECG, Temperature, Body and limb position, Pedometer, GPS Position, Breathing rate, Sweating(GSR), Fall detection, Blood Sugar, UV radiation

Environment - Temperature, Humidity, Barometric Pressure, Light Intensity, Water conditions, Soil conditions, Wildlife tracking and health

Farm  - Crop growth, Soil conditions, Animal tracking and health, Moisture levels in plants, Sugar content eg. grapes, Hydroponics and green house conditions, Chlorophyll production.

Home  - Who's Home, Temperature, Humidity Light Intensity, Power consumption, Water consumption, Security, Grocery tracking

City - Exhaust fumes, Noise levels, Weather conditions, Traffic congestion, Transit bus GPS tracking

Automotive - Fuel use-age, Vehicle GPS tracking, automatic-diagnostics

Business - Real time GPS parcel tracking, Indoor air quality and conditions,

Factory - Emissions, Air quality, Energy and water consumption,


Hardware required to get on the internet.
Arduino UNO with WiFi shield
  • Shield occupies digital pins; 7,10, 11, 12, and 13. 
  • Communicates via SPI to the shield
Arduino UNO with CC3000 shield or module
  • Uses digital pins 3,5,10,11,12,and 13
  • Communicates via SPI to the shield or module
Arduino UNO with xbee
  • Uses digital pins; 0, and 1.
  • Communicates via serial to the xbee
Arduino YUN, onboard WiFi
  • All pins are available for use. 5V; 20 digital, 7PWM, 12 analog
  • Embedded Linux system pre-installed
Raspberry Pi with USB WiFi dongle
  • Not many GPIO pins available. 3.3V; 17 GPIO, no Analog
  • Can be used as a web server
  • Can run Linux, Android
  • Has A GPU, HDMI,  and old school analog TV out
BeagleBone Black with USB WiFi dongle
  • More GPIO than the Raspberry PI
  • Has a GPU, HDMI, and the easiest touch LCD configuration.
  • Pre-installed with Linux



Recording The Data
Data can be recorded and sent to a multiple of places on the internet.  Temboo is very useful to connect multiple services such as google sheets, Xively and mySQL. Temboo offers great code examples written in multiple languages, one of them being specificity for the Arduino YUN.
Cloud Data Logging Services
  • mySQL
  • Xively
  • Plot.ly
  • Google Drive
  • Nimbits
  • Carriots
  • Loggy
  • Amazon's DynamoDB


Displaying The Data
Traditional
  • Indicating lights, Sounds
  • Paper print-off
  • Telephone call
The Cell Phone
  • Android Apps
  • Apple Apps
Displays
  • Low Cost Screens - various models available can communicate serial, or SPI.
  • Touch Screens - various models available can communicate on serial, or plug in to hedders
  • HDMI Screens - Need to use a raspberry pi or Beaglebone black to do this.
Other Ways
  • Website
  • Text message
  • Twitter update
  • Facebook status






Saturday, 1 February 2014

Arduino YUN Development board

Arduino YUN
The Arduino YUN is one of the latest boards from Arduino, and is another development board that is leading the way for the internet of things. There is a a lot of hardware packed on this little Arduino footprint.

Hardware and Software
Their are two "sides" to this board the Arduino side and the Linux side, these two sides communicate with each other with SPI and Serial(UART).
Linux Side
The YUN comes loaded with a embedded sytsem of Linux called Linino, and is installed with a full version of Python 2.7. Linino runs on the Atheros AR9331 processor which also controls the WiFi, Ethernet, USB Host and the micro-SD card.
Arduino Side
The ATmega32u4 processor is also found on this board and can be programmed with the Arduino environment. The Atmega32u4 and the Atheros processor can communicate via SSH. Another impressive feature is that the Arduino side will run on the standard 5V, no need to use logic level converters here.

Getting Started
To get started, simply plug in the Arduino YUN to a USB power supply. Wait a few minutes and check your wireless connections, you should see that that Arduino will show up as a WiFi connection. This is good for local wireless programming, but we need it to connect to the internet.

  • Connect to your Yun via WiFi, this will take you off the internet.
  • Open a web browser and type in arduino.local , this will bring up the Arduino log in screen.
  • Type in the default password "arduino". 
  • Click advanced configuration panel. 
  • Under the network tab, click WiFi, here you should see your local WiFi network. 
  • Enter the necessary information and connect.
Note: if you forget your password hold down the WLAN button found on the board beside the full size USB.

Using Arduino IDE
Open the Arduino IDE and load the blink example found under the file menu under examples - basics - blink. Change your board settings to the YUN and the port to the Wifi connection. Upload the sketch to the Arduino board. If all has went well you should see a red LED blinking.


  • To do something a little more involved, we will load the Xively Client Sketch
  • Load the XivelyClient sketch found in the examples tab. 
  • Create a Xively account on their website 
  • Update the sketch with your credentials. 
  • Upload the sketch over the comm port. 
  • Open the serial monitor to initialize the sketch.
  • Check you Xively account for the data streams.


The reason for using the comm port and not the WiFi programming mode is that you will need to open up the serial monitor in order to start the sketch.

Using Linux
To make use of the linux system, you need to access the system via SSH. on windows this can be done using PUTTY. Enter in the following into PUTTY, replacing the IP
ssh root@172.16.1.190