Computer Projects


Robotics Club Setup

Maker kits:

  1. Tools
    1. Build tray/mat (with edges, for roll-y parts)
    2. ESC bracelet
    3. Connector kits (JST PH) and crimpers for making cables
  2. Parts warehousing
    1. Tackle box with baggie system
  3. Documentation
    1. GoPro for video logging
    2. Rocket book
    3. DocOnce
    4. private git server
  4. Dev Environment
    1. Platforms
      1. IaaS: AWS Workspace
      2. PaaS: Platform.io
      3. Local: Raspberry Pi
    2. Software:
      1. Fritzing
      2. 3D CAD
        1. SolidPython (OpenSCAD) (because programming is better)
        2. DesignSpark Mechanical
        3. Opens .skp!
        4. But no linux
      3. Autodesk Fusion (but not free)
      4. Blockly
      5. Anaconda Python Env
      6. Atom

Projects:

  1. Init: Individual project options
    1. Basic battle bots
    2. Steampunk wearables
    3. Ornaments
  2. Main Missions: Group effort determined by vote
    1. Citizen science
    2. Tech-art integration

Requirements:

  • Grades
  • Portfolio
  • Teacher recommendation
  • Behavior

Coding DevEnv:

  • Visual programming (blockly-scratch-mindstorm)
  • Individual programming jobs with unit testing
  • Agile - Kanban - scrum
  • Arduino Studio must be installed locally, no good browser-based IDE (need to test PlatformIO though)

Home Internet Gateway

Description:

Cable modem, IoT gateway, wifi router/repeater, and firewall device.

User Story:

I just want the internet to work. I also want to protect my family and house, integrate with Domotics and IoT, and give the internet company their crap hardware back. Maybe I can even eventually dump the internet company completely for community-based wifi or a free-space optical link.

Feature Set:

  1. Parental Filtering and logging
  2. Directional Wifi
  3. Switching between internet sources
  4. Performance and health dashboard
  5. wikipedia and media cache
  6. privacy and ad blocking
  7. Othernet Integration (I so hope this project works)
  8. FSO link

Phasing:

  • configure basic access point (check functionality after each step)
  • Basic config shown here (first part only) including security (but not ufw firewall) set up shown here
    • Use wlan1 instead of on-board wlan0
  • Enable hostapd and dnsmasq logging
  • Open network via hostapd conf shown here
  • mod iptables to allow ssh in only
    • check with nmap -sS -p 1-65535
  • set up sshd with best practices
    • create a log of sites visited by MAC address
  • set up tcpdump to save link headers to MySQL (see code below)
  • The better option is to use a MITM proxy in transparent mode, but that requires users accepting and installing a certificate
  • use dash to create BI reports of traffic
  • link with MAC dbs and commonly-used domains DB
  • set up Dynamic DNS (see code below)
  • set up a DNS Sinkhole such as pi-hole or NoTrack to cut down on ads
  • use OpenDNS to cut down on phishing and increase DNS lookup speeds (Has to be set up in dnsmasq using option 6)
  • set up tor or a VPN
    • set up config landing page
      • Switch choice of wlan0 or eth0
      • Tune filters, dyndns, dns sink
      • Show dash traffic metrics
      • Show status metrics (by user)
  • swap cable modem
  • add external storage with media library
  • install othernet
  • build FSO tranceivers
  • Laser transmitter coupled to a photo transister receiver mounted on a spotting scope, with fiber optic modulators

BOM:

  1. Common Mobile Compute Platform (two, one for testing, one for production)

Notes:

GRAPHICS:

Line of sight between office and home.

CODE:

Link to the DNS code

CODE:

Link to the watcher code


Arduino Wind Instrument

Description:

An inexpensive and simple electronic wind instrument to learn digital music programming

User Story:

Real instruments are expensive, and you can only learn to play music…

Feature Set:

  • Breath and bite sensors
  • Sax fingering
  • Wireless midi port
  • FOSS full synth with effects

Phasing:

  • Pick up an Akai EWI
  • Make a portable sound system
  • Pick up the Zynthian kit parts

BOM:

Notes:


Motocomms

Description:

A simple and mostly off-the-shelf communication and audio system for helmets

User Story:

