Skip to content

Commit

Permalink
Merge remote-tracking branch 'AlexanderWillner/DEV' into DEV
Browse files Browse the repository at this point in the history
As proposed in xfjx#55
  • Loading branch information
StephenKing committed Jun 1, 2020
2 parents 1f274b4 + d31bebc commit d571428
Show file tree
Hide file tree
Showing 11 changed files with 577 additions and 52 deletions.
65 changes: 65 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# This is the name of the workflow, visible on GitHub UI.
name: building

# Here we tell GitHub to run the workflow when a commit
# is pushed or a Pull Request is opened.
on: [push, pull_request]

# This is the list of jobs that will be run concurrently.
# Since we use a build matrix, the actual number of jobs
# started depends on how many configurations the matrix
# will produce.
jobs:
# This is the name of the job - can be whatever.
test-matrix:

# Here we tell GitHub that the jobs must be determined
# dynamically depending on a matrix configuration.
strategy:
matrix:
# The matrix will produce one job for each configuration
# parameter of type `arduino-platform`, in this case a
# total of 2.
arduino-platform: ["arduino:avr"]
# This is usually optional but we need to statically define the
# FQBN of the boards we want to test for each platform. In the
# future the CLI might automatically detect and download the core
# needed to compile against a certain FQBN, at that point the
# following `include` section will be useless.
include:
# This works like this: when the platformn is "arduino:samd", the
# variable `fqbn` is set to "arduino:samd:nano_33_iot".
- arduino-platform: "arduino:avr"
fqbn: "arduino:avr:nano:cpu=atmega328old"

# This is the platform GitHub will use to run our workflow, we
# pick Windows for no particular reason.
runs-on: ubuntu-latest

# This is the list of steps this job will run.
steps:
# First of all, we clone the repo using the `checkout` action.
- name: Checkout
uses: actions/checkout@v2
with:
ref: DEV

# We use the `arduino/setup-arduino-cli` action to install and
# configure the Arduino CLI on the system.
- name: Setup Arduino CLI
uses: arduino/[email protected]

- name: Install Python
uses: actions/setup-python@v1
with:
python-version: 3.8

# We then install the platform, which one will be determined
# dynamically by the build matrix.
- name: Install platform
run: make install init

# Finally, we compile the sketch, using the FQBN that was set
# in the build matrix.
- name: Test Sketch
run: make test
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,9 @@ Temporary Items

