Skip to content

Instantly share code, notes, and snippets.

View kevinmcaleer's full-sized avatar

Kevin McAleer kevinmcaleer

View GitHub Profile
@kevinmcaleer
kevinmcaleer / music.py
Created January 11, 2025 19:59
Operation Pico code
# Kev's Music Player
# A simple music player for MicroPython
# @Author: Kevin McAleer
# @Date: 2025-01-11
import time
import machine
# Default configurations
DEFAULT_BPM = 120
@kevinmcaleer
kevinmcaleer / main.py
Created January 5, 2025 15:48
Hacky Sensor
from time import sleep
import dht
from machine import Pin, WDT
import network
from simple import MQTTClient
from wifi_config import WIFI_SSID, WIFI_PASSWORD
# Configuration
@kevinmcaleer
kevinmcaleer / highfive.py
Last active December 22, 2024 14:27
High Five Bot
# Import stepper motor driver - BYJ28
# import range finder code
from range_finder import RangeFinder
from stepper_28byj48 import BYJ28
from time import sleep
# Create a RangeFinder object
range_finder = RangeFinder(trigger_pin=1, echo_pin=0)
stepper = BYJ28([10,11,12,13])
@kevinmcaleer
kevinmcaleer / motor.py
Created December 14, 2024 22:01
Motor Control Library
from machine import Pin, PWM
class Motor:
def __init__(self, motor_pin_a, motor_pin_b, pwm_freq=1000):
# Initialize motor pins with PWM
self.pwm_a = PWM(Pin(motor_pin_a))
self.pwm_b = PWM(Pin(motor_pin_b))
self.pwm_a.freq(pwm_freq)
self.pwm_b.freq(pwm_freq)
self._speed = 0 # Speed range: 0 (stop) to 1 (full speed)
# BurgerBot version 3 library
# Kevin McAleer
# 14 December 2024
from motor import Motor
from range_finder import RangeFinder
from machine import Pin
class BurgerBot():
left_motor = Motor(1,2)
@kevinmcaleer
kevinmcaleer / syncthing.service
Last active April 19, 2024 09:01
syncthing_installer.sh
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization
Documentation=man:syncthing(1)
After=network.target
[Service]
User=pi
ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0
Restart=on-failure
RestartSec=5
@kevinmcaleer
kevinmcaleer / portainer-ce.sh
Created December 11, 2023 11:08
Portainer install
#!/bin/bash
docker run -itd --name Portainer -p 8000:8000 -p 9443:9443 -v /var/run/docker.sock:/var/run/docker.sock cr.portainer.io/portainer/portainer-ce:latest
@kevinmcaleer
kevinmcaleer / gpiozero_benchmark.py
Created September 17, 2023 11:47
GPIO Benchmarking tool
import time
from gpiozero import LED
# Setup
led = LED(17)
iterations = 100000 # Number of times the LED will be toggled on and off
# Benchmark
start_time = time.time()
@kevinmcaleer
kevinmcaleer / lesson_01_movement.ino
Last active September 10, 2023 14:02
SMARS Demo program
// Lesson 01 Movement
// www.smarsfan.com/play/lessons/lesson_01_movement
// set Motor A to Arduino Pins
int motor_A = 12;
int motor_B = 13;
// set the Motor Speed using the Arduino Pins
int motor_A_speed = 10;
int motor_B_speed = 11;
@kevinmcaleer
kevinmcaleer / tiny_code_reader.py
Created September 8, 2023 13:24
Tiny Code Reader
# SPDX-FileCopyrightText: 2023 Pete Warden
# SPDX-License-Identifier: Apache-2.0
#
# Example of accessing the Tiny Code Reader from Useful Sensors on a Trinkey
# using CircuitPython. See https://usfl.ink/tcr_dev for the full developer guide.
# Modified by Kevin McAleer to run on standard MicroPython (original code was CircuitPython)
from machine import I2C, Pin
import struct