project

Preserving Info

Overall goal is to provide an build a framework for perserving information for future generations. Starting as a 100 day project Standards Data Format Test: ASCII Images: JPEG Storage (metadata) Text: Git Images: git-lfs? (may move to something more accessible)

Perserving Info Kickoff

Kicking off a 100 Day Project focused on buiding a system for perserving data long-term. Daily blog will ber located in the Perserving Info Project Space. Overall kind of excited - and gives me a nice personal project to grind away at. Good to get back into writing. And this blog serves as a good basis for the project - a complete text representation existing within My Primary and Secondary archive locations, in pure text.

Weather Station Overview

The goal is to build an Internet connection weather station. Besides the standard tempurature, pressure, and humidity it should also collect snowfall information (the trickiest part of the project) Equipment As of 12-31-2019, the equipment list of items being used: An Onion Omega2+ The board is fairly powerful from an embedded standpoint, and has built-in Wifi connectivity. It’s very well that just an Onion Omega2 would probably have plenty of space An Onion Arduino Dock: The other parts of the Weatherstation kit are Arduino base, so using this dock makes sense.

RFID Dog Feeder Overview

Modify a dog feeder to dispense food based on a known schedule and RFID tags put on the collar of each dog. Still in the early planning stages, it will hopefully help keep our dogs well fed, but also provide lots of data for analysis!

Moo Machine Overview

An Altair 8800 style machine designed to implement the “COW” programming language. It’s a really simplistic language, but is technically Turing complete. The machine itself is powered by a Arduino Mega (more for the IO pins then the actual processor) Original Project Homepage A copy of that content is below: Moo Machine: Experience the First Microcomputer Interface. Description: Toggle switches and LEDs were the interface for the first personal microcomputer, the Altair 8800.

Moo Machine Exmaple Program

Below are several example programs. Please refer to the language reference. For debugging purposes, use the Cow Language web implementation at http://www.frank-buss.de/cow.html #Hello World (from http://www.c2.com/cgi/wiki?HelloWorldInManyProgrammingLanguages [[ H in first memory position - 72 in ASCII ]] MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO [[ Print Current Memory Position ]] Moo [[ Add an additional 29 for the "e" - 101 ]] MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO [[ Print Current Memory Position ]] Moo [[ Add 7 more for the "l" = 108 ]] MoO MoO MoO MoO MoO MoO MoO [[ Print current twice for "ll" ]] Moo Moo [[ Add three for the "o" = 111 ]] MoO MoO MoO [[ Print ]] Moo [[ Reset memory to 0 ]] OOO [[ Add 44 for the "," character ]] MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO [[ Print ]] Moo [[ Add 116 for non-breaking space " " - 160 ]] MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO [[ Print ]] Moo [[ Subtract 41 for "w" - 119 ]] MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo MOo [[ Print ]] Moo [[ Subtract 8 for "o" = 111 ]] MOo MOo MOo MOo MOo MOo MOo MOo [[ Print ]] Moo [[ Add 3 for "r" = 114 ]] MoO MoO MoO [[ Print ]] Moo [[ Subtract 6 for "l" = 108 ]] MOo MOo MOo MOo MOo MOo [[ Print ]] Moo [[ Subtract 8 for "d" = 100 ]] MOo MOo MOo MOo MOo MOo MOo MOo [[ Print ]] Moo [[ Reset current memory back to zero ]] OOO [[ Add 33 for "!

Moo Machine Demostration

Two physical Moo Machines will be available for hands-on demonstrations. The first machine will be a scale-model of the Altair 8800. The physical layout and experience will attempt to match the Altair 8800 as closely as possible. A second machine will be a scaled down portable version, maintaining as much of the interface of the full scale model as possible. The Cow Programming Language will be used in lieu of the original 8080 machine language of the Altair 8800.

Moo Machine - Technical Overview

Hardware The Moo Machine is based around the Arduino Mega development board. An overview of the electrical components can be located here. The digital input and output pins on the Arduino are all that is necessary for the user interface. The input circuits is a pull-up design, with debouncing logic contained within the code. The outputs are simple LEDs. The Arduino Mega (ATMega 1280) provides enough input and output pins directly for the project.

Moo Machine - Schematic

The support circuitry for the Moo Machine is fairly simplistic. The left diagram shows a standard input circuit, which will be replicated nineteen times for each toggle switch. It is a standard pull-up configuration for both sides of the switch. The output circuits are represented by the right side of the diagram. Those circuits will be replicated 26 times for the various LED outputs for the project.

Moo Machine - Program

The interpreter and interface logic was written in C, using the Arduino libraries and IDE. More information is available at http://www.arduino.cc/. The Arduino Mega is the target platform. Source code for the version I demonstrated is located on Github, specifically for version 0.9. The full repo is at https://github.com/ssmiller25/moomachine/

Moo Machine - Moo Language Reference

The Moo Machine uses the code integer for instruction entry and display. Most program demonstrations use the actual instruction, which is easier to read. (from https://bigzaphod.github.io/COW/ Code Instruction Description 0 moo This command is connected to the MOO command. When encountered during normal execution, it searches the program code in reverse looking for a matching MOO command and begins executing again starting from the found MOO command.
Steve Miller BY-NC 4.0 | Rendered by Hugo | Subscribe