I want to create a user definable menu system for the Raspberry PI computer. This will comprise of a small OLED display and 6 menu navigation (e.g. Left, Right, Up, Down, OK and Cancel) buttons. All aspects of the system will be defined in a simple text file that a user can modify to create their own custom menu / user interface.
The software should be written in C or C# but NOT Python.
The system will use a low cost, 4 pin I2C OLED graphics display, 128 x 64 ([url removed, login to view] or [url removed, login to view]) or higher to display different size text, including reverse video and small graphics (symbols) from the console command line and from within scripts. The display command should cater for text / graphic symbol, text size, text colour, text type (normal or reverse video), location etc.. When a new display command is executed, the display area for the new text / graphic symbol should be cleared before displaying the new content.
All configurable parameters for all GPIO pins will be read from the system ini / configuration file. Different GPIO pins may be configured as inputs or outputs. GPIO input pin monitoring is to be interrupt driven and NOT through software looping.
When a button is pressed that is linked to a GPIO pin, configured as an input, then an event will be triggered. Actions to be performed by the triggered event will be defined in the configuration file and include one or more of the following:
Clear whole or part of the screen
Display / clear a graphics icon
Run a program / script
Set the specidied GPIO pin (configured as an output) state to high / low
Display the contents of a small text file
So, when a particular button is pressed, I want the system to run specified scripts / programs or update the display (show / hide text / symbols) and or set the state of one or more GPIO output pins - as defined in the configuration file.
If no buttons have been pressed for a period, specified in the configuration file (say 10 mins) then I want the display to sleep (go blank) and wake up (resume previous display) when a button is pressed.
When the Raspberry PI system starts, it will load the necessary software as a service and read the configuration file to configure the GPIO pins and read the menu definition to create and display the menu on the OLED screen. You do not have to parse the configuration file
to create the menu, I will do that myself.
Project scope: What you need to deliver.
Read simple text configuration file and set all GPIO pin configurations
Provide a command / ability to update the display (text and graphics) as mentioned above from the console command line and from within scripts
Provide a simple menu with 6 options (e.g. Optio 1, Option 2, ... Option 6) that is displayed when the Raspberry PI system starts.
Menu navigation using the buttons.
When a menu option is selected, carry out the different tasks e.g. run a script, update / change display (text and or graphics), display a small text file.
When the cancel button is pressed, go back to displaying the previous menu.
If there no button has been pressed for a specidied period then the display is to go into sleep mode (blank) and come to life when a button is pressed (resume display - show same screen as before going into sleep mode).
If the system encounters an errors, these are to be logged (appended) to a file /var/log/[url removed, login to view] or the error file listed in the configuration file.
A sample configuration file is attached. This is just to give you an idea of how the GPIO settings are defined and how it could be used to create a new custom menu. As I mentioned, you do not have to build the custom menu, I can do that.
26 freelancers are bidding on average $534 for this job
Hi How are you As i am new here but working on online plate forms from the last 7 years I worked alot related to your work Thanks Relevant Skills and Experience work Proposed Milestones $555 USD - full