Difference between revisions of "PIP-GRL 31415"
(→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= | + | |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. | + | 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 | |
---|---|
Participants | ZTiK |
Skills | Arduino, Basic electronics, Coding, UI Design, Not Being on Fire |
Status | Finished |
Niche | Electronics |
Purpose | World domination |
Contents
- 1 What is it?
- 2 Things to know
- 3 What happens when you turn it on
- 4 Overview of page functionality
- 4.1 Page_0 a.k.a. LOGIN
- 4.2 Page_1 a.k.a. STATS
- 4.3 Page_2 a.k.a. ITEMS
- 4.4 Page_3 a.k.a. DATA
- 4.5 Page_99 a.k.a. BRICKED
- 4.6 Page_100 a.k.a DISPLAY
- 4.7 Page_101 a.k.a AUDIO
- 4.8 Page_102 a.k.a CONTROL
- 4.9 Page_103 a.k.a GAMEPLAY
- 5 List of parts and link to my suppliers
- 6 Project page on PJRC.com
- 7 Project videos on youtube
- 8 Useful links
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 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?)
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
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.
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.
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.
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.
Very similar to Joystick, only different button layout
More information can be found here.
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?
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
SparkFun Inventor's Kit for Arduino - Carrying Case
Adhesive Bandages - RTFM (5 pack)
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!)