/kgiori.github.io

sharing tech info to make the world a better place

Primary LanguageHTMLMozilla Public License 2.0MPL-2.0

Below I share tidbits of useful technology. I like giving workshops to help people get started building their own technology solutions, especially those that incorporate open software and hardware. Ask me if you have ideas for groups who would appreciate a live workshop. The benefits of open source collaboration are immense, which is why I've always been a fan of free and open source software (FOSS), open hardware, and open 'silicon' approaches. We all stand on the shoulders of other brilliant women and men.

TechWomen Emerging Leaders and Fellows

Here are ideas to improve STEM learning in your community.

Recommended Hardware

  • MicroBlocks Activity Kit - available globally through distributor RS Online
  • BBC micro:bit and accessories (key components: micro:bit, piezo or other speaker, NeoPixel LEDs)
  • Other electronics: small batteries, LEDs, resistors, alligator clips

Recommended Software

Learning Content

MicroBlocks Activity Card lessons and videos supporting the Kit.

  1. Use Buttons to Control LEDs
    Make LED Animations
    lesson - video
  2. Display Messages by Scrolling Text
    Create a Magic 8-Ball
    lesson - video
  3. Radio Communications
    Do Text Messaging Using Only 2 Buttons!
    lesson - video 1 - video 2
  4. Creating Sounds
    Play the Tune Happy Birthday
    lesson - video
  5. Light up LEDs in Many Colors
    Here Comes an Ambulance
    lesson - video
  6. Read Electronic Sensors
    Graph Sensor Values to See the Big Picture
    lesson - video 1 - video 2
  7. Count Your Steps
    Alert! Alert! Backpack Security Monitor and Alarm
    lesson - video
  8. Be a Scientist and Collect Data
    Remote Data Logging Using the Radio
    lesson - video
  9. Make a Game
    Play the Simon (Memory) Game
    lesson - video
  10. Turn a Flashlight into a Remote Control
    Play Flashlight Tag
    lesson - video - long video
    Or follow this playlist of all the videos.

Introduction to Electronics

Technology References

Free and open source software for physical computing that is just plain faster and easier than anything else I've tried. The IDE is blocks-based but the blocks actually run as byte code on the microcontroller. It supports many libraries, including one to easily build your own WebThings out of any of the supported 32-bit MCU boards. Unlike Snap4Arduino, these MicroBlocks programs run even after you disconnect the board from your computer. This is not just for kids!

Tutorials - Wiki - Hour of code

WebThings was spun out from Mozilla IoT in December 2020. I run the WebThings Gateway on a Raspberry Pi 4 to power my own private smart home. I can use my voice (locally and privately) to control things. I love the convenience of putting things on automated schedules. This fully open and community supported project helps to bring IoT devices to the web, in a private, secure, and interoperable manner. (Note I am biased as I used to work on this project at Mozilla, leading advocacy, expanding industry and strategic relationships, and bringing it to educators via the MicroBlocks WebThings library.)

Snap! is also an amazing programming environment, but interaction is focused on the computing platform you are doing the development on (e.g. a laptop). It runs in a browser. It goes beyond Scratch -- as far as your imagination can go with first class programming constructs.

Snap4Arduino lets you tie the UI of your computer with the real world of microcontroller boards that can run Arduino and Standard Firmata. Like MicroBlocks, it is a superb way to engage in programmable interaction with the physical world. However, it does require that the microcontroller remain tethered to the computer.

When I'm not programming in blocks, I prefer to use PlatformIO to program any MCU hardware, especially those that support the Arduino framework. In fact, the way I build and upload the MicroBlocks virtual machine (VM) onto several niche microcontroller boards is using the extremely versatile PlatformIO tool. I wish all semiconductor (chip) makers would support a PlatformIO build environment and examples for their products!

Enjoy!