Difference between revisions of "Picorder 2"

From Squared Wave
Jump to: navigation, search
(Software)
(48 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
[[File:picorderlogo.png|frame|Logo for the Picorder project]]
 
[[File:picorderlogo.png|frame|Logo for the Picorder project]]
This page serves as a repository of information I have collected as I plan and acquire sensors and materials for my successor to the original [[Picorder]]. As the picorder 1 was bulky and power hungry in this version I am doing away with a colour screen and instead using the relatively low cost and low power Nokia 5110 screen. I think this trade off of experience versus functionality will be well worth it.
+
This page serves as a repository of information I have collected as I acquire sensors and materials for my successor to the original [[Picorder]]. What began as wanting to make a single Tricorder replica is slowly becoming more of a set of standards for the picorder family of devices I want to make.
  
 +
===Sensing Goals===
 +
Basic ambient environmental; temperature, pressure, humidity and VOC (Volatile Organic Compounds). Ranged line-of-sight temperature sensing (very small envelope. 0°c to 80°c). Magnetometer, maybe something like spectroscope if I can find one that works. Electromagnetic interference of a very arbitrary envelope could be displayed using some kind of ADC and an antenna.
  
I hope that this projects sensor module will be usable for a number of other projects outside of a Tricorder prop replica so I am trying to keep the software I write modular.
+
===CPU===
 +
;[https://www.raspberrypi.org/products/raspberry-pi-zero-w/ Raspberry Pi Zero W]
 +
: My old favourite will return for this model. Power consumption was a MAJOR problem with the first [[Picorder]], I have found a really [https://www.jeffgeerling.com/blogs/jeff-geerling/raspberry-pi-zero-conserve-energy good article] on some ways to reduce power consumption. I am playing with the idea of using something like an arduino or just an ATTINY, but the Pi has so many advantages.
  
===Sensing Goals===
+
===Shell===
Basic ambient environmental; temperature, pressure, humidity and VOC (Volatile Organic Compounds). Ranged line-of-sight temperature sensing (very small envelope. 0°c to 80°c). Magnetometer, maybe something like spectroscope if I can find one that works.
+
There are some options:
  
===Components===
+
;Mark 7 Tricorder Replica
 +
: I've acquired a prop replica kit for the mark 7 tricorder from Stapleton Productions.
  
;[https://www.raspberrypi.org/products/raspberry-pi-zero-w/ Raspberry Pi Zero W]
+
;1993 Playmates Tricorder Toy
: My old favourite will return for this model. I am playing with the idea of using something like and arduino or just an ATTINY, but the Pi has so many advantages.
+
:For the prototype, this is easy to get and modify.
 +
 
 +
===Input===
 +
;[https://www.adafruit.com/product/1982 MPR121 Capacitive Touch Buttons]
 +
: Controller to use small metal pads for capacitive buttons for inputs. I found a good guide and software info for the Pi [https://learn.adafruit.com/adafruit-mpr121-12-key-capacitive-touch-sensor-breakout-tutorial/python-circuitpython here.]
 +
 
 +
===Display===
 +
There are two main display targets for this project.
  
;Playmates Tricorder
+
The first is a low cost low power monochrome screen:
: I'm going to use a standard Playmates TNG Tricorder as my enclosure. They are ubiquitous and cheap!
+
  
 +
[[File:5110 3310 monochrome LCD.jpg|200px]]
 
;[https://www.adafruit.com/product/338 Nokia 5110 LCD screen]  
 
;[https://www.adafruit.com/product/338 Nokia 5110 LCD screen]  
: To provide low power information output to the user, and maybe to play some snake.
+
: To provide low power information output to the user, and maybe to play some snake. I looked in a number of places to find a good guide on how to connect the Adafruit part I have with various descriptions around the web. I found [https://www.electronicwings.com/raspberry-pi/nokia5110-display-interfacing-with-raspberry-pi this guide] to have some important information, but the wiring information seemed incorrect. [https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi This guide] lays out how to connect the screen properly..
  
 +
 +
And for my second prototype I will use this colour screen.
 +
 +
[[File:TFT ST7735.png|200px]]
 +
;[https://www.adafruit.com/product/358 Generic ST7735 LCD Display]
 +
: In applications where power isn't as critical a screen like this can provide full colour rich interface. Use of this screen can be facilitated by specifically pushing data to this screen using the [https://pypi.org/project/luma.lcd/ Luma python module] (more work but perhaps less processor intensive) or by using [https://github.com/notro/fbtft/wiki#install FBTFT] to use it as a display target (requires additional software modifications, but allows for generic computing functions to be displayed). The display I found (pictured) had no pins listed as MOSI or MISO (for SPI) but I found a [https://luma-lcd.readthedocs.io/en/latest/install.html#connecting-the-display pin chart] in the Luma docs that helped.
 +
 +
===Sensors===
 
;[https://www.adafruit.com/product/3660 Bm860 VOC, Temp, Humidity, Pressure sensor]
 
;[https://www.adafruit.com/product/3660 Bm860 VOC, Temp, Humidity, Pressure sensor]
: Basic environmental sensor. VOC is a nice added feature.
+
: The [[BME680]] is a basic environmental sensor. VOC is a nice added feature. This sensor will provide ambient environmental information. I've found a good [https://learn.adafruit.com/adafruit-bme680-humidity-temperature-barometic-pressure-voc-gas/python-circuitpython guide] for how to connect it to a Pi.
  
 
;[https://www.adafruit.com/product/3538 AMG8833 IR Thermal Camera]
 
;[https://www.adafruit.com/product/3538 AMG8833 IR Thermal Camera]
: This is a VERY low resolution and low range thermal camera. It will basically only be useful for detecting dramatic temperature differences. It was relatively cheap so I want to include it.
+
: This is a VERY low resolution and low range thermal camera. It will basically only be useful for detecting dramatic temperature differences. It was relatively cheap so I want to include it. This sensor will provide inaccurate CONTEXTUAL temperature information at range.
 +
 
 +
;[https://learn.adafruit.com/using-melexis-mlx90614-non-contact-sensors/wiring-and-test MLX90614 Non Contact Thermometer]
 +
: A cheap and accessible non contact thermometer. This sensor provides accurate specific temperature readings at range. [https://github.com/CRImier/python-MLX90614/blob/master/mlx90614.py This page] looks fruitful.
 +
 
 +
;An EMF sensor of some kind.
 +
: Probably a resistor on an ADC to give me basic environmental electrical readings. I found [https://hackaday.com/2016/11/07/diy-i2c-devices-with-attiny85/ this site] that shows you how you can use at AT tiny as an i2c device, which I could use with [https://www.instructables.com/id/Attiny85-EMF-detector/ this guide] to make a small EMF detector to read low frequency interference.
  
 
===LEDS===
 
===LEDS===
Line 43: Line 69:
 
I have read (somewhere) that the TNG Tricorder lights were changed by a prop maker to run in the opposite direction only so they could tell when their work was being used on screen.
 
I have read (somewhere) that the TNG Tricorder lights were changed by a prop maker to run in the opposite direction only so they could tell when their work was being used on screen.
  
===Software===
 
New software will be written that runs on some of the basic concepts of the original Picorder program. It will not use Pygame though, which will provide considerable performance and power savings, hopefully.
 
  
==User Interface==
+
===Controller===
I have given some thought to how I want the device to be usable by the operator. I'm hoping to make as many functional buttons as possible, but its difficult to determine what the best course is. For the meantime I've made this rough design for a standard bar graph readout. This style of data review seems congruent with the LCARS interface seen in the show.
+
I think in the interest of reducing processing load on the Pi I will just use the Pi as a clock and pulse a GPIO pin high and low to a number of decade counters to control the "look and feel" LEDS.
  
[[File:Picorder2ui.png|Basic Temperature Reading UI]]
+
===Software===
 +
 
 +
Picorder 2 will use [[PicorderOS]] and so there are a number of display options available now.
  
 
==Gallery==
 
==Gallery==
 
<gallery>
 
<gallery>
File:p21.jpg|Major components being tested|alt=alt language
+
File:p21.jpg|Major components being tested |alt=alt language
 
File:p22.jpg|Example thermal cam output|alt=alt language
 
File:p22.jpg|Example thermal cam output|alt=alt language
 +
File:Picorderdotmatrix1.jpg| Actual Dot Matrix UI Being Tested
 +
File:Picorder2protolayoutbreadboard.jpg| Picorder 2 Laid Out on Breadboard
 +
File:Picorderlayout2 displays.jpg| Picorder 2 laid out on breadboard with dual displays.
 +
File:PicorderOS lcars mockup.png| PicorderOS LCARS mockup
 +
 
</gallery>
 
</gallery>
  
 
==MyCorder==
 
==MyCorder==
 
This project is a "MyCorder" build and so I'm using [https://www.reddit.com/r/MyCorder/ this] subreddit to solicit advice from the community.
 
This project is a "MyCorder" build and so I'm using [https://www.reddit.com/r/MyCorder/ this] subreddit to solicit advice from the community.

Revision as of 21:14, 20 June 2019

Logo for the Picorder project

This page serves as a repository of information I have collected as I acquire sensors and materials for my successor to the original Picorder. What began as wanting to make a single Tricorder replica is slowly becoming more of a set of standards for the picorder family of devices I want to make.

Sensing Goals

Basic ambient environmental; temperature, pressure, humidity and VOC (Volatile Organic Compounds). Ranged line-of-sight temperature sensing (very small envelope. 0°c to 80°c). Magnetometer, maybe something like spectroscope if I can find one that works. Electromagnetic interference of a very arbitrary envelope could be displayed using some kind of ADC and an antenna.

CPU

Raspberry Pi Zero W
My old favourite will return for this model. Power consumption was a MAJOR problem with the first Picorder, I have found a really good article on some ways to reduce power consumption. I am playing with the idea of using something like an arduino or just an ATTINY, but the Pi has so many advantages.

Shell

There are some options:

Mark 7 Tricorder Replica
I've acquired a prop replica kit for the mark 7 tricorder from Stapleton Productions.
1993 Playmates Tricorder Toy
For the prototype, this is easy to get and modify.

Input

MPR121 Capacitive Touch Buttons
Controller to use small metal pads for capacitive buttons for inputs. I found a good guide and software info for the Pi here.

Display

There are two main display targets for this project.

The first is a low cost low power monochrome screen:

5110 3310 monochrome LCD.jpg

Nokia 5110 LCD screen
To provide low power information output to the user, and maybe to play some snake. I looked in a number of places to find a good guide on how to connect the Adafruit part I have with various descriptions around the web. I found this guide to have some important information, but the wiring information seemed incorrect. This guide lays out how to connect the screen properly..


And for my second prototype I will use this colour screen.

TFT ST7735.png

Generic ST7735 LCD Display
In applications where power isn't as critical a screen like this can provide full colour rich interface. Use of this screen can be facilitated by specifically pushing data to this screen using the Luma python module (more work but perhaps less processor intensive) or by using FBTFT to use it as a display target (requires additional software modifications, but allows for generic computing functions to be displayed). The display I found (pictured) had no pins listed as MOSI or MISO (for SPI) but I found a pin chart in the Luma docs that helped.

Sensors

Bm860 VOC, Temp, Humidity, Pressure sensor
The BME680 is a basic environmental sensor. VOC is a nice added feature. This sensor will provide ambient environmental information. I've found a good guide for how to connect it to a Pi.
AMG8833 IR Thermal Camera
This is a VERY low resolution and low range thermal camera. It will basically only be useful for detecting dramatic temperature differences. It was relatively cheap so I want to include it. This sensor will provide inaccurate CONTEXTUAL temperature information at range.
MLX90614 Non Contact Thermometer
A cheap and accessible non contact thermometer. This sensor provides accurate specific temperature readings at range. This page looks fruitful.
An EMF sensor of some kind.
Probably a resistor on an ADC to give me basic environmental electrical readings. I found this site that shows you how you can use at AT tiny as an i2c device, which I could use with this guide to make a small EMF detector to read low frequency interference.

LEDS

As with the original picorder I want to make sure that this one has a feel of the actual prop. the TOS tricorder only had 3 indicator lights but the TNG tricorder is lit up like a christmas tree.

I'm going to try and include at the very least:

  • the four green indicator lights (alpha, beta, delta, gamma)
  • the front panel sensor array (the green ripple lights, the various and sundry sensor illuminations)
  • the EMRG button
  • the PWR button.
  • GEO, MET, BIO buttons.

ALPHA BETA DELTA GAMMA

Its always perplexed me that these indicator lights seem to ripple (light up and turn off one after the other) in different directions depending on the season of TNG you're watching.

It makes sense to me that the LEDs on the Tricorder should ripple from top to bottom (alpha to gamma).

I have read (somewhere) that the TNG Tricorder lights were changed by a prop maker to run in the opposite direction only so they could tell when their work was being used on screen.


Controller

I think in the interest of reducing processing load on the Pi I will just use the Pi as a clock and pulse a GPIO pin high and low to a number of decade counters to control the "look and feel" LEDS.

Software

Picorder 2 will use PicorderOS and so there are a number of display options available now.

Gallery

MyCorder

This project is a "MyCorder" build and so I'm using this subreddit to solicit advice from the community.