Helmet comm units are stupid expensive and sound terrible. And are additive to road noise. And clumsy to control and link. And vendor specific. And another thing to keep charged. And dumb in concept: who’s wants a 5 hr running conversation when we just need to communicate when stopped at an intersection about which way to turn?

I want a way to use my noise-reducing earbuds with an off the shelf radio through my phone so that I can also hear music or GPS.

Also, I like to keep my phone in my jacket pocket so there are no dangling wires. But I don’t want to have to look at the radio to use it or worry about charging it before riding.

Feature Set:

  1. Custom radio integration
    1. GMRS appears to offer best license-free cost-vs-performance, with usable range of a couple miles and cross-compatibility with FRS
  2. Custom-built HAM radio?
    1. Mesh wifi?
  3. App-based mixer for phone for multi-audio stream management (GPS, music, and comms at once!)
  4. Custom handlebar control to only activate mic during push-to-talk, or switch it to VOX for regular hands-free, or turn off music
  5. Charging bracket
  6. Cross-use capable for skiing, hiking, trekking, and emergencies that are out of cell range
  7. Components that are cheap enough to keep spares of or available enough to find anywhere

Phasing:

  1. Start with wired connectivity, with phone and radio in tank bag (done):
  2. Noise-cancelling earbuds but mounting the microphone is the tricky bit
  3. Build stereo-line mixer to combine radio, phone, and earbuds
  4. Add handlebar switch to mic for PTT
  5. Add wireless integration
    1. Build radio mount with charge bracket
    2. Build custom Bluetooth audio adapter to connect radio to phone

BOM:

  • TBD depending on radio

Commercial offerings:


Track GDD

  1. Use a (google?) calendar of observations to track growing degree days
    1. User enters garden events on the google calendar when it happens (ie sunflowers bloom)
    2. Next season the garden events are predicted
    3. can start off with a database of “known” GDD events (crops, etc)
    4. can track other seasonal things like honeybee activity, pest occurance, etc
    5. The program uses an online API to pull daily min/max temperatures for user’s locale and calculate GDD for each observed event from previous seasons
    6. can use long-term temp forecasts to predict occurances of events
    7. Updates calendar of predicted events
  2. Host on pythonanywhere as a web service
  3. References
  4. Calculating GDD
  5. Local temperature
    1. Onset datalogger
  6. DarkSky API

Tartan designer

  1. A gui-based designer for weaving
  2. A great use-case and teaching example of using graphics and Programming
  3. https://docs.python.org/3.3/library/turtle.html

Sample output.

Link to the code


Somerlot Shooting Support System (S4)

Description:

Combination of hardware and software for calculations, capturing data, and visualizing shot placement

User Story:

Long range precision shooting requires accouting for many variables, as well as testing. Recording all this is cumbersome. Viewing the shot with a spotting scope is difficult. Waiting to go down-range and observe results makes for a lot of wasted time. Unknown weather, distance, and load variables wastes a lot of ammo. Can a bespoke computing platform simplify it all and make it more enjoyable, efficient, and cheap?

Feature Set:

  1. Computes and then measures ballistics
  2. Variables for load, wind, pressure, distance (via GPS with point averaging)
  3. Trajectory Science lib
  4. stores data in a database
  5. Long-range wifi for networking back to phone
  6. Camera on target with webcam to phone, records placement in database
  7. Integrates with a chronograph like this one

Phasing:

  • Get a ballistics algorithm figured out
  • Create web-based UI
  • Build out hardware

BOM:

  1. RPi
  2. Camera sensor with lens

Retail support tools

Scheduler

Basic example of a rule-based genetic algorithm optimizer for finding optimal group schedules

Link to the code

Rewards Program Calculator

  1. Description
    1. This application was developed to track customer spending, in order to determine eligibility for rewards certificates. It relies on data exported from the POS system, and does not in any way touch any databases.
  2. Usage
    1. Overview
      1. Assuming that you created the spreadsheet correctly, usage is pretty self explanatory. There are only 3 buttons. However, if the application crashes, it should prompt you to automatically send an error report via email to the developer (Chris).
    2. Input
      1. This application reads in an excel spreadsheet that was exported from the EaglePOS system, which must include sales YTD for each customer, as well as mailing info. If the application can’t find the necessary data, it should let you know.
    3. Output
      1. This is the secret part, and will be filled in later.