Skip to content

Instantly share code, notes, and snippets.

View simonprickett's full-sized avatar
💭
I'm not your friend on Facebook.

Simon Prickett simonprickett

💭
I'm not your friend on Facebook.
View GitHub Profile
@simonprickett
simonprickett / flipdot_raspberry_pint.py
Created June 5, 2023 10:43
Flip dot Python example for Raspberry Pint meetup
from pyflipdot.pyflipdot import HanoverController
from pyflipdot.sign import HanoverSign
from serial import Serial
import random
import time
ser = Serial('/dev/ttyUSB0')
controller = HanoverController(ser)
sign = HanoverSign(address=6, width=84, height=7)
@simonprickett
simonprickett / flipdot_raspberry_pint.js
Last active June 5, 2023 10:44
Flip dots example with Node.js for Raspberry Pint talk
import FlipDot from 'flipdot-display';
const flippy = new FlipDot('/dev/ttyUSB0', 6, 7, 84);
async function sleep(millis) {
return new Promise((resolve) => {
setTimeout(resolve, millis);
});
}
flippy.once('open', async function() {
@simonprickett
simonprickett / main.rs
Last active November 28, 2021 16:57
Raspberry Pi Traffic Lights Example in Rust
use std::{thread, time};
use std::sync::Arc;
use std::sync::atomic::{AtomicBool, Ordering};
use ctrlc;
use rust_gpiozero::LED;
fn main() {
let keep_going = Arc::new(AtomicBool::new(true));
let kg = keep_going.clone();
@simonprickett
simonprickett / Program.cs
Created August 21, 2021 17:56
C# .NET code for Raspberry Pi GPIO Traffic Lights Article
using System;
using System.Device.Gpio;
using System.Threading;
namespace trafficlights
{
class Program
{
static void Main(string[] args)
{
void setup() {
M5.begin();
M5.M5Ink.clear();
InkPageSprite.creatSprite(0, 0, 200, 200);
drawScreen("Press to start!", 0);
playTone(1);
}
@simonprickett
simonprickett / pomodoro.c
Created June 6, 2021 16:47
Pomodoro Timer: Update an in progress timer.
if (currentState != STATE_IDLE) {
unsigned long timeNow = millis();
if (timeNow - startTime >= MILLIS_IN_ONE_MIN) {
minsRemaining--;
if (minsRemaining == 0) {
playTone(3);
// Work out what state comes next...
if (currentState == STATE_WORKING) {
@simonprickett
simonprickett / pomodoro.c
Created June 6, 2021 16:05
Power down the Pomodoro timer.
if (M5.BtnPWR.wasPressed()) {
drawScreen("Bye, love you!", 0);
playTone(1);
delay(3000);
M5.M5Ink.clear();
delay(1000);
currentState = STATE_IDLE;
M5.PowerDown();
}
void setup() {
M5.begin();
M5.M5Ink.clear();
InkPageSprite.creatSprite(0, 0, 200, 200);
drawScreen("Press to start!", 0);
playTone(1);
}
@simonprickett
simonprickett / server.js
Created May 23, 2021 15:28
Getting Started with Express Part 1: Database information route
app.get('/dbinfo', (req, res) => {
const dbKeys = Object.keys(db);
const info = {
size: dbKeys.length
};
if ('true' === req.query.details) {
info.keys = dbKeys;
}
@simonprickett
simonprickett / server.js
Created May 23, 2021 15:24
Getting Started with Express Part 1: Get key value route
app.get('/get/:key', (req, res) => {
res.json({ value: db[req.params.key]});
});