Compare commits

...

2 Commits

Author SHA1 Message Date
Kenwood 5564f0db95 Fix all! 2022-01-04 20:14:58 +00:00
Kenwood 2e56561f78 Import all arduino boilerplate 2022-01-04 13:52:55 -05:00
5 changed files with 128 additions and 0 deletions

2
.gitignore vendored
View File

@ -1,5 +1,7 @@
# Backups/Generated Artifacts
_build
*.FCStd1
version.h
# Binaries
*.stl

104
motor_controller/Makefile Normal file
View File

@ -0,0 +1,104 @@
# A makefile for building the motor controller code.
# Uses arduino-cli, adapted from Steven Hale and others arduino make file practices
#
# 2021
PROJ := motor_controller
# What board to build for and its core
CORE ?= arduino:avr
FQBN ?= arduino:avr:nano
# Tools, their links and versions
ARDUINO_CLI_VERSION :=
ARDUINO_CLI_URL := https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh
ARDUINO_LINT_VERSION :=
ARDUINO_LINT_URL := https://raw.githubusercontent.com/arduino/arduino-lint/main/etc/install.sh
# The version and time we're compiling from
GIT_VERSION := "$(shell git describe --abbrev=4 --dirty --always --tags)"
COMPILED_DATE := "$(shell date)"
# Treat all warnings as errors.
BUILDPROP := compiler.warning_flags.all='-Wall -Wextra -Werror'
# Locations
ROOT := $(PWD)
BINDIR := $(ROOT)/_build/bin
BUILDDIR := $(ROOT)/_build
# What port to build on
ifndef SERIAL_DEV
ifneq (,$(wildcard /dev/ttyUSB0))
SERIAL_DEV = /dev/ttyUSB0
else ifneq (,$(wildcard /dev/ttyACM0))
SERIAL_DEV = /dev/ttyACM0
else
SERIAL_DEV = unknown
endif
endif
.PHONY: all help build upload version release requirements
# Do everything
all: tools requirements version build
help:
@echo
@echo "Targets:"
@echo " lint De-lint the software."
@echo " build Build the software."
@echo " upload Upload the software."
@echo " requirements Fetch all requirements."
@echo
# Set VERBOSE=1 to not run in --silent
ifndef VERBOSE
.SILENT:
endif
# Only build the code
build: version $(PROJ).ino
$(BINDIR)/arduino-cli core install $(CORE)
$(BINDIR)/arduino-cli compile -b $(FQBN) $(PROJ)
# Only upload the software
upload: version build $(PROJ).ino
$(BINDIR)/arduino-cli upload -b $(FQBN) $(PROJ) -p $(SERIAL_DEV)
# Only update the version
version:
echo "#define VERSION \"$(GIT_VERSION)\"" > version.h
echo "#define COMPILED_ON \"$(COMPILED_DATE)\"" >> version.h
# Generate an artifact
release: build $(PROJ).ino
$(BINDIR)/arduino-cli compile -b $(FQBN) $(PROJ) --output-dir $(BUILDDIR)
# Only fetch the requirements
requirements:
@if [ -e requirements.txt ]; \
then while read -r i ; do echo ; \
echo "---> Installing " '"'$$i'"' ; \
$(BINDIR)/arduino-cli lib install $$i ; \
done < requirements.txt ; \
else echo "---> MISSING requirements.txt file"; \
fi
# Monitor the serial (debug) output.
# Requires minicom
monitor: upload
minicom -c on -D $(SERIAL_DEV) -b 115200
lint:
$(BINDIR)/arduino-lint --compliance strict
# Fetches all the tools required
tools:
mkdir -p $(BINDIR)
curl -fsSL $(ARDUINO_CLI_URL) | BINDIR=$(BINDIR) sh -s $(ARDUINO_CLI_VERSION)
curl -fsSL $(ARDUINO_LINT_URL) | BINDIR=$(BINDIR) sh -s $(ARDUINO_LINT_VERSION)

View File

@ -0,0 +1,13 @@
# Motor Controller
## Notes on custom libs
micro ros is not in the lib repo i guess? so you gotta enable unsafe libs and install from git
change `enable_unsafe_install: true` in your `arduino-cli.yaml`
use this to init this file
```
./_build/bin/arduino-cli config init
```

View File

@ -0,0 +1,8 @@
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println(millis());
delay(1000);
}

View File

@ -0,0 +1 @@
--git-url https://github.com/micro-ROS/micro_ros_arduino.git