We continue to develop resources related to the COVID-19 pandemic. See COVID-19 initiatives on Appropedia for more information.
|By Michigan Tech's Open Sustainability Technology Lab.
Wanted: Students to make a distributed future with solar-powered open-source 3-D printing.
Spectruino is an Arduino Spectrometer to measure light intensity vs. wavelength. Internally, this is achieved through a combination of diffraction grating with linear CCD camera and custom firmware. All technical specs here: http://myspectral.com/#technical
We are beta testing for them.
- 1 Setup
- 2 Calibration
- 3 Serial port UART RS232 Communication Protocol description
- 4 Setting new exposure time of the CCD sensor in Spectruino:
- 5 Calibration text
- Install Ardunino Nano Drivers: http://arduino.cc/it/Guide/Windows#toc4
- FTDI Drivers for your OS can be found on: http://www.ftdichip.com/Drivers/VCP.htm
Installation Instructions for mySight software Analyzer
- download from https://github.com/methoxid/mySight (Updated 30. July 2012)
- run the software in a subfolder, application.windows32/mySight.exe
- Copy and paste the file "CFG-spectruino-calibration.txt" into the main folder of mySight application.
- If you use Processing source file, paste it into the /mySight/ folder and run the sketch.
- The file contains calibration parameters and the serial number of your device.
- You should now see wavelength [nm] in the main graph window of the mySight application.
- If you experience any trouble, please install Processing language from http://processing.org/download/ and ping Spectruino on email if you need help.
- Note: constantly updating the software on github, please check back soon.
- open and edit mySight/mySight.pde
Software performs the following:
- open serial ports, find Spectruino
- read-in stream of bytes from virtual serial port over USB cable
- split the incoming byte stream into a byte array of length 501, check if the HEADER bytes are present and contain the correct size of the array "501" and "501"
- construct Spectrum class from byte array
- plot Spectrum
- wait for keypress 1, 2, 3, ..... 0 if numeric key pressed, send command to Spectruino: "Set exposure time (N)" where N is encoded in software
- in Spectruino, when SetExposureTime(N) is encountered, an interrupt is triggered, and immediately confirmation characters are sent back, even in the middle of data stream transmission.
- pressing the key "space" will display readings of wavelength intensity - see code for more information
- calibration file is read-in at the beginning, which converts x-axis "Pixels" into "wavelength [nm]", file must be present in the folder where the executable resides.
- mouse click on the graph to save a PNG image
Serial port UART RS232 Communication Protocol description
- Plug-in Spectruino into a free USB port
- open serial port (e.g. COM4 on Windows) with your programming language (we recommend Processing)
- serial byte array as integer values from 0..255 is sent from Spectruino to PC: [pixel1 value] [pixel2 value] ... [pixel501 value], char(A), char(x), 0x01, 0xF5, char(B), 0x01, 0xF5, char(c), char(y)
- new measurement on Spectruino takes place, CCD sensor is being exposed to light
- step 3 is repeated
- if incoming characters from PC to Spectruino are received, an interrupt is generated
Setting new exposure time of the CCD sensor in Spectruino:
Function setExposureTime(N) is called if you send the following 2 characters over the serial port: char(#) N where N is any hexadecimal byte from 0x01 to 0xFF
- Spectruino v1.0 beta TEST device serial# 013 20120921 a=slope [nm/px], b=intercept [px] y=a*x+b