Bygga ett stort Piano (7 / 10 steg)
Steg 7: Kontrollera It All (.. .med en Arduino)
* Programvara bygga levnadsförhållanden och verktyg: vår bygga miljö är Linux, AVR-gcc, AVR-libc och göra. Koden är nominellt C++, men koden använda inte funktionerna för C++ - det är effektivt C. Vi använder TinyUSB ISP och avrdude driva den kompilerade binärfilen i enheten. OBS - vi är inbäddade firmware programmerare från väg tillbaka, och hitta Arduino programvara miljö att vara dum. Så vi inte använda den. Vi älskar den hårdvara som kallas Arduino, men i verkligheten är det bara en Atmel mikro-controller på ett bräde. Vi använder inte Arduino starthanterare, IDE eller bibliotek. Om du gillar sånt, mer makt till dig, får vad jobbet gjort - för oss det blir bara i vägen.
* Felsökning: Atmega328p har en seriell port och MIDI hårdvara använder det, så det inte kan användas för felsökning. Vi gillar någon form av utdata för felsökning, så har vi lagt en 16 x 2 LCD till systemet. Det är en generisk HD44780 typ enhet och vi hakade i 4 bitars läge så det skulle använda ett minimalt antal IO pinnar. Lägga till en lämplig drivrutin kod och du kan skicka printf's till LCD-skärmen.
* Strömförsörjning: Arduino behov + 5V och LED moduler behöver + 12V. En billig, lätt och kunna lösning är att re-syfte ett nätaggregat från en gammal dator. De flesta PC-nätaggregat har en uppsjö av ledningarna kommer från dem. De flesta av dessa kan tas bort. En sak du behöver se upp med är den "makten på" signalen. Detta är en signal från moderkortet till PS som används för saker som wake-on-lan. Moderkortet grunder det att säga PS aktivera. Om det inte är jordad förblir PS off - så vi jordad det för en alltid på strömförsörjningen.
* Elektrisk buller: Ledningarna för matrisen tangentbordet och LED modul seriekoppling är 17 fot lång. De fungerar på frekvenserna i låg MHz. MIDI-kabeln till pianot i gropen är omkring 30 fot lång. Elektriska störningar är ett bekymmer. En levande teaterföreställning har radio mics, DMX styrd belysning dimmers och andra källor till elektriska störningar. Lyckligtvis bas design hade inte problem med buller och vi behövde inte göra något särskilt att åtgärda bullerproblem. Vi börjar med tankesättet att buller kan vara ett problem, och på grund av detta vi begränsad krets frekvenser och sett hade vi rimliga buller marginal i nyckeln scanning kretsar.
Resurser:
Stora Piano Firmware.
Titta på main.cpp för översta nivån loopen som integrerar de funktionella delarna.
https://github.com/Deadsy/bigpiano/BLOB/Master/src/main.cpp
Titta på lcd.cpp och lcd.h för LCD HD44780-drivrutinen.
https://github.com/Deadsy/bigpiano/BLOB/Master/src/LCD.cpp
https://github.com/Deadsy/bigpiano/BLOB/Master/src/LCD.h