Softata: Blockly 101
softata rpipico firmata arduino csharp grove swagger asp.net blockly
More info about Softata Blockly including a link to a viewing of it on Azure.
About Softata
- The repository djaus2/soft-ata
- Blog posts: 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.
Topic | Subtopic | |
This Category Links | ||
Category: | Softata Index: | Softata |
Next: > | Softata | Blockly Functions |
< Prev: | Softata | Blockly ... The Holy Grail |