Skip to content

ganicke/pxt-hacking-stem

 
 

Repository files navigation

Hacking STEM Build Status

Support for Hacking STEM activities in micro:bit. For Hacking Stem activities you will need excel add-on Data Streamer as well. To download Data Streamer click here. This extension helps build the code for emitting serial data in the format required by Data Streamer excel addon.

Usage

Go to https://makecode.microbit.org, click on the gearwheel menu and select Extensions, search for hacking stem and select this extension. Once you load the extension you should see a new category named DataStreamer. Hacking Stem extension sets the baud rate of serial output to 9600 as required by data streamer add-on in excel.

Following are the API reference:

writeNumber

The ||dataStreamer.writeNumber|| block writes a number to the serial port as a floating point number.

dataStreamer.writeNumber(1.52, 2);

Parameters

  • value is the floating point number to write to the serial port
  • decimal digits is the number of decimal digits to write. Default is 2.

Example 1

For example,

dataStreamer.writeNumber(1.52);

writes the following number to serial 1.52

Example 2

This example reads the analog signal on pin P0, scales it to 3.3v and writes it to serial with 4 decimal digits precision.

let mv = 0
basic.forever(() => {
    mv = pins.analogReadPin(AnalogPin.P0) * 3.3 / 1023
    dataStreamer.writeNumber(mv,4)
})

writeLine

The ||dataStreamer.writeString|| block writes a new line to the serial port.

dataStreamer.writeLine();

Example: Writing values in a loop

This program writes a series of accererlation values to the serial port repeatedly.

basic.forever(function () {
    dataStreamer.writeNumber(input.acceleration(Dimension.X))
    dataStreamer.writeLine()
})

writeString

The ||dataStreamer.writeString|| block writes a string to the serial port, without starting a new line afterward.

dataStreamer.writeString(",");

Parameters

  • text is the string to write to the serial port

Example: Writing comma seperated values in a loop

This program writes a comma , seperated x,y,z acceleration values to the serial port repeatedly..

basic.forever(function () {
    dataStreamer.writeNumber(input.acceleration(Dimension.X))
    dataStreamer.writeString(",")
    dataStreamer.writeNumber(input.acceleration(Dimension.Y))
    dataStreamer.writeString(",")
    dataStreamer.writeNumber(input.acceleration(Dimension.Z))
    dataStreamer.writeLine()
})

writeNumberArray

The ||dataStreamer.writeNumberArray|| block writes a array of numbers to the serial port as a comma seperated values, without starting a new line afterward.

dataStreamer.writeNumberArray([0,1,2]);

Parameters

  • text is the string to write to the serial port

Example: Writing comma seperated values in a loop

This program writes a comma , seperated x,y,z acceleration values to the serial port repeatedly.

let acc: number[] = []
basic.forever(function () {
    acc[0] = input.acceleration(Dimension.X)
    acc[1] = input.acceleration(Dimension.Y)
    acc[2] = input.acceleration(Dimension.Z)
    dataStreamer.writeNumberArray(acc)
    dataStreamer.writeLine()
})

setBaudRate

The ||dataStreamer.setBaudRate|| sets the baud rate. Default is 9600 for datastreamer

dataStreamer.setBaudRate(9600);

Parameters

  • rate is the number for the baud rate

License

MIT

Supported targets

  • for PXT/microbit (The metadata above is needed for package search.)

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Packages

No packages published

Languages

  • TypeScript 85.6%
  • C++ 12.4%
  • Makefile 2.0%