ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΡΠΌΠΎΡΡΠΈ Π½ΠΈΠΆΠ΅ β
This project is very interesting to me, because it solved one of my daily problems. I have a laptop that I watch YouTube and TV-series on, and sometimes, I need to adjust volume multiple times because of the volume flactuations in the videos. But the problem with manually adjusting the volume is that I need to minimize the screen and adjust the volume from the taskbar. This is very annoying. So, I thought of making a USB volume controller that I can use to adjust the volume without minimizing the screen. This project is the result of that thought.
This project is a USB volume controller using a rotary encoder and a Raspberry Pi Pico. The Pico is programmed to act as a USB HID device that sends volume commands to the host computer (Same as what keaboard or mouse do). The rotary encoder is used to control the volume. Software used in this project is CircuitPython and HID library from Adafruit.
There is a great article on this project that will help you on setting up the Pico and downloading the Adafruit library. You can find the article here.
- Raspberry Pi Pico
- Rotary encoder
- Breadboard
- Jumper wires
- USB cable
The reason behind these pins is that they perfectly allign with the rotary encoder pins and the board that I am using, which is Tiny2040. You can use any other board, but make sure to change the pins in the code accordingly.
ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ ΠΌΠ½Π΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΡΠ΅ΡΠ°Π΅Ρ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΌΠΎΠΈΡ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π½ΠΎΡΡΠ±ΡΠΊ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠΌΠΎΡΡΡ YouTube ΠΈ ΡΠ΅ΡΠΈΠ°Π»Ρ, ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠ½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π³ΡΠΎΠΌΠΊΠΎΡΡΡ ΠΈΠ·-Π·Π° ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΠΉ Π³ΡΠΎΠΌΠΊΠΎΡΡΠΈ Π² Π²ΠΈΠ΄Π΅ΠΎ. ΠΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΡΡΡΠ½ΠΎΠΉ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠ΅ Π³ΡΠΎΠΌΠΊΠΎΡΡΠΈ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ ΡΠΊΡΠ°Π½ ΠΈ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π³ΡΠΎΠΌΠΊΠΎΡΡΡ ΠΈΠ· ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π΄Π°Ρ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°Π΅Ρ. ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΏΠΎΠ΄ΡΠΌΠ°Π» ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ USB-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π³ΡΠΎΠΌΠΊΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΌΠΎΠ³ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ Π³ΡΠΎΠΌΠΊΠΎΡΡΠΈ Π±Π΅Π· ΡΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΡΠΊΡΠ°Π½Π°. ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ - ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠΎΠΉ ΠΌΡΡΠ»ΠΈ.
USB-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π³ΡΠΎΠΌΠΊΠΎΡΡΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ½ΠΊΠΎΠ΄Π΅ΡΠ° ΠΈ Raspberry Pi Pico. Pico Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠ°ΠΊ USB HID-ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π³ΡΠΎΠΌΠΊΠΎΡΡΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ (ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΠΈ ΠΡΡΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΎΡ-ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏ). ΠΠΎΠ²ΠΎΡΠΎΡΠ½ΡΠΉ ΡΠ½ΠΊΠΎΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π³ΡΠΎΠΌΠΊΠΎΡΡΡΡ. Π ΡΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ CircuitPython ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° HID ΠΎΡ Adafruit.
ΠΡΡΡ ΠΎΡΠ»ΠΈΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π½Π°ΡΡΡΠΎΠΈΡΡ Pico ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Adafruit. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΡΠ°ΡΡΡ Π½Π° Π°Π½Π³Π» Π·Π΄Π΅ΡΡ.
- Raspberry Pi Pico
- ΠΠΎΠ²ΠΎΡΠΎΡΠ½ΡΠΉ ΡΠ½ΠΊΠΎΠ΄Π΅Ρ
- ΠΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ°
- ΠΡΠΎΠ²ΠΎΠ΄Π°
- USB ΠΊΠ°Π±Π΅Π»Ρ
ΠΡΠΈΡΠΈΠ½Π° Π²ΡΠ±ΠΎΡΠ° ΡΡΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π²ΡΠ²ΠΎΠ΄Π°ΠΌ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ½ΠΊΠΎΠ΄Π΅ΡΠ° ΠΈ ΠΏΠ»Π°ΡΠ΅, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Tiny2040. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ ΠΏΠ»Π°ΡΡ, Π½ΠΎ Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄Ρ Π² ΠΊΠΎΠ΄Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
