Skip to content

8. Embedded programming

Instruction

Group Assignment

  • compare the performance and development workflows for other architectures

Individual Assignment

What I did this week

  • use and compare the performance of microbit, Arduino Pico and Seeeduino Xiao →in this page
  • browse the datasheet of ATtiny3216 I used → Individual Assignment
  • write some programs to control illuminating LEDs by using my programmer→Individual Assignment

Trial 1 : microbit

what is microbit

is a pocket-sized computer that introduces you to how software and hardware work together. It has an LED light display, buttons, sensors and many input/output features.

microbit.png

the microbit I used

  • version : v1.3x
  • IC: Nordic nR51822 by ARM
  • Core variant : Arm Cortex-M0 32 bit processor
  • Flash ROM : 256KB
  • RAM : 16KB
  • Speed : 16MHz
  • Debug : SWD, jlink/OB

moe specifications is here and instruction page is here

  • front image

microbit_f.jpeg

  • back image

microbit_b.jpeg

Trial 1-1 : test usage

  • Access to Microbit editor
  • edit the function on the visual programming
    • when pressing “A” bottun, illuminate the LED of (0,0)
  • edit the code in the visual programming

microbit_1.png

  • Click download and drag&drop to “microbit”
  • build done

    microbit_1r.jpeg

Trial 1-2 : taking advantage of display and accelerometer

  • edit the function on the visual programming

    • when pressing “A” bottun, illuminate the LED in the shape of “❤️”
    • when shaking the board, show striking “Hello!”
    • when pressing “B” bottun, clear screen

    microbit_2.png

  • done

microbit.gif

microbit_2r.jpeg

Trial 1-3 : combitation to the peripherals of loudspeaker

  • edit the function on the visual programming
    • when pressing “A” bottun, show icon of “❤️” and play melody

microbit_3.png

  • done

microbit_melody

Trial 1-4: switch between Blocks and programming language(Javascript or python)

microbit_4.png

The feeling to use

  • Designed so that even elementary school students can understand it, making it very easy and fun,
  • It is very easy to use that the connector is initialized by simply plugging it in again.
  • By switching programming languages, it is possible to determine which functions are realized in what kind of code and how they are implemented.

Trial2 : Arduino Pico

what is Arduino Pico

Arduino-Pico is a community port of the RP2040 (Raspberry Pi Pico processor) to the Arduino ecosystem, intended to make it easier and more fun to use and program the Raspberry Pi Pico / RP2040 based boards.

the Arduino Pico I used

  • IC : RP2040 by ARM
  • Dual ARM Cortex-M0+ @ 133MHz
  • 264kB on-chip SRAM in six independent banks
  • Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus
  • DMA controller
  • Fully-connected AHB crossbar
  • Interpolator and integer divider peripherals
  • On-chip programmable LDO to generate core voltage
  • 2 on-chip PLLs to generate USB and core clocks
  • 30 GPIO pins, 4 of which can be used as analogue inputs

more: datasheet

pico_pinout.png

specification is here

  • access to https://make.playpiper.com/

    pico1.png

  • build the function on the visual programming

    pico2.png

  • when clicking “Start”, the program is written to the board,

  • done

arduino.gif

reference

The feeling to use

  • It is very easy to write and run the program by pressing the bottun of “start”.
  • Less sophisticated UI than Microbit, but more scalable as it is connected to a bullet board.

Trial 3 : Seeeduino Xiao

What is Seeeduino Xiao

The Seeeduino XIAO is the smallest member of the Seeeduino family. It carries the powerful ATSAMD21G18A-MU which is a low-power microcontrollers.

seeeduino_xiao.png

The Seeeduino Xiao I used

  • IC: Atmel SAMD21 by ARM
  • Powerful CPU: ARM® Cortex®-M0+ 32bit 48MHz microcontroller(SAMD21G18) with 256KB Flash,32KB SRAM.
  • Flexible compatibility: Compatible with Arduino IDE.
  • Easy project operation: Breadboard-friendly.
  • Small size: As small as a thumb(20x17.5mm) for wearable devices and small projects.
  • Multiple development interfaces: 11 digital/analog pins, 10 PWM Pins, 1 DAC output, 1 SWD Bonding pad interface, 1 I2C interface, 1 UART interface, 1 SPI interface.

more: datasheet

xiao.jpeg

  • edit the blink program in arduino

xiao1.png

  • verify and upload to the XIao
  • done

xiao.gif

What I learned in this week

Individual Page


Last update: June 3, 2022