Skip to content

Instantly share code, notes, and snippets.

View aallan's full-sized avatar

Alasdair Allan aallan

View GitHub Profile
@aallan
aallan / tensorflow_example.py
Last active February 28, 2022 14:59
Simple TensorFlow Lite and Picamera2 example
#!/usr/bin/python3
import tflite_runtime.interpreter as tflite
import sys
import os
import argparse
import cv2
import numpy as np
@aallan
aallan / widget.js
Created December 5, 2019 13:34
Additional code to add widgets into a Bangle.js application when using the Web IDE. Needs to be included at the top of your code.
var WIDGETPOS={tl:32,tr:g.getWidth()-32,bl:32,br:g.getWidth()-32};
var WIDGETS={};
function drawWidgets() { for (var w of WIDGETS) w.draw(); }
require("Storage").list().filter(a=>a[0]=='=').forEach(widget=>eval(require("Storage").read(widget)));
setTimeout(drawWidgets,100);
@aallan
aallan / simpleclock.js
Last active December 5, 2019 12:10
A simple clock app for the Bangle.js JavaScript-powered smart watch.
// drawWidgets() is added by bootloader.js when loading a clock app, but when you upload via the IDE it just
// resets the watch and skips out running bootloader.js completely. So add the relevant code from the bootloader.
var WIDGETPOS={tl:32,tr:g.getWidth()-32,bl:32,br:g.getWidth()-32};
var WIDGETS={};
function drawWidgets() { for (var w of WIDGETS) w.draw(); }
require("Storage").list().filter(a=>a[0]=='=').forEach(
widget=>eval(require("Storage").read(widget)));
setTimeout(drawWidgets,100);
@aallan
aallan / creditCard.swift
Created October 29, 2019 21:31
Luhn algorithm implemented in Swift
let creditCardNumbers = [
4964149475059987,
4898620401632387,
4393958570449195,
4751492711160905,
4437340772573099,
]
let valid = creditCardNumbers.filter
{ number in
@aallan
aallan / analog.ino
Last active September 2, 2019 17:15
Testing the analogRead() function on the SAMD21 micro-controller
#define Debug Serial
float average = 0.0;
float total = 0.0;
int count = 0;
void setup() {
analogReadResolution(12);
pinMode(A0, INPUT);
Debug.begin(9600);
@aallan
aallan / cooling.py
Last active November 5, 2020 11:29
Toggle a cooling fan on and off to keep the Raspberry Pi between 70 and 75C
#!/usr/bin/env python3
import sys
import os
import time
import vcgencmd as vc
from gpiozero import OutputDevice
def main():
fan = OutputDevice(18)
@aallan
aallan / measure.py
Last active November 5, 2020 11:29
Measuring the CPU temperature and clock speed of the Raspberry Pi once a second and logging it to a file.
#!/usr/bin/env python3
import sys
import os
import time
import vcgencmd as vc
def main():
start_time = time.time()
fb = open("/home/pi/readings.txt","a+")
@aallan
aallan / benchmark_xnor.py
Created May 23, 2019 14:50
Benchmarking script for the Xnor Platform SDK on the Raspberry Pi
#!/usr/bin/env python3
import sys
import os
import logging as log
import argparse
import subprocess
from timeit import default_timer as timer
from PIL import Image
@aallan
aallan / benchmark_tf_lite.py
Created May 8, 2019 11:06
benchmarking script for TensorFlow Lite on the Raspberry Pi
#!/usr/bin/env python3
import tensorflow as tf
import sys
import os
import logging as log
import argparse
import subprocess
from timeit import default_timer as timer
@aallan
aallan / benchmark_edgetpu.py
Last active August 28, 2020 08:18
Benchmarking script for TensorFlow Lite on EdgeTPU-based hardware
#!/usr/bin/env python3
import platform
PLATFORM = platform.system().lower()
GOOGLE = 'edge_tpu'
INTEL = 'ncs2'
NVIDIA = 'jetson_nano'
PI = 'raspberry_pi'
IS_LINUX = (PLATFORM == 'linux')