4. Embedded Programming¶
Setup/Schedule¶
Class/issue/#7¶
- February 12: global eval started
- March 9: US Daylight Savings Time
- by March 1: student+local+global intro meetings
- April 9-23: break, midterm
- preceding weekly assignments due
- student+local+global review meetings
- review assignments and final plan
- sort into likely/possible/unlikely to finish this cycle
- June 4: weekly assignments due
- June 9-13: final presentations
- June 16-20: student+local+global review meetings
- June 23: global eval decisions deadline
- July 4-11: FAB25
Assignment¶
Group Assignment¶
Group Assignment
demonstrate and compare the toolchains and development workflows
for available embedded architectures
Assessment FAQ
Is it enough for the group assignment if we compare different microcontrollers in theory?
Answer: No, You need to physically program devices from at least two different MCU families using different toolchains. Simulation is ok only for individual assignment.
Processor families | Chip name | in-system development | Ref. | Example |
---|---|---|---|---|
AVR | ATtiny44, ATmega328P | ISP | Arduino ISP FA2018 |
ArduinoUno(ArduinoISP) > t44Board |
AVR 1-series | ATtiny412 ,1614 ,3216 | UPDI | FA2020 | USBSerialCable > UPDI > t412Board |
ARM | SAMD11C | JTAG/SWD | Bali Fest2022 | XiaoSAMD21(Daplink) > SAMD11Board |
Xtensa | ESP32 | FTDI USB-Serial |
Barduino FA2020 |
USBSerialCable > BrduinoBoard |
Individual Assignment¶
Individual Assignment
browse through the data sheet for your microcontroller
Document what you learned from reading the data sheet
Individual Assignment
write a program for a microcontroller,
and simulate its operation,
to interact (with local input &/or output devices)
and communicate (with remote wired or wireless connections)
Simulate - Wokwi
interact
- some sort of input and output
communicate
- to send messages to and back
Individual Assignment
extra credit: test it on a development board
extra credit: try different languages &/or development environments
different languages &/or development environments
Development environment | Language |
---|---|
Arduino IDE | Arduino |
Thonny | MicroPython |
Pico SDK + VScode | C/C++ |
Tip
Pico SDK + VScode
https://github.com/raspberrypi/pico-sdk?tab=readme-ov-file
Raspberry Pi Pico Visual Studio Code extension
Linenums¶
Tips: Markdown
No line mumber
``` cpp
line1
line2
line3
```
line1
line2
line3
Line mumber from 1
``` cpp linenums="1"
line1
line2
line3
```
1 2 3 |
|
mkdocs.yml
markdown_extensions:
- pymdownx.highlight:
# linenums: true #コメントアウトのままで必要な時にだけ都度linenums="1"と書けばよい
if it dosen’t work on non_index.md, try this
```cpp linenums="1" title="example.cpp"
line1
line2
line3
```
example.cpp | |
---|---|
1 2 3 |
|