Protocol Comparison Explorer
Run the Protocol Comparison Explorer MicroSim Fullscreen
Edit this MicroSim in the p5.js Editor
About This MicroSim
Students can select the appropriate protocol (I2C, SPI, UART, 1-Wire) for a given sensor or peripheral based on its wire count, speed, and use case.
This interactive MicroSim supports a Understand (L2) learning objective: students can compare the concept through hands-on exploration rather than passive reading. It accompanies Chapter 8: Communication Protocols — I2C, SPI, and UART.
How to Use
Use the controls below the drawing area to explore the simulation. Move the sliders, press the buttons, and watch how the display changes. Try to predict what will happen before you change a control, then check whether you were right.
Embedding This MicroSim
You can add this MicroSim to any web page with the following HTML:
1 2 3 4 | |
Specification
The full specification below was extracted from Chapter 8: Communication Protocols — I2C, SPI, and UART.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
Lesson Plan
Grade Level
Ages 10-18 (primary audience: beginning makers and programmers)
Duration
10-15 minutes
Learning Objective
Students can select the appropriate protocol (I2C, SPI, UART, 1-Wire) for a given sensor or peripheral based on its wire count, speed, and use case.
- Bloom Level: Understand (L2)
- Bloom Verb: compare
Activities
- Explore (5 min): Open the MicroSim and try each control to see what it does.
- Predict & Test (5 min): Before moving a control, predict the result, then test it.
- Connect to Code (5 min): Relate what you see to the MicroPython code in the chapter.
Assessment
Ask students to explain, in their own words, how changing each control affects the outcome and how that maps to the MicroPython program.
References
- Chapter 8: Communication Protocols — I2C, SPI, and UART - the chapter this MicroSim supports.
- p5.js Reference - documentation for the p5.js library used to build this MicroSim.
- MicroPython Documentation - official MicroPython language and library reference.