# TonUINO
/tools/*.pyc
Tonuino

# Platform.io
.pio/
.vscode/
platformio_local.ini
43 changes: 43 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Change Log

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased] - Lokale Änderungen
- Option hinzugefügt: Abspielen pausieren, wenn Karte entfernt wird (#3: Dank an @awesome-michael)
- Unterstützung für GitHub Actions, um jede eingespielte Änderung zu testen (siehe Badge oben).
- Integration von PlatformIO inklusive initiale Unterstützung von Unit Tests und eigenen Konfigurationsdateien.
- Entfernung einiger [Compiler-Warnungen](https://github.com/xfjx/TonUINO/pull/54).
- Kleinen Fehler bei Erstinbetriebnahme [gefixt](http://discourse.voss.earth/t/version-2-1dev-lautstaerke-durch-langes-druecken-der-tasten-geht-nicht/4523/23).
- Verzögerung für Lautstärkeregelung [hinzugefügt](http://discourse.voss.earth/t/lautstaerke-kleinschrittiger-erhoehen/3022/5).
- Make-Datei hinzugefügt

## [Unreleased] - 2.1dev
- Partymodus hat nun eine Queue -> jedes Lied kommt nur genau 1x vorkommt
- Neue Wiedergabe-Modi "Spezialmodus Von-Bis" - Hörspiel, Album und Party -> erlaubt z.B. verschiedene Alben in einem Ordner zu haben und je mit einer Karte zu verknüpfen
- Admin-Menü
- Maximale, Minimale und Initiale Lautstärke
- Karten werden nun über das Admin-Menü neu konfiguriert
- die Funktion der Lautstärketasten (lauter/leiser oder vor/zurück) kann im Adminmenü vertauscht werden
- Shortcuts können konfiguriert werden!
- Support für 5 Knöpfe hinzugefügt
- Reset der Einstellungen ins Adminmenü verschoben
- Modikationskarten (Sleeptimer, Tastensperre, Stopptanz, KiTa-Modus)
- Admin-Menü kann abgesichert werden

## [2.0.1] - 2018-11-01
- kleiner Fix um die Probleme beim Anlernen von Karten zu reduzieren

## [2.0] - 2018-08-26
- Lautstärke wird nun über einen langen Tastendruck geändert
- bei kurzem Tastendruck wird der nächste / vorherige Track abgespielt (je nach Wiedergabemodus nicht verfügbar)
- Während der Wiedergabe wird bei langem Tastendruck auf Play/Pause die Nummer des aktuellen Tracks angesagt
- Neuer Wiedergabemodus: **Einzelmodus**
Eine Karte kann mit einer einzelnen Datei aus einem Ordner verknüpft werden. Dadurch sind theoretisch 25000 verschiedene Karten für je eine Datei möglich
- Neuer Wiedergabemodus: **Hörbuch-Modus**
Funktioniert genau wie der Album-Modus. Zusätzlich wir der Fortschritt im EEPROM des Arduinos gespeichert und beim nächsten mal wird bei der jeweils letzten Datei neu gestartet. Leider kann nur der Track, nicht die Stelle im Track gespeichert werden
- Um mehr als 100 Karten zu unterstützen wird die Konfiguration der Karten nicht mehr im EEPROM gespeichert sondern direkt auf den Karten - die Karte muss daher beim Anlernen aufgelegt bleiben!
- Durch einen langen Druck auf Play/Pause kann **eine Karte neu konfiguriert** werden
- In den Auswahldialogen kann durch langen Druck auf die Lautstärketasten jeweils um 10 Ordner oder Dateien vor und zurück gesprungen werden
- Reset des MP3 Moduls beim Start entfernt - war nicht nötig und hat "Krach" gemacht

100 changes: 100 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
#
# TonUINO Makefile
#
# Author: Alexander Willner
# Date: 2020-01-03

# Config
## Arduino Nano (old bootloader)
MCU ?= arduino:avr:nano:cpu=atmega328old
BOARD ?= arduino:avr
SERIAL ?= /dev/cu.usbserial-1420
## Main
SKETCH ?= Tonuino
## Helper
OS = $(shell uname -s)
.PHONY: help

info:
$(info TonUINO Makefile)
$(info ================)
$(info )
$(info Configured to use MCU "$(MCU)" attached to port "$(SERIAL)".)
$(info )
$(info Available commands:)
$(info - help : get support from the community)
$(info - install : installation of required binaries (arduino-cli))
$(info - init : initialize environment (arduino-cli))
$(info - compile : create binary)
$(info - upload : store binary on board flash)
$(info - find : get information about the pluged-in board)
$(info - test : run some basic tests on the code)
$(info - clean : delete temporary files)
$(info - feedback : provide feedback and report issues)
@true

help:
@python -m webbrowser "http://discourse.voss.earth"

install:
ifeq ($(OS),Darwin)
ifeq (, $(shell which brew))
$(error "No brew in PATH, consider installing http://brew.sh")
else
@brew install platformio arduino-cli
endif
endif
ifeq ($(OS),Linux)
ifeq (, $(shell which arduino-cli))
@curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh
endif
ifeq (, $(shell which platformio))
@pip install setuptools wheel
@pip install -U platformio
endif
endif

init:
@arduino-cli config init
@arduino-cli core update-index
@arduino-cli core install $(BOARD)
@arduino-cli lib update-index
@arduino-cli lib install "DFPlayer Mini Mp3 by Makuna"
@arduino-cli lib install "MFRC522"
@arduino-cli lib install "JC_Button"
@platformio upgrade
@platformio update
@platformio lib install 1561 # DFPlayer Mini Mp3 by Makuna
@platformio lib install 2284 # EEPROM
@platformio lib install 77 # JC_Button
@platformio lib install 63 # MFRC522

prepare:
@mkdir -p "$(SKETCH)" ; echo "folder is only for backwards compatibility" > "$(SKETCH)/DO-NOT-EDIT"
@if [ "$(SKETCH)/$(SKETCH).ino" -nt "./$(SKETCH).ino" ]; then echo "ERROR: do not edit files in TonUINO/!"; exit 1; fi;
@cp -p "./$(SKETCH).ino" "$(SKETCH)/$(SKETCH).ino"

compile: prepare *.ino
@arduino-cli compile --fqbn $(MCU) --warnings none "$(SKETCH)"

find:
@arduino-cli board list

upload: compile
@arduino-cli upload -p $(SERIAL) --fqbn $(MCU) --verify "$(SKETCH)"

test: prepare
@arduino-cli compile --fqbn $(MCU) --warnings more "$(SKETCH)"
ifneq (, $(shell which pio))
@pio test -e native
endif

check: *.ino
@cppcheck --enable=all --std=c++20 --language=c++ *.ino *.h

clean:
@rm -rf "$(SKETCH)"
@rm -rf ".pio/build/"

feedback:
@python -m webbrowser "https://github.com/alexanderwillner/tonuino/issues"
Loading

0 comments on commit d571428

Please sign in to comment.