Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:abirlica:badapple [2021/05/17 14:42]
cristian.cringasu [Schema Electrica]
pm:prj2021:abirlica:badapple [2021/06/04 17:01] (current)
cristian.cringasu [Software Design]
Line 34: Line 34:
 ===== Hardware Design ===== ===== Hardware Design =====
 ==== Schema Electrica ==== ==== Schema Electrica ====
-{{:​pm:​prj2021:​abirlica:​badapple_sch.png?​1000|}}+{{:​pm:​prj2021:​abirlica:​badapple_sch.png?​700|}}
 ==== Lista de componente: ==== ==== Lista de componente: ====
   - Placuta Arduino Uno   - Placuta Arduino Uno
Line 51: Line 51:
   - Suport Plastic PLA 3D printed.   - Suport Plastic PLA 3D printed.
  
 +====Software Design====
 +  * Cod Arduino : 
 +       * stepper_music.ino -> citeste date de la arduino mega, reda audio corespunzator,​ daca exista
 +       * SerialStepper.h,​ SerialStepper.cpp,​ SerialStepperPlayer.h,​ SerialStepperPlayerLight.h,​ Midifile.h, MidiFile.cpp : drivere si biblioteci implementate pentru steppere paralel adresate cu shift registere +
 +cod parsare fisiere midi (am renuntat totusi la midi pentru ca nu am avut un al doilea card sd :( )
 ++ playere care se folosesc de serialstepper pentru redare sunete in valori nominale (stepperele nu emit sunete audibile la toate frecventele,​ depinde mult de cat de repede se poate efectua un pas asincron in cod, arduino e cam lent deci am facut cateva conversii).
 +       * midi_player.ino -> discontinued (lipsa card sd), reda fisiere midi folosind stepperele intr un model de workpool asincron
 +       * badAppleSong.h -> cod sursa parsat din fisiere midi folosind https://​sshdl-7.extramaster.net/​tools/​midiToArduino/​processFile/​ , modificat pentru a fi corespunzator cu functiile mele
 +       * led_video.ino -> player video pentru fisiere custom de tip .VID, realizate cu ajutorul "​led_convertor.py"​ (vorbim mai tarziu ce face).
 +       * led_player.h -> functii ce imi parseaza fisiere .VID pe chunkuri si redau frameuri pe matricea led, deasemenea avem si interfata cu shift_registerele.
 +       * NewLedI2c - librarie de pe git interfateaza I2C pentru lcd
 +  * Cod Python :
 +       * led_convertor.py -> converteste mp4 la VID, folosind ​ un model scalat la 16x16 HIGH / LOW (led aprins stins calculat cu distanta euclidiana a pixelului la [0,0,0] - black / [255,​255,​255] - white)
 +       * midi.py - convertor audio - midi / convertor.py - convertor midi text / midicomp parser de fisier
 +       * **necesita un terminal cu python3 instalat**
 +
 +=== Diagrama Activitati ===
 +{{:​pm:​prj2021:​abirlica:​flowchart_badapple.png?​700x650}}
 +
 +
 +
 +====Rezultate Obţinute====
 +**STAGE 1**\\
 +Componentele sunt lipite asezate si gata (nu am alte poze mai vechi, dar oricum, s a muncit la
 +matricea led pentru lipit fire, la shift registere pentru cablaj, si la steppere relativ am facut mufe tip rainbow, sa stea cat de cat fixe, mai avem si o placuta lipite tip breadbord 2 coloane cu GND si VCC, hub pentru celelalte componente, si mai am o placuta cu i2c_lcd). \\
 +
 +{{:​pm:​prj2021:​abirlica:​badapple_stage1.jpeg?​350}}
 +
 +**STAGE 2**\\
 +Realizare suport de lemn, cu betisoare de sustinere si suruburi. \\
 +
 +{{:​pm:​prj2021:​abirlica:​badapple_stage2.jpg?​350}}
 +
 +**STAGE 3**\\
 +Cable management si vedere de ansamblu. \\
 +
 +{{:​pm:​prj2021:​abirlica:​badapple_stage3_1.jpg?​350}}
 +
 +**VIDEO**\\
 +[[https://​www.youtube.com/​watch?​v=7O4E3plwymc|Demo]]
 +
 +
 +====Concluzii====
 +
 +===Reusite si Probleme===
 +
 +  * Implementarea a fost cat de cat ok, cu probleme la midi file player si in general cu audio al stepperelor.. aparent cu cat sunt mai multe calcule de facut in bucla loop, cu atat audio va fi mai prost, si de asemenea am replicat audio de la stepper ul '​0',​ tradeoff pentru calitate vs cantitate de note cantate simultan (mono acum)
 +  * La lcd au fost probleme mai mult hardware, dar software a fost ok.
 +  * 
 +===Posibilitati de extindere===
 +
 +  * Se foloseste o baterie externa in prezent
 +  * Se poate folosi si un suport mai adecvat, entual cu suruburi si placa de sustinere.. dar alta data facem si asta :))
 +
 +===Ce am invatat din proiect?===
 +  * Sa ma uit pe datasheet in disperare, sa lipesc ca un pro ;) si sa fac debugging pana la 5 dimineata :D <3
  
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 +[[https://​sshdl-7.extramaster.net/​tools/​midiToArduino|Midi Arduino Online Convertor]] \\
 +[[https://​github.com/​arduino-libraries/​Stepper/​blob/​master/​|Arduino Stepper Default Library]] \\
 +[[https://​pages.mtu.edu/​~suits/​NoteFreqCalcs.html|Conversie Frecvente Note - Intervale]] \\
 +[[https://​github.com/​bneedhamia/​glockenspiel|Midi SdCard Player - Timed]] \\
 +[[https://​gist.github.com/​YuxiUx/​ef84328d95b10d0fcbf537de77b936cd|midi-note-to-freq.md]] \\
 +[[https://​datasheet.octopart.com/​74HC595N-Philips-datasheet-18647.pdf|74HC595 Datasheet]] \\
 +[[http://​www.zpag.net/​Electroniques/​Arduino/​8x8_dot_matrix_1588bs.html|8x8 dot matrix 1588BS, Pin out]] \\
 +[[https://​www.theengineeringprojects.com/​2018/​06/​introduction-to-arduino-mega-2560.html|Arduino Mega 2560 Pin Mapping]] \\
 +[[https://​github.com/​cristiancringasu/​BadApplePm2021|Repository Github]] \\
 Export în <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​PDF</​a></​html>​\\ Export în <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​PDF</​a></​html>​\\
 https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​abirlica/​badapple https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​abirlica/​badapple
pm/prj2021/abirlica/badapple.1621251738.txt.gz · Last modified: 2021/05/17 14:42 by cristian.cringasu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0