Difference between revisions of "HeadsUp"

From Squared Wave
Jump to: navigation, search
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
==HeadsUp!==
 
 
 
[[File:Headsuplogo.png|frame|Logo for HeadsUp]]
 
[[File:Headsuplogo.png|frame|Logo for HeadsUp]]
 +
__TOC__
  
A simple pygame interface for a heads up display (HUD) intended to work with [VuFine headsets](https://www.vufine.com/) and [Raspberry Pi](https://www.raspberrypi.org/). It is the joint effort of two people who have never met.  
+
A simple pygame interface for a heads up display (HUD) intended to work with [https://www.vufine.com/ VuFine headsets] and [https://www.raspberrypi.org/ Raspberry Pi]. It is the joint effort of two people who have never met.  
  
- Code by [C.Barrett](http://www.directive0.com)
+
- Code by [http://www.directive0.com C.Barrett]
  
- Design by [S.Caem](mailto:thedigitons@gmail.com)
+
- Design by [mailto:thedigitons@gmail.com S.Caem]
  
 
The basic design intent of this program is to allow users to be able to access text and image reference, to view sensors related to the environment, and to trigger and receive IFTTT webhook events all from a simple wearable computing rig. It aims to offer some functionality approaching the level of products like Google Glass or HoloLens but without any augmented reality.  
 
The basic design intent of this program is to allow users to be able to access text and image reference, to view sensors related to the environment, and to trigger and receive IFTTT webhook events all from a simple wearable computing rig. It aims to offer some functionality approaching the level of products like Google Glass or HoloLens but without any augmented reality.  
Line 14: Line 13:
  
  
 +
===Status===
 +
 +
As of January 30th 2018 Development is complete. The project should be taken by others and built upon.
  
===What works at present:===
+
====What works at present:====
  
 
* Basic layout and interface.
 
* Basic layout and interface.
Line 22: Line 24:
 
* CPU and RAM status monitoring
 
* CPU and RAM status monitoring
 
* WIFI SSID name reporting (not 100% yet)
 
* WIFI SSID name reporting (not 100% yet)
 +
* Grabs ICS calendar events from a Google Calendar feed.
  
===What is left to be done:===
+
====What is left to be done:====
 
* Numerous tiny bugs
 
* Numerous tiny bugs
 
* Recieve IFTTT alerts
 
* Recieve IFTTT alerts
Line 64: Line 67:
  
 
==Download==
 
==Download==
[https://github.com/directive0/HeadsUp/blob/master/README.md Github Link]
+
[https://github.com/directive0/HeadsUp Github Link]
  
 
== Installation==
 
== Installation==
Line 72: Line 75:
 
* use raspi-config to change your resolution to 1280x720 60hz
 
* use raspi-config to change your resolution to 1280x720 60hz
  
* Ensure your machine has the appropriate version of Python and its dependencies as listed above.  
+
* Ensure your machine has the appropriate version of Python and its dependencies as [https://squaredwave.com/wiki/index.php?title=HeadsUp#Python_Dependencies listed above].  
  
 
* Clone the git repo to your machine  
 
* Clone the git repo to your machine  
  <nowiki>
+
  <nowiki>git clone https://www.headsup.com/directive0/HeadsUp</nowiki>
git clone https://www.headsup.com/directive0/HeadsUp
+
</nowiki>
+
  
 
* Open a terminal and navigate to the HeadsUp folder
 
* Open a terminal and navigate to the HeadsUp folder
  
  <nowiki>
+
  <nowiki>cd HeadsUp</nowiki>
cd HeadsUp
+
</nowiki>
+
  
- Issue the command and the program will start
+
* Issue the command and the program will start
  
  <nowiki>
+
  <nowiki>python3 main.py</nowiki>
python3 main.py
+
</nowiki>
+
  
 
===Configuring HeadsUp===
 
===Configuring HeadsUp===
Line 97: Line 94:
 
In order to use IFTTT triggers from the IFTTT tile you need to create a text file containing your Key and the Event Name seperate by a comma as below and make a folder named "triggers" for it to reside in. You can find your key by logging into IFTT and going to https://ifttt.com/maker_webhooks and then clicking the "documentation" button at the top right.  
 
In order to use IFTTT triggers from the IFTTT tile you need to create a text file containing your Key and the Event Name seperate by a comma as below and make a folder named "triggers" for it to reside in. You can find your key by logging into IFTT and going to https://ifttt.com/maker_webhooks and then clicking the "documentation" button at the top right.  
  
Name the text file what you want the button to be labelled that activates it; "Turn on lights.txt" for example and make a folder in the HeadsUp directory called "triggers". Put the text file in the folder named "triggers"
+
Name the text file what you want the button to be labelled that activates it; "Turn on lights.txt" for example.
 +
 
 +
Make a folder in the HeadsUp directory called "triggers" if one does not already exist. Put the text file in the folder named "triggers"
  
 
Do not add any extra information to the text file or any extra lines or else it will not work.  
 
Do not add any extra information to the text file or any extra lines or else it will not work.  
  
There is an example included in this git that you can edit with your own IFTTT key and alert name. You will need to create a WebHooks applet on the IFTTT website that receives the appropriate trigger.  
+
There is an example included in this git that you can edit with your own IFTTT key and alert name. You will need to create a WebHooks applet on the IFTTT website that receives the appropriate trigger.
 
+
  
 
====Notes:====
 
====Notes:====
Line 111: Line 109:
  
 
Add any images you wish to display to the "images" folder
 
Add any images you wish to display to the "images" folder
 
  
 
== Keys==
 
== Keys==
  
 
HeadsUp is designed to work with 5 basic buttons: Up, Down, Left, Right, and Enter. There is one exception as the "Q" key will quit the program. Eventually I will break out these keys into a configure file so that you only need to edit the configure file if you want to make changes to them.
 
HeadsUp is designed to work with 5 basic buttons: Up, Down, Left, Right, and Enter. There is one exception as the "Q" key will quit the program. Eventually I will break out these keys into a configure file so that you only need to edit the configure file if you want to make changes to them.
 +
 +
[[Category:Python]]
 +
[[Category:Pygame]]
 +
[[Category:Software]]

Latest revision as of 19:38, 15 October 2019

Logo for HeadsUp

A simple pygame interface for a heads up display (HUD) intended to work with VuFine headsets and Raspberry Pi. It is the joint effort of two people who have never met.

- Code by C.Barrett

- Design by S.Caem

The basic design intent of this program is to allow users to be able to access text and image reference, to view sensors related to the environment, and to trigger and receive IFTTT webhook events all from a simple wearable computing rig. It aims to offer some functionality approaching the level of products like Google Glass or HoloLens but without any augmented reality.

A secondary desire of the project is that it be modular and allow users with a moderate knowledge of Python to create their own tile layouts if they desire, but this aspect is not fully realized yet.


Status

As of January 30th 2018 Development is complete. The project should be taken by others and built upon.

What works at present:

  • Basic layout and interface.
  • Basic handling for notes.
  • User created IFTTT events can be added and triggered.
  • CPU and RAM status monitoring
  • WIFI SSID name reporting (not 100% yet)
  • Grabs ICS calendar events from a Google Calendar feed.

What is left to be done:

  • Numerous tiny bugs
  • Recieve IFTTT alerts
  • Open Images
  • Final bug testing and cleanup
  • Deciding whether to make user-generated tiles a big feature. It will require considerable refactoring (and I'm lazy -d0)

Required Hardware:

CPU

  • HeadsUp was designed for the Raspberry Pi 3 running Raspbian but will function on almost any computer running Python3, or if desired Python2+.

Display

  • HeadsUp was designed to use the VuFine headset as its main display but it will run fine on any monitor that can meet a 1280x720 resolution.
  • In order to get HeadsUp to run at the proper resolution I've found you will need to deploy it from inside a display manager like LightDM. Running from terminal often makes HeadsUp display at half size for some reason.

Interface

  • No keyboard interface has been defined yet but the software is being designed to support 5 basic controller buttons. I am leaning towards a Wii Nunchuck as my interface device but any 5 button interface could be supported in the future. For now the software polls pygame for simple keyboard presses.

Required Software

HeadsUp is designed to run on Python 3.

Python Dependencies

  • pygame
  • psutil
  • requests
  • os (included with python)
  • time (included with python)

If these modules are not already present on your machine they should be easy to install with apt-get, pip like so:

sudo apt-get install python3 python3-dev python3-pygame python3-pip

sudo pip3 install psutil requests

Download

Github Link

Installation

  • if using a vufine display and raspberry pi running raspbian make sure to disable overscan in your /boot/config.txt file
  • use raspi-config to change your resolution to 1280x720 60hz
  • Ensure your machine has the appropriate version of Python and its dependencies as listed above.
  • Clone the git repo to your machine
git clone https://www.headsup.com/directive0/HeadsUp
  • Open a terminal and navigate to the HeadsUp folder
cd HeadsUp
  • Issue the command and the program will start
python3 main.py

Configuring HeadsUp

IFTTT:

In order to use IFTTT triggers from the IFTTT tile you need to create a text file containing your Key and the Event Name seperate by a comma as below and make a folder named "triggers" for it to reside in. You can find your key by logging into IFTT and going to https://ifttt.com/maker_webhooks and then clicking the "documentation" button at the top right.

Name the text file what you want the button to be labelled that activates it; "Turn on lights.txt" for example.

Make a folder in the HeadsUp directory called "triggers" if one does not already exist. Put the text file in the folder named "triggers"

Do not add any extra information to the text file or any extra lines or else it will not work.

There is an example included in this git that you can edit with your own IFTTT key and alert name. You will need to create a WebHooks applet on the IFTTT website that receives the appropriate trigger.

Notes:

Add any text files you wish to view from HeadsUp! in the "notes" folder.

Images:

Add any images you wish to display to the "images" folder

Keys

HeadsUp is designed to work with 5 basic buttons: Up, Down, Left, Right, and Enter. There is one exception as the "Q" key will quit the program. Eventually I will break out these keys into a configure file so that you only need to edit the configure file if you want to make changes to them.