Go Down

Topic: New LCD user interface and face plate (Read 5 times) previous topic - next topic

liudr

I have been known for my phi-panel family of LCD keypad panels. Recently I have been modifying my firmware, PCB, and face plates to support a lot of different key arrangements.
Here is some rendering (with screws conveniently omitted):



The first set of two panels have rotary encoder as up/down control, encoder shaft switch as enter and up to 5 more buttons at any of the 6 indicated locations.




The second set of two panels have 4 buttons forming arrows up/down/left/right and 4 more optional keys for enter and other functions.


You can decide to use less keys and glue or tape the laser cut hole pads in place. You can also decide which button is going to be enter or 1,2,3 by wiring the button pins to different pins on the LCD panel.
The LCD panels are the most sophisticated kind you can get for arduino, including almost all ASCII control characters such as \n \r \b etc and escape characters to do positioning. It also integrates the best menu system you can get on board so all you need to do is sending a plain text such as Serial.print(""\eFMenu:\nItem 1\nItem2\n~); it will render the menu and interact with user via the keypad and return to arduino the selected item.
When in normal mode, you will receive characters representing a key pressed so the processing is super easy.
With the different firmwares, you can go between matrix keypad and rotary keypad layout or directional keypad. I may even add a navigation keypad with a digital stick on it and additional locations for keys.

Any suggestions, comments?

FYI, this is the matrix keypad version:




robtillaart

Hi Liudr,

Still busy optimizing to the ultimate Phi panel?

I like layout 1 and 2 the most. The layouts 3 & 4 are too messy, more chance on errors imho.

idea:
Have you ever thought about rotating a 4 x 16 by 90°? to make a (virtual) 16 x 4 LCD, which includes a rotated font?
It would need a wrapper class around the normal LCD class to get addressing right (student project?)
Call it the VLCD() class for the Verti panel with VertiFont?

Just thinking out loud,








Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

DuaneB

Big fan of the rotary control, was planning to add a pot as a rotary control on my lap timer project - using a button to scroll through 500 laps you start seriously thinking of alternatives by about lap 80.

Duane B

rcarduino.blogspot.com

liudr


Hi Liudr,

Still busy optimizing to the ultimate Phi panel?

I like layout 1 and 2 the most. The layouts 3 & 4 are too messy, more chance on errors imho.

idea:
Have you ever thought about rotating a 4 x 16 by 90°? to make a (virtual) 16 x 4 LCD, which includes a rotated font?
It would need a wrapper class around the normal LCD class to get addressing right (student project?)
Call it the VLCD() class for the Verti panel with VertiFont?

Just thinking out loud,




Thanks Rob. You don't have to use all the keys / holes on the layout 3 and 4. Say if you want u/d/l/r/enter, you can just keep the laser cut piece in the other holes so you only see 5 keys. Also you can decide which location you want your enter key to sit and wire accordingly :) I've ordered parts for all layouts so in a few weeks there will be actual pictures.

About the vertical fonts, it will be hard for the character displays. There are only 8 custom character memory for the display so there won't be enough to make out the vertical display plus the 4*8 matrix can't be broken. I'll have to use a graphic display (next step!).

liudr


Big fan of the rotary control, was planning to add a pot as a rotary control on my lap timer project - using a button to scroll through 500 laps you start seriously thinking of alternatives by about lap 80.

Duane B

rcarduino.blogspot.com


You are right Duane B. A rotary encoder is digital but the speed you turn it is analog. If you want to get to a number quickly, you turn faster. You can't do that with a button. You have to wait for it to bounce back before pushing it another time. I used to have a buttons lib that does repeat after holding and dash after holding for too long but you always over or under shoot and the pain :)

The rotary encoder is the way to go. BTW, even without the face plate, one can still use the circuit and the LCD backpack to form their own arrangement.

So where do you shop for your rotary encoder knobs? I have a hard time finding one with no mark on it. Most of them always have a line mark that ruins the rotary encoder's nature as "turn all you want you're not getting anything if it's not powered".

Go Up