Compare commits

..
2 Commits
3 changed files with 92 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
{
"Studuino Boilerplate": {
"prefix": "studuino_boilerplate",
"body": [
"#include <Arduino.h> // Basic header file",
"#include <Servo.h>",
"// Servomotor header file",
"#include <Wire.h>",
"// I2C device header file",
"#include <MMA8653.h> // Accelerometer header file",
"#include <MPU6050.h>",
"// Gyroscope header file",
"#include <IRremoteForStuduino.h>",
"// IR Receiver header file",
"#include <ColorSensor.h>",
"// Color Sensor header file",
"#include \"Studuino.h\" // Studuino header file",
"",
"Studuino board;",
"",
"void setup() {",
" $1",
"}",
"",
"void loop() {",
" $2",
"}"
],
"description": "Standard Studuino header includes and boilerplate"
},
"InitSensorPort": {
"prefix": "InitSensorPort",
"body": "board.InitSensorPort(${1:PORT}, ${2:TYPE});",
"description": "Initializes a sensor port."
},
"GetUltrasonicSensorValue": {
"prefix": "GetUltrasonicSensorValue",
"body": "GetUltrasonicSensorValue(${1:trigger}, ${2:echo})",
"description": "Retrieves the value of an Ultrasonic Sensor."
},
"GetGyroscopeValue": {
"prefix": "GetGyroscopeValue",
"body": "GetGyroscopeValue(${1|X_AXIS,Y_AXIS,Z_AXIS,GX_AXIS,GY_AXIS,GZ_AXIS|})",
"description": "Retrieves acceleration and angular velocity of a Gyroscope."
},
"Move": {
"prefix": "board.Move",
"body": "board.Move(${1:direction}, ${2:power}, ${3:duration}, ${4:stopMode});",
"description": "Moves DC Motors."
},
"LED": {
"prefix": "board.LED",
"body": "board.LED(${1:port}, ${2:color});",
"description": "Sets the LED color."
},
"Buzzer": {
"prefix": "board.Buzzer",
"body": "board.Buzzer(${1:pitch}, ${2:duration});",
"description": "Plays a sound on the buzzer."
}
}
+18
View File
@@ -0,0 +1,18 @@
# Studuino Development Instructions
## Environment Setup
- Run `./setup.sh --with-editor` to install `arduino-cli` and `clangd`.
- **Mandatory Configuration**: Create `.arduino_config.lua` in the root with `board` and `port` settings for `Arduino-Nvim` to function.
## Development Workflow
- **Boilerplate**: Use the `studuino_boilerplate` snippet to insert required headers and the `Studuino board` instance.
- **Snippets**: Project-specific snippets are located in `.vscode/studuino.code-snippets`.
- **Build & Upload**: Use the following Neovim leader keybindings:
- `<Leader>mc`: Compile (`:InoCheck`)
- `<Leader>mu`: Upload (`:InoUpload`)
- `<Leader>mm`: Serial Monitor (`:InoMonitor`)
## Repo Structure
- **Libraries**: Custom or adapted libraries are under `/libraries/`. Key libraries used in Studuino projects include:
- `ColorSensor`, `MPU6050`, `BusIOForStuduino`, `Clock`, `Servo`, `Adafruit_CircuitPlayground`, and `IRremoteForStuduino`.
- When adding new functionality, ensure the corresponding header files are included in your sketches as shown in the boilerplate.
+13
View File
@@ -16,6 +16,19 @@ This repository contains the Studuino hardware definition, the legacy Studuino l
- Optional `picocom` serial-monitor support. - Optional `picocom` serial-monitor support.
- A LazyVim/Arduino-Nvim configuration template. - A LazyVim/Arduino-Nvim configuration template.
## Libraries
Custom or adapted libraries are located in the `/libraries/` directory. These include:
- `ColorSensor`
- `MPU6050`
- `BusIOForStuduino`
- `Clock`
- `Servo`
- `Adafruit_CircuitPlayground`
- `IRremoteForStuduino`
When creating new programs, ensure the header files for the components you are using are properly included in your sketches. Use the provided `studuino_boilerplate` snippet to get started quickly.
## Requirements ## Requirements
- Arch Linux or another Linux distribution with `bash`. - Arch Linux or another Linux distribution with `bash`.