Stap 7: Controleren alle (.. .met een Arduino)
* Build Softwareomgeving en Tools: onze build omgeving is Linux, AVR gcc en AVR-libc maken. De code is nominaal C++, maar de code maakt geen gebruik van alle functies van de C++ - het is in feite C. We gebruiken de TinyUSB ISP en avrdude te duwen het gecompileerde binaire bestand in het apparaat. Opmerking - We ingesloten firmware programmeurs uit de weg terug, en vinden de Arduino software-omgeving om zo gek. Dus we niet gebruiken. We houden de hardware Arduino genoemd, maar in werkelijkheid is het gewoon een Atmel micro-controller op een bord. Niet gebruiken we de Arduino opstartlader, IDE of bibliotheken. Als je van dat spul, meer macht aan u, krijgt wat de baan gedaan - voor ons die het wordt enkel in de weg.
* Debuggen: De atmega328p heeft één seriële poort, en de MIDI hardware worden gebruikt, zodat het niet kan worden gebruikt voor foutopsporing. We willen een soort uitvoer voor foutopsporing, dus we toegevoegd een 16 x 2 LCD aan het systeem. Het is een generieke HD44780 type apparaat, en wij aangesloten het in 4 bit-modus zodat het een minimum aantal IO pinnen zou gebruiken. Voeg het juiste stuurprogramma code en u kunt verzenden printf van het LCD-scherm.
* Voeding: De Arduino behoeften + 5V en de LED modules nodig + 12V. Een goedkoop, makkelijk en staat oplossing is het opnieuw purpose voeding van een oude PC. De meeste PC voedingen hebben een overvloed aan draden afkomstig van hen. De meeste van deze kunnen worden verwijderd. Één ding die u nodig hebt om op te letten is de "inschakelen" signaal. Dit is een signaal van de moederbord aan de PS die wordt gebruikt voor dingen zoals wake-on-lan. Het moederbord gronden zij om te vertellen van de PS in te schakelen. Als het niet geaard blijft de PS uitgeschakeld - zodat we het voor een altijd op power supply geaard.
* Elektrische ruis: De draden voor de toetsenbord matrix en de LED module daisy chain zijn 17 voet lang. Ze werken met frequenties in de lage MHz. De MIDI-kabel aan op de piano in de put is ongeveer 30 voet lang. Elektrische ruis is een zorg. Een levende theatervoorstelling heeft radio mics, DMX gecontroleerde verlichting dimmers en andere bronnen van elektrische ruis. Gelukkig het basis ontwerp heeft niet een probleem hebben met ruis en we hoefde te doen iets speciaals lawaai problemen op te lossen. We beginnen met de mentaliteit dat ruis een probleem zou kunnen zijn, en hierdoor wij circuit frequenties beperkt en ervoor gezorgd hadden we redelijke lawaai marge in de sleutel scannen circuits.
Bronnen:
Grote Piano Firmware.
Kijk op main.cpp voor de hoogste niveau lus dat de functionele onderdelen integreert.
https://github.com/deadsy/bigpiano/BLOB/Master/src/main.cpp
Kijk bij lcd.cpp en lcd.h voor de HD44780 LCD-stuurprogramma.
https://github.com/deadsy/bigpiano/BLOB/Master/src/LCD.cpp
https://github.com/deadsy/bigpiano/BLOB/Master/src/LCD.h