Import all arduino boilerplate
This commit is contained in:
parent
ac0daf2c6f
commit
2e56561f78
|
@ -1,4 +1,5 @@
|
||||||
# Backups/Generated Artifacts
|
# Backups/Generated Artifacts
|
||||||
|
_build
|
||||||
*.FCStd1
|
*.FCStd1
|
||||||
|
|
||||||
# Binaries
|
# Binaries
|
||||||
|
|
|
@ -0,0 +1,99 @@
|
||||||
|
# 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:mega
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
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)
|
|
@ -0,0 +1,37 @@
|
||||||
|
/*
|
||||||
|
Blink
|
||||||
|
|
||||||
|
Turns an LED on for one second, then off for one second, repeatedly.
|
||||||
|
|
||||||
|
Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
|
||||||
|
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
|
||||||
|
the correct LED pin independent of which board is used.
|
||||||
|
If you want to know what pin the on-board LED is connected to on your Arduino
|
||||||
|
model, check the Technical Specs of your board at:
|
||||||
|
https://www.arduino.cc/en/Main/Products
|
||||||
|
|
||||||
|
modified 8 May 2014
|
||||||
|
by Scott Fitzgerald
|
||||||
|
modified 2 Sep 2016
|
||||||
|
by Arturo Guadalupi
|
||||||
|
modified 8 Sep 2016
|
||||||
|
by Colby Newman
|
||||||
|
|
||||||
|
This example code is in the public domain.
|
||||||
|
|
||||||
|
https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
|
||||||
|
*/
|
||||||
|
|
||||||
|
// the setup function runs once when you press reset or power the board
|
||||||
|
void setup() {
|
||||||
|
// initialize digital pin LED_BUILTIN as an output.
|
||||||
|
pinMode(LED_BUILTIN, OUTPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
// the loop function runs over and over again forever
|
||||||
|
void loop() {
|
||||||
|
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
|
||||||
|
delay(1000); // wait for a second
|
||||||
|
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
|
||||||
|
delay(1000); // wait for a second
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
micro_ros_arduino
|
Loading…
Reference in New Issue