Category Archives: Computer Interface
using GPI pins on an arduino to run a keyboard
#include <Keyboard.h>
// Define the GPIO pins for CTRL+A, CTRL+B, CTRL+C, and CTRL+D keys
#define A_PIN 2
#define B_PIN 3
#define C_PIN 4
#define D_PIN 5
void setup() {
// Set up the GPIO pins as inputs with pull-up resistors
pinMode(A_PIN, INPUT_PULLUP);
pinMode(B_PIN, INPUT_PULLUP);
pinMode(C_PIN, INPUT_PULLUP);
pinMode(D_PIN, INPUT_PULLUP);
// Initialize the keyboard library
Keyboard.begin();
}
void loop() {
// Check if the CTRL+A pin is pressed
if (digitalRead(A_PIN) == LOW) {
// Press and release the CTRL+A key combination
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(‘a’);
delay(50);
Keyboard.releaseAll();
}
// Check if the CTRL+B pin is pressed
if (digitalRead(B_PIN) == LOW) {
// Press and release the CTRL+B key combination
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(‘b’);
delay(50);
Keyboard.releaseAll();
}
// Check if the CTRL+C pin is pressed
if (digitalRead(C_PIN) == LOW) {
// Press and release the CTRL+C key combination
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(‘c’);
delay(50);
Keyboard.releaseAll();
}
// Check if the CTRL+D pin is pressed
if (digitalRead(D_PIN) == LOW) {
// Press and release the CTRL+D key combination
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(‘d’);
delay(50);
Keyboard.releaseAll();
}
// Wait for a short period of time before checking the pins again
delay(10);
}
Arduino sketch – keyboard keys pressed with gpi
#include KEYBOARD.h
const int F9_PIN = 2;
const int F10_PIN = 3;
const int F9_LED_PIN = 4;
const int F10_LED_PIN = 5;
void setup() {
Keyboard.begin();
pinMode(F9_PIN, INPUT_PULLUP);
pinMode(F10_PIN, INPUT_PULLUP);
pinMode(F9_LED_PIN, OUTPUT);
pinMode(F10_LED_PIN, OUTPUT);
}
void loop() {
if (digitalRead(F9_PIN) == LOW) {
Keyboard.press(KEY_F9);
digitalWrite(F9_LED_PIN, HIGH);
delay(100);
Keyboard.release(KEY_F9);
digitalWrite(F9_LED_PIN, LOW);
}
if (digitalRead(F10_PIN) == LOW) {
Keyboard.press(KEY_F10);
digitalWrite(F10_LED_PIN, HIGH);
delay(100);
Keyboard.release(KEY_F10);
digitalWrite(F10_LED_PIN, LOW);
}
}
Python OSC device – Motarized fader for volume + mute switch and solo switch
import reapy
import OSC
# Create an OSC client to send messages to Reaper
client = OSC.OSCClient()
client.connect(("127.0.0.1", 8000))
# Create an OSC server to receive messages from the fader and switches
server = OSC.OSCServer(("127.0.0.1", 9000))
def handle_volume(path, tags, args, source):
volume = args[0]
# Set the volume of the track using the Reaper API
reapy.connect()
track = reapy.Track(1)
track.volume = volume
reapy.disconnect()
# Add a callback for the volume fader
server.addMsgHandler("/volume", handle_volume)
def handle_mute(path, tags, args, source):
mute = args[0]
# Set the mute of the track using the Reaper API
reapy.connect()
track = reapy.Track(1)
track.mute = mute
reapy.disconnect()
# Add a callback for the mute switch
server.addMsgHandler("/mute", handle_mute)
def handle_solo(path, tags, args, source):
solo = args[0]
# Set the solo of the track using the Reaper API
reapy.connect()
track = reapy.Track(1)
track.solo = solo
reapy.disconnect()
# Add a callback for the solo switch
server.addMsgHandler("/solo", handle_solo)
# Run the OSC server
st = threading.Thread(target=server.serve_forever)
st.start()
BESKAR2D2 – test board with RJ45
Counting Binary on your fingers
New keyboard SteelSeries apex 3
LPKF proto mat PCB prototype engraver
MacBook Pro Ubuntu installation
Crowtail console – https://www.elecrow.com/crowtail.html
From https://www.elecrow.com/crowtail.html
Faders A0-7
Screens D12-15
UART GNSS? PTP?
Arduino Project – Digitally Controlled Analog Surround Sound Panning – Open Source
For your enjoyment:
Digitally Controlled Analog Surround Sound Panning
Presentation:
Circuit Explination:
Presentation documents:
0 – TPJ – Technical Presentation
0 – TPJ556-FINAL report DCASSP-COMPLETE
0 – TPJ556-FINAL report DCASSP-SCHEMATICS V1
Project Source Code:
Using Mac with Avid Pro Tools as an AES67 router and mixer – Ward Beck Premo and 32ME
Using Mac with Avid Pro Tools as an AES67 router and mixer – Ward-Beck Premo and 32ME
Elevator Projects
I developed the Software, here are the visual basic files for you to download and learn from:
http://goanddosomething.com/Elevator/20151208.zip
Fixing Logitech trackball performance
I love these Logitech Marble Mouse trackballs, I have one for every computer. After a few years they slow down physically. Cleaning the dust off does not help enough, something different needed to be applied. I’ve been researching lubricants and oils, doing some tests with households; but I think I’ve found the perfect fluid. Ian Gomes of Union Sound Company made a recommendation a few years back for Penny and Giles faders. A quick amazon search lead me to Lucas Silicone Shock fluid. I must report that it is the perfect product for this application. If you need a drop, I’ll send you a q-tip of it in the mail.
Generating Code with spreadsheet for Keyboard Assignments of CADSOFT Eagle
I needed a way of Generating Code, lots of code. In cadsoft eagle, the Keyboard Assignments are completely user customizable. They have a script language that allows you to modify the software. I’ve used hundreds of the ULP and SCRs and decided to write my own Generator.
Necessity is the mother of all innovation.
Ward-Beck – D/A-DA – (24) Ch AESDigital to (120) +4dB Analog
Got to see a trafic control
GREEN HOME MONITORING SYSTEM
Title: GREEN HOME MONITORING SYSTEM – TRANSMITTER
Author: ANTHONY P KUZUB
DATE: 2015 04 01
Description:
REMOTE MONITORING TRANSMITTER
The GREEN HOME MONITORING SYSTEM controls, monitors then transmits the
status of three room lights to a remote monitoring station.
The code below is the local control and transmitter
Three light switches along with motion sensors control the functionality
of the rooms lights.
When the system is enabled:
The light turns on When motion is detected.
Once motion is detected a five second counter Starts.
If motion is not detected within the five seconds The light shut
off saving power.
When the system is disabled:
The light switch controls The light Directly.
A Peak Power cost value is captured based on the time of day.
To Test this feature: apply a slowly 10mHz Sine wave 1.25
Vpp with offset of 0.625V offset to TP7
This moving sine wave is converted to digital by means of A/D convertor
This power cost value is displayed on the segment display
Indicating the value of power throughout the day.
The Status of The System state, switch position, motion detection, Light
status, and Energy cost, are transmitted to a remote monitoring station
via serial port 1.
Title: GREEN HOME MONITORING SYSTEM – RECEIVER
Author: ANTHONY P KUZUB
DATE: 2015 04 01
Description:
The GREEN HOME MONITORING SYSTEM controls, monitors then transmits the
status of three room lights to a remote monitoring station.
The code below is the remote monitoring station
This program receives 2 bytes of data from the transmitter through
Serial port 1. The data is decoded and displayed on a screen by access
of serial port 2 of the controller.
A workstations TERMINAL session connects a a com port to the hardware receiver.
SESSION CONFIGURATION:
BAUD RATE: 9600
DATA BITS: 8
PARITY: NONE
FLOW CONTROL: NONE
EMULATION: ANSI
The Status of the system, switch positions, motion detection, Light status,
and Energy PEAK VALUE displayed on the terminal screen.
A Changing Peak Power cost is applied proportionaly to room cost acumulators.
By Pressing the respective key on the terminal keyboard, the rooms cost will
reset to zero.
Please note that with the exception of the push buttons all states are
ACTIVE HIGH
Designing a network for school
SUCCESSIVE APPROXIMATION ADC CALCULATOR
Was working on my Micro controller reading and had a need for a calculator to check my work for Successive Approximation of Analog to Digital signals.
WIKIPEDIA: A successive approximation ADC is a type of analog-to-digital converter that converts a continuous analog waveform into a discrete digital representation via a binary search through all possible quantization levels before finally converging upon a digital output for each conversion.