More info about Softata Blockly including a link to a viewing of it on Azure.

About Softata

As per previous posts, NETCoreBlockly has been used to turn an ASP.NET Core API wrapper of the SoftaTabLib C# library, that facilitates the remote orchestration of a RPi Pico W running in Arduino mode using the Earle F. Philhower, III Pico W Board Support Package implementation, into a Blockly programming environment for the Pico. Softata is focused upon using the Grove shield and Grove peripherals. Whilst Blockly programming for a number of Arduino devices using Grove peripherals is available using CodeCraft, this is not available for the Pico with the BSP as used here.

Soft-ata

This consists of:

  • Arduino Softata sketch
    • Starts by setting up a TCP service
    • Receives and interprets commands from the Lib
    • Actions the commands and and returns the results.
    • Uses existing Arduino Device libraries for connected devices.
      • For each of Actuators, Displays and Sensors, there is a defined interface for each device type which make use to the relevant Arduino library.
  • SoftataLib (Lib)
    • C# library of functions
    • These call functions on the Pico via its TCP server and gets responses.
  • Console example using the Lib
  • Blazor example using the Lib
  • ASP.NET Core API app
    • Wrappers the Lib as web interface using Controllers
    • Can use Swagger interface
    • Alternatively can use Blockly mode to program.

Try it

SoftaWebAPI has been deployed to Azure: softatawebapii /BlocklyAutomation You can try creating a program but can’t run it for now. There are many examples available.

See a later blog on how to actually run a Blockly Softata app from this service.

Examples

As stated oin the previous post there are a number of example Blockly Softata apps that orchestrate Softata on the Pico which can be accessed from the Examples menu in the Blockly app:

View examples’ raw code on GitHub here

The Examples:

{
    {
        "id":  "StartBlocks",
        "description":  " Softata Start Example",
    },
        {
        "id":  "BME280-Sensor-I2C0",
        "description":  "Grove BME280 Sensor Example using I2C0",
    },
    {
        "id":  "BME280-IoTHub-Telemetry-I2C0",
        "description":  "Grove BME280 IoT Hub Telemetry I2C0",
    },
    {
        "id":  "BME280-Bluetooth-Telemetry-I2C0",
        "description":  "Grove BME280 Bluetooth Telemetry I2C0",
    },
    {
        "id":  "DHT11-Sensor-pin-16",
        "description":  "Grove DHT11 Sensor Example using pin 16",
    },
        {
        "id":  "Neopixel8-Display-pin-16",
        "description":  "Neopixel8 Display Example using pin 16",
    },
        {
        "id":  "OLED096-Display-I2C0",
        "description":  "Grove OLED096 Display using I2C0",
    },
        {
        "id":  "Pot-LED-Pins-26-18",
        "description":  "Pototentiometer-LED Example using pins 26 and 18 respectively",
    },
        {
        "id":  "Servo-Pin-16",
        "description":  "Servo Example using pinn16",
    },
        {
        "id":  "Switch-LED-Pins-16-18",
        "description":  "Switch-LED Example using pins 16 and 18 respectively",
    },
        {
        "id":  "Test-ADC-Pot-Pin-26",
        "description":  "Test ADC-Potentiometer Example using pin26",
    },
        {
        "id":  "Test-PWM-LED-Pin-18",
        "description":  "Test PWM-LED Example using pin 18",
    },
        {
        "id":  "Urange-Sensor-pin-16",
        "description":  "Grove Ultrasonic Range Sensor Example using pin 16",
    }
}

Note that as part each example’s id (the file name is actually the id with .txt as the file type), is a specification of the default connectivity required.


 TopicSubtopic
   
 This Category Links 
Category:Softata Index:Softata
  Next: > Softata
<  Prev:   Softata