Difference between revisions of "PIP-GRL 31415"

From Technologia Incognita
Jump to: navigation, search
(Keyboard submenu)
 
(5 intermediate revisions by one other user not shown)
Line 2: Line 2:
 
|picture=Pipboy3k.png
 
|picture=Pipboy3k.png
 
|ProjectSkills=Arduino, Basic electronics, Coding, UI Design, Not Being on Fire
 
|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
 
}}
 
}}
 
 
== What is it? ==
 
== 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.
Line 152: Line 151:
  
 
Some things to take into consideration:
 
Some things to take into consideration:
 +
 
-Press CAPS or SHIFT for uppercase and/or other characters.
 
-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.
 
-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.
 
-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].
 
More information can be found [http://pjrc.com/teensy/td_keyboard.html here].
Line 165: Line 171:
 
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 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. (still needs to be added)
+
Buttons to simulate Scroll Up and Scroll Down.
  
 
More information can be found [http://pjrc.com/teensy/td_mouse.html here].
 
More information can be found [http://pjrc.com/teensy/td_mouse.html here].
Line 175: Line 181:
  
 
Joysticks work on 6 axis, 32(!) buttons and 1 hat switch, and all of these will be implemented.
 
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].
 
More information can be found [http://pjrc.com/teensy/td_joystick.html here].
Line 446: Line 460:
 
== Project videos on youtube ==
 
== Project videos on youtube ==
 
http://www.youtube.com/playlist?list=PLU5nSKNLjNrutxzlRTsA0mQmNgPrwgW7h
 
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!)