I made a logical order to wire my components, starting with the most complicated and working down. In the case of my encoder, I had to make sure it was a certain distance and position from my board. I didn't add conductors for the keyswitches yet.
I had some inspiration to write down my ideas for different screens. Each screen will represent a group of commands. For example, I could have a mouse emulating screen to control the cursor or a media control screen to play/pause, search, and change volume.
I removed the analog code from my program, and I realized that was most of what I'd been focusing on. Between the infrared detection and pressure-sensitive finger rods, I lost a lot of time. When I tested my discrete keyswitches, I saw a lot of noise, but it calmed down when I held a pull-up resistor across the terminals. I'll update the circuit.
I updated the circuit with pull-up resistors, but the problem didn't disappear. When I viewed the analog values, they looked steady, so I changed the code to recognize acceptable levels, then assigned arrow keys and moved a cursor around while wirelessly connected.
I wrote the encoder function that can differentiate between clockwise and counter-clockwise rotations. With previous microcontrollers, I had trouble because I wasn't using interrupt programming, but the ESP32 was fast enough that polling worked.
I gave on the encoder's pushbutton and removed the code until I can install physical pull-up resistors. I spent my time creating layers or sets. For example, one called "Arrow Keys" will type a different arrow when I press a button, and "Media control" can change volume and play or pause. These functions appear on the screen, and I can change them with the rotary encoder.
The rest of the summary posts have been arranged by date.
First time here?
Completed projects from year 1
Completed projects from year 2
Completed projects from year 3
Completed projects from year 4
Completed projects from year 5
Completed projects from year 6
Completed projects from year 7
Disclaimer for http://24hourengineer.blogspot.com and 24HourEngineer.com
This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.
All information on this blog, or linked by this blog, is 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 property or assets based on their post.
This blog, including pictures and text, is copyright to Brian McEvoy.
I had some inspiration to write down my ideas for different screens. Each screen will represent a group of commands. For example, I could have a mouse emulating screen to control the cursor or a media control screen to play/pause, search, and change volume.
I removed the analog code from my program, and I realized that was most of what I'd been focusing on. Between the infrared detection and pressure-sensitive finger rods, I lost a lot of time. When I tested my discrete keyswitches, I saw a lot of noise, but it calmed down when I held a pull-up resistor across the terminals. I'll update the circuit.
I updated the circuit with pull-up resistors, but the problem didn't disappear. When I viewed the analog values, they looked steady, so I changed the code to recognize acceptable levels, then assigned arrow keys and moved a cursor around while wirelessly connected.
I wrote the encoder function that can differentiate between clockwise and counter-clockwise rotations. With previous microcontrollers, I had trouble because I wasn't using interrupt programming, but the ESP32 was fast enough that polling worked.
I gave on the encoder's pushbutton and removed the code until I can install physical pull-up resistors. I spent my time creating layers or sets. For example, one called "Arrow Keys" will type a different arrow when I press a button, and "Media control" can change volume and play or pause. These functions appear on the screen, and I can change them with the rotary encoder.
The rest of the summary posts have been arranged by date.
First time here?
Completed projects from year 1
Completed projects from year 2
Completed projects from year 3
Completed projects from year 4
Completed projects from year 5
Completed projects from year 6
Completed projects from year 7
Disclaimer for http://24hourengineer.blogspot.com and 24HourEngineer.com
This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.
All information on this blog, or linked by this blog, is 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 property or assets based on their post.
This blog, including pictures and text, is copyright to Brian McEvoy.
Comments
Post a Comment