Difference between revisions of "PIP-GRL 31415"

From Technologia Incognita
Jump to: navigation, search
(PIP-GRL 31415 wristcomputer from the game series Fallout)
 
 
(67 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
{{Project
 
{{Project
|picture=Pipboy3k ingame.jpg
+
|picture=Pipboy3k.png
|ProjectSkills=Arduino, Basic electronics, Coding, Not Being on Fire, UI Design
+
|ProjectSkills=Arduino, Basic electronics, Coding, UI Design, Not Being on Fire
|ProjectStatus=Active
+
|ProjectStatus=Finished
 
|ProjectNiche=Electronics
 
|ProjectNiche=Electronics
 
|ProjectPurpose=World domination
 
|ProjectPurpose=World domination
 
}}
 
}}
PIP-GRL 31415
+
== What is it? ==
 
 
 
A wristcomputer similar to the PIP Boy 3000 from the game series Fallout.
 
A wristcomputer similar to the PIP Boy 3000 from the game series Fallout.
  
 
The device is made up of several modules and sensors such as:
 
The device is made up of several modules and sensors such as:
 +
 
-2.8" TFT touchscreen
 
-2.8" TFT touchscreen
 +
 
-MicroSD card (contains images and logfiles)
 
-MicroSD card (contains images and logfiles)
 +
 
-GPS
 
-GPS
 +
 
-Compass
 
-Compass
 +
 
-FM Radio
 
-FM Radio
 +
 
-6 Degrees Of Freedom motionsensor  
 
-6 Degrees Of Freedom motionsensor  
 +
 
-Altitude/pressure sensor
 
-Altitude/pressure sensor
 +
 
-Light sensors
 
-Light sensors
 +
 
-Audio sensors
 
-Audio sensors
 +
 
-3x Ultrabright white LED's
 
-3x Ultrabright white LED's
 +
 
-1x non-diffused RGB LED
 
-1x non-diffused RGB LED
 +
 
-Laserpointer
 
-Laserpointer
  
The PIP Boy 3000 from the game series Fallout also contains a geigercounter, but I do not think this is a realistic addition :(
+
The PIP Boy 3000 from the game series Fallout also contains a geigercounter, <s>but I do not think this is a realistic addition :(</s> and it turns out this is actually doable :)
 +
More updates on this will follow soon.
 +
 
 +
 
 +
The 'PIP' in the name 'PIP Boy 3000' is an acronym for 'Personal Information Processor'.
 +
 
 +
I am not sure yet what PIP GRL will stand for, probable be something like:
  
 +
'Personal Information Processor - Graphical Realtime ... something...'
 +
 +
== Things to know ==
 +
-To use the touch sensitive screen a stylus is... useful unless you have small fingers.
 +
 +
-The option pages (Page_100-103) can be opened by touching/pressing the topright corner of the screen, there is a 5x5 px square (invisible) that activates it.
 +
 +
-Before power up, check if the laserpointer is still properly connected. Its wires unplug rather easily.
 +
 +
-To power it up, you do NOT need to plug in a USB cable into the Teensy 3.0 microcontroller.
 +
 +
-I have cut the VIN trace, which means the Teensy is not drawing power from its USB cable, but from an external source.
 +
 +
The external source is the Breadboard USB powersupply, which delivers 5v to the Teensy's 'Vin (3.7 to 5.5 volts)' pin.
 +
 +
There is also a switch on the Breadboard USB powersupply which has to be flipped to turn on/off :)
 +
 +
-To modify code on the microcontroller, you only need to connect the Teensy Micro-USB connection to a computer.
 +
 +
-To use the PIP GRL 31415, you only need to connect the Breadboard USB powersupply, and flip the switch.
 +
 +
== What happens when you turn it on ==
 +
When the device is powered up, the first thing it will ask is to select the proper password (Page_0).
  
What happens when you turn it on:
 
When the device is powered up, the first thing it will ask is to select the proper password.
 
 
You have 4 tries, after which the device will enter 'bricked mode'.
 
You have 4 tries, after which the device will enter 'bricked mode'.
 +
 
At the moment of writing, this is bypassable by restarting the device (ie. bricked mode is NOT permanent during prototype phase).
 
At the moment of writing, this is bypassable by restarting the device (ie. bricked mode is NOT permanent during prototype phase).
The password selection page is a direct copy from the ROBCO's Computer Terminals primarily present in the game series Fallout.
 
There has been a small change made, this device will not display the amount of correct characters in the chosen password as the game does.
 
  
 
Once logged in, the user has a choice of several 'pages':
 
Once logged in, the user has a choice of several 'pages':
 +
 
Page_1, Page_2 & Page_3 are 'normal' pages which contain functions the enduser is able to use.
 
Page_1, Page_2 & Page_3 are 'normal' pages which contain functions the enduser is able to use.
 +
 
Page_100, Page_101, Page_102 & Page_103 are 'option' pages, much like the settings screen of any computergame.
 
Page_100, Page_101, Page_102 & Page_103 are 'option' pages, much like the settings screen of any computergame.
 +
 
Page_99 is the 'bricked' page
 
Page_99 is the 'bricked' page
  
 +
== Overview of page functionality ==
 +
=== Page_0 a.k.a. LOGIN ===
 +
The LOGIN page displays a list of characters and words, the password needs to be selected to continue.
 +
 +
This page is a direct copy of the RobCo computer terminals primarily present in the game series Fallout ([http://images3.wikia.nocookie.net/__cb20090103013620/fallout/images/7/74/Terminal.jpg image]).
 +
 +
There has been a small change made, this device will not display the amount of correct characters in the chosen password as the game does.
  
Overview of page functionality:
+
After 4 consecutive incorrect attempts, Page_99 is displayed (bricked mode)
  
Page_1 a.k.a. STATS
+
=== Page_1 a.k.a. STATS ===
 
The STATS page is divided into 5 menu's, each menu can have several submenus
 
The STATS page is divided into 5 menu's, each menu can have several submenus
  
-Status menu which has 3 submenus:
+
==== Status menu ====
--CND (displays endusers health)
+
Status menu which has 3 submenus:
--RAD (displays geigercount, actually average of 3 random numbers)
 
--EFF (displays the armor the enduser is wearing, also not functioning... RFID tags in clothes?)
 
  
-S.P.E.C.I.A.L. menu which has 7 submenus:
+
===== CND =====
--Strength (displays description with value 5)
+
Displays endusers health
--Perception (displays description with value 9)
 
--Endurance (displays description with value 9)
 
--Charisma (displays description with value 7)
 
--Intelligence (displays description with value 9)
 
--Agility (displays description with value 8)
 
--Luck (displays description with value 9)
 
  
-Skills menu (doesnt display anything yet)
+
===== RAD =====
 +
Displays amount of radiation absorbed, at the moment this is actually the average of 3 random numbers.
 +
The random numbers are readings from an analog pin without anything connected to it (noise).
  
-Perks menu (doesnt display anything yet)
+
===== EFF =====
 +
Displays the armor the enduser is wearing, also not functioning... (RFID tags in clothes?)
  
-General menu (doesnt display anything yet)
 
  
 +
==== S.P.E.C.I.A.L. menu ====
 +
The S.P.E.C.I.A.L. has 7 submenus:
  
Page_2 a.k.a. ITEMS
+
===== Strength =====
 +
Displays description with value 5
 +
 
 +
===== Perception =====
 +
Displays description with value 9
 +
 
 +
===== Endurance =====
 +
Displays description with value 9
 +
 
 +
===== Charisma =====
 +
Displays description with value 7
 +
 
 +
===== Intelligence =====
 +
Displays description with value 9
 +
 
 +
===== Agility =====
 +
Displays description with value 8
 +
 
 +
===== Luck =====
 +
Displays description with value 9
 +
 
 +
 
 +
==== Skills menu ====
 +
<s>Doesn't display anything yet</s>
 +
 
 +
Currently working on this section.
 +
 
 +
Will soon display 3 submenus, keyboard/mouse/joystick/gamepad.
 +
 
 +
From these you will have the option to control ''ANY'' computer just by connecting a USB cable between the computer itself and the Teensy microcontroller.
 +
 
 +
Thought for later: add a wireless connection, although this will probably require drivers to be installed (destroys plug&play functionality), and will probably consume much more power.
 +
 
 +
06/04/13: The mouse functions are implemented (with the exception of mouse-scroll up/down), and they work like a charm.
 +
 
 +
 
 +
===== Keyboard submenu =====
 +
Well... I could explain every key here, but that would be a waste of space.
 +
 
 +
I will be working on a US International keyboard without numpad (not enough space on screen), so it'll probably become more like a laptop version.
 +
 
 +
Some things to take into consideration:
 +
 
 +
-Press CAPS or SHIFT for uppercase and/or other characters.
 +
 
 +
-CTRL, ALT, SHIFT and the right WIN button are modifier keys, meaning when you press one, it will highlight, until you press another (non-modifier) key.
 +
 
 +
-The left WIN button is a non-modifier key and functions as a normal single-press Super/Win key.
 +
 
 +
-It is not possible to use multiple modifier keys at the same time.
 +
I still need to update the code to allow such outlandish behaviour.
 +
Having CTRL and SHIFT selected and pressing on the letter S will result in the key combination SHIFT-S being sent first, followed by a CTRL-S.
 +
 
 +
More information can be found [http://pjrc.com/teensy/td_keyboard.html here].
 +
 
 +
===== Mouse submenu =====
 +
Control mouse with directional keypad (8 directions)
 +
 
 +
Buttons to simulate LMB, MMB, RMB press.
 +
 
 +
Buttons to simulate holding down LMB, MMB, RMB to support Drag&Drop functions (press once to hold down, press another time to release).
 +
 
 +
Buttons to simulate Scroll Up and Scroll Down.
 +
 
 +
More information can be found [http://pjrc.com/teensy/td_mouse.html here].
 +
 
 +
===== Joystick submenu =====
 +
A bit of a weird one, Joysticks work on 6 axis, 32(!) buttons and 1 hat switch.
 +
 
 +
I never worked with Joystick controls before, but I suspect I'll get it right first try (how hard can it be?).
 +
 
 +
Joysticks work on 6 axis, 32(!) buttons and 1 hat switch, and all of these will be implemented.
 +
 
 +
Working so far:
 +
-X, Y & Z axis.
 +
-Left & right sliders
 +
 
 +
 
 +
Still need to figure out the difference between the Z axis and Z-rotate (axis?)...
 +
 
 +
 
 +
More information can be found [http://pjrc.com/teensy/td_joystick.html here].
 +
 
 +
===== Gamepad submenu =====
 +
Very similar to Joystick, only different button layout
 +
 
 +
More information can be found [http://pjrc.com/teensy/td_joystick.html here].
 +
 
 +
==== Perks menu ====
 +
Doesn't display anything yet
 +
 
 +
Also, not really sure what to put here, will most likely become computer control scripts such as:
 +
 
 +
-Windows Powershell & Linux shell scripts
 +
 
 +
-wget (TechInc?) wallpaper and set to screen script
 +
 
 +
-anything else?
 +
 
 +
==== General menu ====
 +
Doesn't display anything yet
 +
 
 +
Will possibly contain statistics such as time used, SD space used/available and distance traveled (will be inaccurate, GPS doesn't always have a fix) and other fun statistics.
 +
 
 +
=== Page_2 a.k.a. ITEMS ===
 
The ITEMS page still needs to be filled, the layout exists but nothing has been added (yet).
 
The ITEMS page still needs to be filled, the layout exists but nothing has been added (yet).
  
  
Page_3 a.k.a. DATA
+
=== Page_3 a.k.a. DATA ===
 
The DATA page is where most of the magic happens, it has 5 menus:
 
The DATA page is where most of the magic happens, it has 5 menus:
  
-Local Map
+
==== Local Map ====
 
The Local Map displays a map of the Netherlands, and once the GPS has a fix, a rectangle will appear as a 'You are here' indicator.
 
The Local Map displays a map of the Netherlands, and once the GPS has a fix, a rectangle will appear as a 'You are here' indicator.
 +
 
The plan is to divide this into 3 submenus, each showing a different zoom level of the map (1=country, 2=province, 3=city)
 
The plan is to divide this into 3 submenus, each showing a different zoom level of the map (1=country, 2=province, 3=city)
  
-World Map
+
==== World Map ====
 
Same as the Local Map, except this displays a map of the world.
 
Same as the Local Map, except this displays a map of the world.
 +
 
The plan is to divide this into 2 submenus, each showing a different zoom level of the map (1=world, 2=continent)
 
The plan is to divide this into 2 submenus, each showing a different zoom level of the map (1=world, 2=continent)
  
-Quests
+
==== Quests ====
 
The Quest menu should display your active/finished quests, but because I do not know how to implement this yet, I decided to add the Audio sensors output here.
 
The Quest menu should display your active/finished quests, but because I do not know how to implement this yet, I decided to add the Audio sensors output here.
 +
 
The code written for reading the microphones peak-to-peak is horrible, and doesnt function properly yet (should make use of interupts, not a timed interval).
 
The code written for reading the microphones peak-to-peak is horrible, and doesnt function properly yet (should make use of interupts, not a timed interval).
  
-Misc
+
==== Misc ====
 
The Misc menu displays the values from the Light Dependent Resistor.
 
The Misc menu displays the values from the Light Dependent Resistor.
 +
 
The goal is to use this value to decrease the backlight on the TFT using a digital potentiometer automatically.
 
The goal is to use this value to decrease the backlight on the TFT using a digital potentiometer automatically.
  
-Radio
+
==== Radio ====
 
The Radio menu contains all controls for the FM Radio.
 
The Radio menu contains all controls for the FM Radio.
 +
 
Turn on/off, Mute on/off, Seek up/down, Tune up/down, Volume up/down.
 
Turn on/off, Mute on/off, Seek up/down, Tune up/down, Volume up/down.
 +
 
It also displays the freq. you are listening to, and if this is a mono or stereo signal.
 
It also displays the freq. you are listening to, and if this is a mono or stereo signal.
 +
 
At the moment RDS is not being processed, but will be in the near future.
 
At the moment RDS is not being processed, but will be in the near future.
  
Page_99 a.k.a. BRICKED
+
=== Page_99 a.k.a. BRICKED ===
This page will be displayed if you choose the wrong password 4 consecutive tries.
+
This page will be displayed if you choose the wrong password 4 consecutive times.
 +
 
 
Turn the device off and on to retry, bricked mode is not permanent while prototyping :)
 
Turn the device off and on to retry, bricked mode is not permanent while prototyping :)
  
  
Page_100 a.k.a DISPLAY
+
=== Page_100 a.k.a DISPLAY ===
 
The DISPLAY options contain:
 
The DISPLAY options contain:
 +
 
-Backlight brightness level (not functioning until I have the dig. potentiometer).
 
-Backlight brightness level (not functioning until I have the dig. potentiometer).
 +
 
-Image quality low/medium/high (this defines the prefix folder where images are stored).
 
-Image quality low/medium/high (this defines the prefix folder where images are stored).
 +
 
-HUD color (to change foreground colors)
 
-HUD color (to change foreground colors)
 +
 
-Background color (to change... you guessed it...)
 
-Background color (to change... you guessed it...)
 +
 
-Return button to return to last used page/menu/submenu
 
-Return button to return to last used page/menu/submenu
  
Page_101 a.k.a AUDIO
+
 
 +
=== Page_101 a.k.a AUDIO ===
 +
The AUDIO options contain:
 
-Mute on/off (to mute the speaker, NOT the radio!)
 
-Mute on/off (to mute the speaker, NOT the radio!)
 +
 
-Return button to return to last used page/menu/submenu
 
-Return button to return to last used page/menu/submenu
  
Page_102 a.k.a CONTROL
+
 
 +
=== Page_102 a.k.a CONTROL ===
 
The CONTROL options contain:
 
The CONTROL options contain:
 +
 
-LED1 on/off (turns on/off ultrabright LED1)
 
-LED1 on/off (turns on/off ultrabright LED1)
 +
 
-LED2 on/off (turns on/off ultrabright LED2)
 
-LED2 on/off (turns on/off ultrabright LED2)
 +
 
-LED3 on/off (turns on/off ultrabright LED3)
 
-LED3 on/off (turns on/off ultrabright LED3)
 +
 
-LED4 on/off (turns on/off RGB LED4 RED)
 
-LED4 on/off (turns on/off RGB LED4 RED)
 +
 
-LED5 on/off (turns on/off RGB LED4 BLUE)
 
-LED5 on/off (turns on/off RGB LED4 BLUE)
 +
 
-LED6 on/off (turns on/off RGB LED4 GREEN)
 
-LED6 on/off (turns on/off RGB LED4 GREEN)
 +
 
-LASER on/off (turns on/off LASER pointer)
 
-LASER on/off (turns on/off LASER pointer)
 +
 
-ALL on/off (turns on/off everything)
 
-ALL on/off (turns on/off everything)
 +
 
-Return button to return to last used page/menu/submenu
 
-Return button to return to last used page/menu/submenu
  
Page_103 a.k.a GAMEPLAY
+
 
 +
=== Page_103 a.k.a GAMEPLAY ===
 
The GAMEPLAY options contain:
 
The GAMEPLAY options contain:
 +
 
-PAGE1 (shortcut to goto page1)
 
-PAGE1 (shortcut to goto page1)
 +
 
-PAGE2 (shortcut to goto page2)
 
-PAGE2 (shortcut to goto page2)
 +
 
-PAGE3 (shortcut to goto page3)
 
-PAGE3 (shortcut to goto page3)
 +
 
-Return button to return to last used page/menu/submenu
 
-Return button to return to last used page/menu/submenu
 +
 +
== List of parts and link to my suppliers ==
 +
All components have been ordered from 7 different webshops: [http://www.pjrc.com PJRC], [http://www.eztronics.nl/ EZtronics], [http://www.conrad.nl/ Conrad], [http://www.pieterfloris.nl/shop/ Floris.cc], [http://www.sparkfun.com/ Sparkfun Electronics], [https://www.iprototype.nl/ iPrototype.nl] and [http://www.alpha-crucis.com/en/ AlphaCrucis].
 +
 +
 +
''On a sidenote:''
 +
 +
I would rate all these webshops with 5/5 stars, with the exception of AlphaCrucis.
 +
It took them 5 weeks to respond to my mail why my order wasn't sent (one of the items is not in stock), and another 3 weeks to realize that this particular item would not be resupplied.
 +
This was when I finally received an email with the message 'your order has been shipped' and a second email with the message that a refund of somewhere around 3 euro have been initiated.
 +
When I finally received my package and checked the invoice, it turned out I had waited 8 weeks for F/M jumper cables...
 +
 +
=== Tools ===
 +
[http://www.conrad.nl/ce/nl/product/588332/Basetech-Soldeerbout-startset-SH-1263-c3-230-V-Vermogen-30-W-Soldeerpunttype-omvang-levering-Potloodvorm/SHOP_AREA_17583? Basetech Soldeerbout startset SH 1263 c3 230 V~ Vermogen 30 W Soldeerpunttype (omvang levering) Potloodvorm]
 +
 +
[http://www.pieterfloris.nl/shop/product.php?id_product=324 Solder Wick]
 +
 +
[https://www.sparkfun.com/products/9200 Hobby Knife]
 +
 +
[https://www.sparkfun.com/products/9146 SparkFun Mini Screwdriver]
 +
 +
[https://www.sparkfun.com/products/11410 SparkFun Inventor's Kit for Arduino - Carrying Case]
 +
 +
[https://www.sparkfun.com/products/9317 Third Hand]
 +
 +
[https://www.sparkfun.com/products/10784 Adhesive Bandages - RTFM (5 pack)]
 +
 +
[https://www.sparkfun.com/products/11046 SparkFun Safety Glasses]
 +
 +
=== Sensors & modules ===
 +
{| class="wikitable"
 +
|-
 +
!  Product name & link !! currently in use !! additional information
 +
|-
 +
| [https://www.iprototype.nl/products/components/sensors/MPU-6050-triple-axis-accelerometer-gyro Triple Axis Accelerometer & Gyro] || yes || in need of calibration
 +
|-
 +
| [https://www.iprototype.nl/products/components/sensors/line-tracking Line Tracking sensor] || no || need to free pins and use 5v-3.3v logic level converter
 +
|-
 +
| [https://www.iprototype.nl/products/components/sensors/color-light-sensor Color Light Sensor] || no || need to free PWM pins to connect RGB LED
 +
 +
 +
|-
 +
| [https://www.iprototype.nl/products/components/overige/audiojack-female-breakout Breakout voor Audio Plug] || no || still needs to be soldered
 +
|-
 +
| [https://www.iprototype.nl/products/components/overige/audiojack-female-90-3.5mm Audio Plug female 3.5mm] || no || still needs to be soldered
 +
|-
 +
| [http://www.pieterfloris.nl/shop/product.php?id_product=666 Adafruit Ultimate GPS Breakout - 66 channel w/10 Hz updates - V3] || yes || works quite well without external antenna
 +
|-
 +
| [http://www.pieterfloris.nl/shop/product.php?id_product=689 LSM303 Breakout Board - Tilt Compensated Compass] || yes || needs calibrating
 +
|-
 +
| [http://www.pieterfloris.nl/shop/product.php?id_product=786 Humidity and Temperature Sensor - RHT03] || no || tested and works, but now unplugged to free pins for other uses
 +
|-
 +
| [http://www.pieterfloris.nl/shop/product.php?id_product=369 Logic Level Converter] || no || not being used (yet)
 +
|-
 +
| [http://www.pieterfloris.nl/shop/product.php?id_product=851 8-channel Bi-directional Logic Level Converter - TXB0108] || no || not being used (yet)
 +
|-
 +
| [https://www.sparkfun.com/products/11084 MPL3115A2 Altitude/Pressure Sensor Breakout] || yes || in need of calibration
 +
|-
 +
| [https://www.sparkfun.com/products/9578 SpeakJet] || no || not connected, probably never will
 +
|-
 +
| [https://www.sparkfun.com/products/11574 Pulse Sensor] || no || connected and worked, needs calibration, has been disconnected to free pins
 +
|-
 +
| [https://www.sparkfun.com/products/10663 Evaluation Board for Si4703 FM Tuner] || yes || connected and works
 +
|-
 +
| [https://www.sparkfun.com/products/594 Laser Card Module - Red] || yes || connected through MCP23016 and works
 +
|-
 +
| [http://www.alpha-crucis.com/en/electronic-kits/1510-max-power-ir-led-kit-3700386107320.html Max Power IR LED Kit Max Power IR LED Kit] || no || still needs to be soldered
 +
|}
 +
 +
=== Simple parts ===
 +
 +
{| class="wikitable"
 +
|-
 +
!  Product name & link !! currently in use !! additional information
 +
|-
 +
| [http://www.conrad.nl/ce/nl/product/526835/Steekprintplaat-EIC-102-l-x-b-x-h-165-x-55-x-85-mm-Aantal-poolklemmen-830/SHOP_AREA_14742? Steekprintplaat EIC-102 (l x b x h) 165 x 55 x 8.5 mm Aantal poolklemmen 830] || yes || currently houses the project
 +
|-
 +
| [http://www.conrad.nl/ce/nl/product/526797/Bedradingsset-EIC-J-XL-Set-steekbruggen-l-x-b-x-h-205-x-145-x-40-mm/SHOP_AREA_14742? Bedradingsset EIC-J-XL Set steekbruggen (l x b x h) 205 x 145 x 40 mm] || yes || whats left is in the space
 +
|-
 +
| [http://www.conrad.nl/ce/nl/product/200240/Mipow-Powertube-2600-zwart-SP2600M-BK-Mipow-2600M-mobiele-oplader/SHOP_AREA_40033? Mipow Powertube 2600, zwart SP2600M-BK Mipow 2600M mobiele oplader] || no || works perfectly, but not useful while prototyping
 +
|-
 +
| [https://www.iprototype.nl/products/kits/breadboard-jumpwires Breadboard met Jumpwires] || yes || holds whatever didn't fit on the main breadboard anymore (mainly I2C devices)
 +
|-
 +
| [https://www.iprototype.nl/products/accessoires/cables-wires/premium-jumpwires-mf Premium Jumpwires M/F] || yes || bag of 10, 2 are in use for the A10 & A11 pins on the Teensy
 +
|-
 +
| [https://www.iprototype.nl/products/accessoires/cables-wires/digital-sensor-cable Digitale Sensor kabel] || no || not being used
 +
|-
 +
| [https://www.iprototype.nl/products/accessoires/cables-wires/analog-sensor-cable Analoge Sensor kabel] || no || not being used
 +
|-
 +
| [https://www.iprototype.nl/products/components/overige/thin-speaker Mini Speaker] || no || was connected, but had to unplug to free pin for other uses
 +
|-
 +
| 3x [https://www.iprototype.nl/products/components/led-lcd/ledwit LED Wit (Extra bright)] || yes || connected through the MCP23016 expander
 +
|-
 +
| [http://www.pieterfloris.nl/shop/product.php?id_product=839 20 in 1!Basic components mixed pack] || no || unopened in my box in the space, still need to sort and put in proper storage boxes
 +
|-
 +
| 6x [http://www.pieterfloris.nl/shop/product.php?id_product=692 Solderless Headers - 10-pin Straight] || yes || a lot of these have been used, very useful buggers
 +
|-
 +
| 2x [http://www.pieterfloris.nl/shop/product.php?id_product=42 Breadboard wire bundle] || yes || same as above, 1 pack has been used, the other is in the jumperwire storage box
 +
|-
 +
| [http://www.pieterfloris.nl/shop/product.php?id_product=173 Black Metal Knob - 14x24mm] || no || not being used, doesn't fit on my potentiometer
 +
|-
 +
| [http://www.pieterfloris.nl/shop/product.php?id_product=273 Key Switch - Small] || no || not being used yet, one of the final things to be added
 +
|-
 +
| [http://www.pieterfloris.nl/shop/product.php?id_product=487 Coin Cell Battery - 20mm] || no || tested and works, currently searching for a nice holder
 +
|-
 +
| [http://www.pieterfloris.nl/shop/product.php?id_product=648 10K Breadboard Potentiometer] || yes || is being used to dim the TFT backlight
 +
|-
 +
| [http://www.pieterfloris.nl/shop/product.php?id_product=930 Surface Transducer - Small] || no || not in use yet, needs soldering of two tiny pads
 +
|-
 +
| [http://www.pieterfloris.nl/shop/product.php?id_product=973 Electret Microphone Amplifier - MAX4466 with Adjustable Gain] || yes || in use for the audio volume meter
 +
|-
 +
| [https://www.sparkfun.com/products/9926 LED Light Pipe 0.6" Round] || no || not being used, not sure if it will either
 +
|-
 +
| 3x [https://www.sparkfun.com/products/10442 LED Tactile Button - Red] || no || haven't got a clue how to connect these at the moment
 +
|-
 +
| [http://www.alpha-crucis.com/en/resistors/2296-resistor-kit-1-4w-500-total-0845156001118.html Resistor Kit - 1/4W (500 total)] || yes || very useful, although I'm not sure why (only 20) [http://en.wikipedia.org/wiki/Zero-ohm_link 0 Ohm resistors] are included...
 +
|}
 +
 +
=== Advanced parts ===
 +
{| class="wikitable"
 +
|-
 +
!  Product name & link !! currently in use !! additional information
 +
|-
 +
| [http://www.pjrc.com/store/teensy3_pins.html Teensy USB Board, Version 3.0, with Header Pins] || yes || the beating heart of this project.. connected and works :)
 +
|-
 +
| [http://pjrc.com/store/sd_adaptor.html Micro SD Card Adaptor] || yes || works very well, using [http://code.google.com/p/beta-lib/downloads/list SdFat beta] (SdFatBeta20130207.zip) for optimized speed
 +
|-
 +
| [https://www.iprototype.nl/products/components/ics/pinexpander Pin Expander] (MCP23016) || yes || connected and works for output, need to use scope to test input
 +
|-
 +
| [https://www.iprototype.nl/products/components/ics/I2C-bus-expander-PCF8574AN I2C Bus Expander] (PCF8574AN) || no || not being used yet
 +
|-
 +
| [https://www.iprototype.nl/products/components/sensors/ldr LDR] || yes || in use, works very well
 +
|-
 +
| [http://www.pieterfloris.nl/shop/product.php?id_product=492 Breadboard Power Supply USB - 5V/3.3V] || yes || one of the best purchases I made, powers the breadboard with 5v on the top rail, and 3.3v on the bottom rail
 +
|-
 +
| [http://www.pieterfloris.nl/shop/product.php?id_product=784 MCP23017 - i2c 16 input/output port expander] || no || not being used, had some issues connecting this, although its said to be faster/better
 +
|-
 +
| [https://www.sparkfun.com/products/10256 MOSFET Power Control Kit] || no || still needs soldering
 +
|-
 +
| 10x [https://www.sparkfun.com/products/8357 Resettable Fuse PTC] || yes || a few of these have been connected (TFT screen & compass module)
 +
|-
 +
| [http://www.alpha-crucis.com/en/crystals/1912-crystal-32khz-3700386605406.html Crystal 32kHz] || no || needs to be soldered to the Teensy
 +
|-
 +
| [http://www.adafruit.com/products/335 2.8" 18-bit color TFT LCD with touchscreen breakout board -  ILI9325] || yes || works excellent, bought from [http://www.eztronics.nl/ EZtronics] but is no longer available there/on the site
 +
|}
 +
 +
== Project page on PJRC.com ==
 +
http://forum.pjrc.com/threads/17717-PIP-GRL-31415-(not-spam!)
 +
 +
 +
== Project videos on youtube ==
 +
http://www.youtube.com/playlist?list=PLU5nSKNLjNrutxzlRTsA0mQmNgPrwgW7h
 +
 +
== Useful links ==
 +
http://www.instructables.com/id/A-3D-printable-Pip-Boy-3000/ (thnx Amx109!)

Latest revision as of 01:58, 15 February 2017

Projects
Pipboy3k.png
Participants ZTiK
Skills Arduino, Basic electronics, Coding, UI Design, Not Being on Fire
Status Finished
Niche Electronics
Purpose World domination

What is it?

A wristcomputer similar to the PIP Boy 3000 from the game series Fallout.

The device is made up of several modules and sensors such as:

-2.8" TFT touchscreen

-MicroSD card (contains images and logfiles)

-GPS

-Compass

-FM Radio

-6 Degrees Of Freedom motionsensor

-Altitude/pressure sensor

-Light sensors

-Audio sensors

-3x Ultrabright white LED's

-1x non-diffused RGB LED

-Laserpointer

The PIP Boy 3000 from the game series Fallout also contains a geigercounter, but I do not think this is a realistic addition :( and it turns out this is actually doable :) More updates on this will follow soon.


The 'PIP' in the name 'PIP Boy 3000' is an acronym for 'Personal Information Processor'.

I am not sure yet what PIP GRL will stand for, probable be something like:

'Personal Information Processor - Graphical Realtime ... something...'

Things to know

-To use the touch sensitive screen a stylus is... useful unless you have small fingers.

-The option pages (Page_100-103) can be opened by touching/pressing the topright corner of the screen, there is a 5x5 px square (invisible) that activates it.

-Before power up, check if the laserpointer is still properly connected. Its wires unplug rather easily.

-To power it up, you do NOT need to plug in a USB cable into the Teensy 3.0 microcontroller.

-I have cut the VIN trace, which means the Teensy is not drawing power from its USB cable, but from an external source.

The external source is the Breadboard USB powersupply, which delivers 5v to the Teensy's 'Vin (3.7 to 5.5 volts)' pin.

There is also a switch on the Breadboard USB powersupply which has to be flipped to turn on/off :)

-To modify code on the microcontroller, you only need to connect the Teensy Micro-USB connection to a computer.

-To use the PIP GRL 31415, you only need to connect the Breadboard USB powersupply, and flip the switch.

What happens when you turn it on

When the device is powered up, the first thing it will ask is to select the proper password (Page_0).

You have 4 tries, after which the device will enter 'bricked mode'.

At the moment of writing, this is bypassable by restarting the device (ie. bricked mode is NOT permanent during prototype phase).

Once logged in, the user has a choice of several 'pages':

Page_1, Page_2 & Page_3 are 'normal' pages which contain functions the enduser is able to use.

Page_100, Page_101, Page_102 & Page_103 are 'option' pages, much like the settings screen of any computergame.

Page_99 is the 'bricked' page

Overview of page functionality

Page_0 a.k.a. LOGIN

The LOGIN page displays a list of characters and words, the password needs to be selected to continue.

This page is a direct copy of the RobCo computer terminals primarily present in the game series Fallout (image).

There has been a small change made, this device will not display the amount of correct characters in the chosen password as the game does.

After 4 consecutive incorrect attempts, Page_99 is displayed (bricked mode)

Page_1 a.k.a. STATS

The STATS page is divided into 5 menu's, each menu can have several submenus

Status menu

Status menu which has 3 submenus:

CND

Displays endusers health

RAD

Displays amount of radiation absorbed, at the moment this is actually the average of 3 random numbers. The random numbers are readings from an analog pin without anything connected to it (noise).

EFF

Displays the armor the enduser is wearing, also not functioning... (RFID tags in clothes?)


S.P.E.C.I.A.L. menu

The S.P.E.C.I.A.L. has 7 submenus:

Strength

Displays description with value 5

Perception

Displays description with value 9

Endurance

Displays description with value 9

Charisma

Displays description with value 7

Intelligence

Displays description with value 9

Agility

Displays description with value 8

Luck

Displays description with value 9


Skills menu

Doesn't display anything yet

Currently working on this section.

Will soon display 3 submenus, keyboard/mouse/joystick/gamepad.

From these you will have the option to control ANY computer just by connecting a USB cable between the computer itself and the Teensy microcontroller.

Thought for later: add a wireless connection, although this will probably require drivers to be installed (destroys plug&play functionality), and will probably consume much more power.

06/04/13: The mouse functions are implemented (with the exception of mouse-scroll up/down), and they work like a charm.


Keyboard submenu

Well... I could explain every key here, but that would be a waste of space.

I will be working on a US International keyboard without numpad (not enough space on screen), so it'll probably become more like a laptop version.

Some things to take into consideration:

-Press CAPS or SHIFT for uppercase and/or other characters.

-CTRL, ALT, SHIFT and the right WIN button are modifier keys, meaning when you press one, it will highlight, until you press another (non-modifier) key.

-The left WIN button is a non-modifier key and functions as a normal single-press Super/Win key.

-It is not possible to use multiple modifier keys at the same time. I still need to update the code to allow such outlandish behaviour. Having CTRL and SHIFT selected and pressing on the letter S will result in the key combination SHIFT-S being sent first, followed by a CTRL-S.

More information can be found here.

Mouse submenu

Control mouse with directional keypad (8 directions)

Buttons to simulate LMB, MMB, RMB press.

Buttons to simulate holding down LMB, MMB, RMB to support Drag&Drop functions (press once to hold down, press another time to release).

Buttons to simulate Scroll Up and Scroll Down.

More information can be found here.

Joystick submenu

A bit of a weird one, Joysticks work on 6 axis, 32(!) buttons and 1 hat switch.

I never worked with Joystick controls before, but I suspect I'll get it right first try (how hard can it be?).

Joysticks work on 6 axis, 32(!) buttons and 1 hat switch, and all of these will be implemented.

Working so far: -X, Y & Z axis. -Left & right sliders


Still need to figure out the difference between the Z axis and Z-rotate (axis?)...


More information can be found here.

Gamepad submenu

Very similar to Joystick, only different button layout

More information can be found here.

Perks menu

Doesn't display anything yet

Also, not really sure what to put here, will most likely become computer control scripts such as:

-Windows Powershell & Linux shell scripts

-wget (TechInc?) wallpaper and set to screen script

-anything else?

General menu

Doesn't display anything yet

Will possibly contain statistics such as time used, SD space used/available and distance traveled (will be inaccurate, GPS doesn't always have a fix) and other fun statistics.

Page_2 a.k.a. ITEMS

The ITEMS page still needs to be filled, the layout exists but nothing has been added (yet).


Page_3 a.k.a. DATA

The DATA page is where most of the magic happens, it has 5 menus:

Local Map

The Local Map displays a map of the Netherlands, and once the GPS has a fix, a rectangle will appear as a 'You are here' indicator.

The plan is to divide this into 3 submenus, each showing a different zoom level of the map (1=country, 2=province, 3=city)

World Map

Same as the Local Map, except this displays a map of the world.

The plan is to divide this into 2 submenus, each showing a different zoom level of the map (1=world, 2=continent)

Quests

The Quest menu should display your active/finished quests, but because I do not know how to implement this yet, I decided to add the Audio sensors output here.

The code written for reading the microphones peak-to-peak is horrible, and doesnt function properly yet (should make use of interupts, not a timed interval).

Misc

The Misc menu displays the values from the Light Dependent Resistor.

The goal is to use this value to decrease the backlight on the TFT using a digital potentiometer automatically.

Radio

The Radio menu contains all controls for the FM Radio.

Turn on/off, Mute on/off, Seek up/down, Tune up/down, Volume up/down.

It also displays the freq. you are listening to, and if this is a mono or stereo signal.

At the moment RDS is not being processed, but will be in the near future.

Page_99 a.k.a. BRICKED

This page will be displayed if you choose the wrong password 4 consecutive times.

Turn the device off and on to retry, bricked mode is not permanent while prototyping :)


Page_100 a.k.a DISPLAY

The DISPLAY options contain:

-Backlight brightness level (not functioning until I have the dig. potentiometer).

-Image quality low/medium/high (this defines the prefix folder where images are stored).

-HUD color (to change foreground colors)

-Background color (to change... you guessed it...)

-Return button to return to last used page/menu/submenu


Page_101 a.k.a AUDIO

The AUDIO options contain: -Mute on/off (to mute the speaker, NOT the radio!)

-Return button to return to last used page/menu/submenu


Page_102 a.k.a CONTROL

The CONTROL options contain:

-LED1 on/off (turns on/off ultrabright LED1)

-LED2 on/off (turns on/off ultrabright LED2)

-LED3 on/off (turns on/off ultrabright LED3)

-LED4 on/off (turns on/off RGB LED4 RED)

-LED5 on/off (turns on/off RGB LED4 BLUE)

-LED6 on/off (turns on/off RGB LED4 GREEN)

-LASER on/off (turns on/off LASER pointer)

-ALL on/off (turns on/off everything)

-Return button to return to last used page/menu/submenu


Page_103 a.k.a GAMEPLAY

The GAMEPLAY options contain:

-PAGE1 (shortcut to goto page1)

-PAGE2 (shortcut to goto page2)

-PAGE3 (shortcut to goto page3)

-Return button to return to last used page/menu/submenu

List of parts and link to my suppliers

All components have been ordered from 7 different webshops: PJRC, EZtronics, Conrad, Floris.cc, Sparkfun Electronics, iPrototype.nl and AlphaCrucis.


On a sidenote:

I would rate all these webshops with 5/5 stars, with the exception of AlphaCrucis. It took them 5 weeks to respond to my mail why my order wasn't sent (one of the items is not in stock), and another 3 weeks to realize that this particular item would not be resupplied. This was when I finally received an email with the message 'your order has been shipped' and a second email with the message that a refund of somewhere around 3 euro have been initiated. When I finally received my package and checked the invoice, it turned out I had waited 8 weeks for F/M jumper cables...

Tools

Basetech Soldeerbout startset SH 1263 c3 230 V~ Vermogen 30 W Soldeerpunttype (omvang levering) Potloodvorm

Solder Wick

Hobby Knife

SparkFun Mini Screwdriver

SparkFun Inventor's Kit for Arduino - Carrying Case

Third Hand

Adhesive Bandages - RTFM (5 pack)

SparkFun Safety Glasses

Sensors & modules

Product name & link currently in use additional information
Triple Axis Accelerometer & Gyro yes in need of calibration
Line Tracking sensor no need to free pins and use 5v-3.3v logic level converter
Color Light Sensor no need to free PWM pins to connect RGB LED


Breakout voor Audio Plug no still needs to be soldered
Audio Plug female 3.5mm no still needs to be soldered
Adafruit Ultimate GPS Breakout - 66 channel w/10 Hz updates - V3 yes works quite well without external antenna
LSM303 Breakout Board - Tilt Compensated Compass yes needs calibrating
Humidity and Temperature Sensor - RHT03 no tested and works, but now unplugged to free pins for other uses
Logic Level Converter no not being used (yet)
8-channel Bi-directional Logic Level Converter - TXB0108 no not being used (yet)
MPL3115A2 Altitude/Pressure Sensor Breakout yes in need of calibration
SpeakJet no not connected, probably never will
Pulse Sensor no connected and worked, needs calibration, has been disconnected to free pins
Evaluation Board for Si4703 FM Tuner yes connected and works
Laser Card Module - Red yes connected through MCP23016 and works
Max Power IR LED Kit Max Power IR LED Kit no still needs to be soldered

Simple parts

Product name & link currently in use additional information
Steekprintplaat EIC-102 (l x b x h) 165 x 55 x 8.5 mm Aantal poolklemmen 830 yes currently houses the project
Bedradingsset EIC-J-XL Set steekbruggen (l x b x h) 205 x 145 x 40 mm yes whats left is in the space
Mipow Powertube 2600, zwart SP2600M-BK Mipow 2600M mobiele oplader no works perfectly, but not useful while prototyping
Breadboard met Jumpwires yes holds whatever didn't fit on the main breadboard anymore (mainly I2C devices)
Premium Jumpwires M/F yes bag of 10, 2 are in use for the A10 & A11 pins on the Teensy
Digitale Sensor kabel no not being used
Analoge Sensor kabel no not being used
Mini Speaker no was connected, but had to unplug to free pin for other uses
3x LED Wit (Extra bright) yes connected through the MCP23016 expander
20 in 1!Basic components mixed pack no unopened in my box in the space, still need to sort and put in proper storage boxes
6x Solderless Headers - 10-pin Straight yes a lot of these have been used, very useful buggers
2x Breadboard wire bundle yes same as above, 1 pack has been used, the other is in the jumperwire storage box
Black Metal Knob - 14x24mm no not being used, doesn't fit on my potentiometer
Key Switch - Small no not being used yet, one of the final things to be added
Coin Cell Battery - 20mm no tested and works, currently searching for a nice holder
10K Breadboard Potentiometer yes is being used to dim the TFT backlight
Surface Transducer - Small no not in use yet, needs soldering of two tiny pads
Electret Microphone Amplifier - MAX4466 with Adjustable Gain yes in use for the audio volume meter
LED Light Pipe 0.6" Round no not being used, not sure if it will either
3x LED Tactile Button - Red no haven't got a clue how to connect these at the moment
Resistor Kit - 1/4W (500 total) yes very useful, although I'm not sure why (only 20) 0 Ohm resistors are included...

Advanced parts

Product name & link currently in use additional information
Teensy USB Board, Version 3.0, with Header Pins yes the beating heart of this project.. connected and works :)
Micro SD Card Adaptor yes works very well, using SdFat beta (SdFatBeta20130207.zip) for optimized speed
Pin Expander (MCP23016) yes connected and works for output, need to use scope to test input
I2C Bus Expander (PCF8574AN) no not being used yet
LDR yes in use, works very well
Breadboard Power Supply USB - 5V/3.3V yes one of the best purchases I made, powers the breadboard with 5v on the top rail, and 3.3v on the bottom rail
MCP23017 - i2c 16 input/output port expander no not being used, had some issues connecting this, although its said to be faster/better
MOSFET Power Control Kit no still needs soldering
10x Resettable Fuse PTC yes a few of these have been connected (TFT screen & compass module)
Crystal 32kHz no needs to be soldered to the Teensy
2.8" 18-bit color TFT LCD with touchscreen breakout board - ILI9325 yes works excellent, bought from EZtronics but is no longer available there/on the site

Project page on PJRC.com

http://forum.pjrc.com/threads/17717-PIP-GRL-31415-(not-spam!)


Project videos on youtube

http://www.youtube.com/playlist?list=PLU5nSKNLjNrutxzlRTsA0mQmNgPrwgW7h

Useful links

http://www.instructables.com/id/A-3D-printable-Pip-Boy-3000/ (thnx Amx109!)