Giter Club home page Giter Club logo

I grew up learning to code on a variety of classic 8-bit microcomputers, including the venerable Apple II and Commodore 64. Over the ensuing years, however, my interest in programming sadly waned as my available discretionary time diminished, and the sedimentary layers of abstracted software complexity piled ever and ever higher.

In an effort to rediscover the joys of my adolescent explorations in electronic logic, I turned my attention toward learning the Arduino ecosystem of embedded development. Successfully overcoming the severe constraints of confined memory and limited CPU cycles seemed a far more satisfying mental challenge than studying yet another upstart flavor-of-the-month framework.

Baby's First µController

Apple II to Arduino

Rather than begin predictably with the ubiquitous but bulky Arduino Uno and its painfully basic IDE, I decided instead to start with the slightly more sophisticated Sparkfun Pro Micro as my introductory µC of study, along with Visual Studio Code and PlatformIO as my development environment and build toolchain.

  • Sparkfun's Pro Micro hosts an ATmega32U4 µC, which offers several advantages over the Uno's ATmega328P, most notably a built-in USB transceiver and native HID capabilities. This diminutive dev board also shares its wide pitch DIP form factor with a large selection of other various µCs.

  • VS Code's flexible configuration and editing features put it streets ahead of Arduino's primitive IDE, with syntax highlighting, smart code completion, convenient GitHub integration, advanced debugging, and endless extensions providing support for seemingly every language available.

  • PlatformIO expertly manages disparate source code repositories and sundry platform build targets while avoiding any proprietary dependencies. This toolchain provides powerful library management, integration with several different IDEs, and builds targeting a wide array of µC ecosystems.

All of the above tools are open source and are interchangeable with compatible workalikes, simplifying experimentation with different µC architectures using a variety of development environments on myriad modern operating systems.

Learning Goals

Since my extant programming skills are still somewhat passable, I'm able to forgo the intermediate "for-next" student studies and focus on sharpening my c++ syntax.

  • Interface with buttons, potentiometers, and rotary encoders.
  • Use the FastLED library to illuminate addressable RGB pixels.
  • Display UI using web browser and p5.js library to draw canvas.
  • Display UI using OLED via I2C and SPI.
  • Analyze live audio using a mic, FHT algorithm, and MSGEQ7 IC.
  • Emulate HID devices: keyboards, mice, gamepads, and MIDI.
  • Script with Bitlash serial command shell.

Projects

Individual projects are housed in their respective repositories:

  • ace-johnny: this profile readme, along with other documents and resources.

  • rotary_button-dev: library development for a rotary encoder button, displays HSV color on 8b neopixel with p5.js web UI via serial.

ace-johnny's Projects

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.