Advanced keyboard commands, like arrow keys, delete, and return were important but non-printing characters, and characters with no glyph, are more troublesome than regular glyph characters. Before addressing this part of the program the issue of "Num Lock," "Caps Lock," and in this case
"Special Lock," was fixed.
When the program only typed lower case letters a switch/case structure could route all the key presses to the desired glyph. To add the three different shift modes a switch/case structure was added to each button combination. This significantly added to the length of the program but the nested switch statements were simple repetitions and already have a line reserved for the eventual keyboard codes.
Each lock has a reserved boolean which is set high after double pressing the desired shift key. Only one bit can be set at a time. Pressing a different shift button will cancel any other lock including when the shift is pressed for the related lock. In other words, if the CapsLock is currently engaged but the number shift key is pressed the CapsLock is canceled and the next typed character will be a number.
To do:
The rest of the posts for this project have been arranged by date.
First time here?
Completed projects from year 1.
Completed projects from year 2.
When the program only typed lower case letters a switch/case structure could route all the key presses to the desired glyph. To add the three different shift modes a switch/case structure was added to each button combination. This significantly added to the length of the program but the nested switch statements were simple repetitions and already have a line reserved for the eventual keyboard codes.
Each lock has a reserved boolean which is set high after double pressing the desired shift key. Only one bit can be set at a time. Pressing a different shift button will cancel any other lock including when the shift is pressed for the related lock. In other words, if the CapsLock is currently engaged but the number shift key is pressed the CapsLock is canceled and the next typed character will be a number.
Not final code
To do:
- Program Arduino Micro to act as wired keyboard
- Add advanced characters
Add locking keys like Caps Lock and Num Lock- Make list of unused chords
- Add macro commands
- Add SoftwareSerial port to Micro to send ASCII data to Bluefruit.
- Use the SoftwareSerial port to "type" data to the USB keyboard.
- Route incoming data to Bluefruit as well.
- Modify servos for continuous rotation.
- Automate wrist mount.
- Make model and OpenSCAD code public
- Write keyboard code
The rest of the posts for this project have been arranged by date.
First time here?
Completed projects from year 1.
Completed projects from year 2.
Disclaimer for http://24hourengineer.blogspot.com/
This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.
All
information in this blog, or linked by this blog, are not to be taken
as advice or solicitation. Anyone attempting to replicate, in whole or
in part, is responsible for the outcome and procedure. Any loss of
functionality, money, property or similar, is the responsibility of
those involved in the replication.
All digital communication regarding the email address 24hourengineer@gmail.com becomes
the intellectual property of Brian McEvoy. Any information contained
within these messages may be distributed or retained at the discretion
of Brian McEvoy. Any email sent to this address, or any email account
owned by Brian McEvoy, cannot be used to claim property or assets.
Comments
to the blog may be utilized or erased at the discretion of the owner.
No one posting may claim claim property or assets based on their post.
This blog, including pictures and text, is copyright to Brian McEvoy.
2015-08-12 (W)
Comments
Post a Comment