Skip to content

Instantly share code, notes, and snippets.

Avatar

Alasdair Allan aallan

View GitHub Profile
@aallan
aallan / webserver.py
Created February 2, 2023 16:35
A webserver on a Raspberry Pi Pico W controlling the onboard LED.
View webserver.py
import network
import socket
import time
from machine import Pin
led = Pin("LED", Pin.OUT)
ssid = 'SSID'
password = 'PASSWORD'
View mastodon_followers.py
import rp2
import time
import network
import urequests as requests
# Connect to wireless network
SSID = 'NETWORK NAME'
PASSWORD = 'NETWORK PASSWORD'
rp2.country('GB')
View picow_ntp_client.py
import network
import socket
import time
import struct
from machine import Pin
NTP_DELTA = 2208988800
host = "pool.ntp.org"
@aallan
aallan / ap_webserver.py
Created July 7, 2022 13:43
Running a web server on an wireless Access Point for Raspberry Pi Pico W in MicroPython
View ap_webserver.py
import socket
import network
import machine
ssid = 'MicroPython-AP'
password = '123456789'
led = machine.Pin("LED",machine.Pin.OUT)
ap = network.WLAN(network.AP_IF)
@aallan
aallan / async_webserver.py
Created July 4, 2022 15:38
An asynchronous webserver written in MicroPython to turn an LED on/off on a Raspberry Pi Pico W
View async_webserver.py
import network
import socket
import time
from machine import Pin
import uasyncio as asyncio
led = Pin(15, Pin.OUT)
onboard = Pin("LED", Pin.OUT, value=0)
@aallan
aallan / tensorflow_example.py
Last active February 28, 2022 14:59
Simple TensorFlow Lite and Picamera2 example
View tensorflow_example.py
#!/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.
View widget.js
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.
View simpleclock.js
// 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
View creditCard.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
View analog.ino
#define Debug Serial
float average = 0.0;
float total = 0.0;
int count = 0;
void setup() {
analogReadResolution(12);
pinMode(A0, INPUT);
Debug.begin(9600);