Differences

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

Link to this comparison view

pm:prj2021:alazar:ascii_art_printer [2021/05/31 15:58]
andreea.ciobanu0503 [Rezultate Obţinute]
pm:prj2021:alazar:ascii_art_printer [2021/05/31 17:22] (current)
andreea.ciobanu0503 [Software Design]
Line 3: Line 3:
 Ciobanu Andreea-Corina,​ Grupa 331CB  Ciobanu Andreea-Corina,​ Grupa 331CB 
 ===== Introducere ===== ===== Introducere =====
-Proiectul ​constain ​crearea unui sistem care va desena Ascii Art. Sistemul va fi format dintr-un suport de desen (in cazul curent: tabla alba) si un suport pentru marker care va fi deplasat pe suprafata de desen de catre doua motoare pas cu pas iar inclinatia lui fata de tabla va fi controlata folosind un motor servo. Imaginea care va fi desenata va fi transmisa catre Arduino folosind un adaptor MicroSD.+Proiectul ​consta in crearea unui sistem care va desena Ascii Art. Sistemul va fi format dintr-un suport de desen (in cazul curent: tabla alba) si un suport pentru marker care va fi deplasat pe suprafata de desen de catre doua motoare pas cu pas iar inclinatia lui fata de tabla va fi controlata folosind un motor servo. Imaginea care va fi desenata va fi transmisa catre Arduino folosind un adaptor MicroSD.
 ===== Descriere generală ===== ===== Descriere generală =====
-   * Imaginea desenata va fi stocata pe un card SD.+   * Imaginea desenata va fi stocata pe un card microSD.
    * Suportul markerului va fi actionat de doua motoare stepper prin 2 curele.    * Suportul markerului va fi actionat de doua motoare stepper prin 2 curele.
    * Instrumentul de scris va fi controlat folosind un motor servo.    * Instrumentul de scris va fi controlat folosind un motor servo.
Line 20: Line 20:
    * 2 x Curea GT2 1m    * 2 x Curea GT2 1m
    * 2 x Fulie GT2 16 dinti     * 2 x Fulie GT2 16 dinti 
-   * 1 x card microSD+   * 1 x Card microSD
    * Tabla    * Tabla
    * Marker    * Marker
    * Suport marker    * Suport marker
 +Schema electrica:
 +{{ :​pm:​prj2021:​alazar:​schma_ascii_up.png?​600 |}}
 ===== Software Design ===== ===== Software Design =====
 Dezvoltarea a fost facuta folosind mediul de dezvoltre dedicat [[https://​www.arduino.cc/​en/​software|Arduino IDE]].\\ Dezvoltarea a fost facuta folosind mediul de dezvoltre dedicat [[https://​www.arduino.cc/​en/​software|Arduino IDE]].\\
 == Bibliotecile externe folosite == == Bibliotecile externe folosite ==
-  * Wire.h: folosirea protocolului I2C pentru transmiterea caracterelor citite de pe card ( functii folosite: begin, requestFrom,​ available, onRequest, write+  * Wire.h: folosirea protocolului I2C pentru transmiterea caracterelor citite de pe card (functii folosite: begin, requestFrom,​ available, onRequest, write)
   * AFMotor.h: controlul motoarelor pas cu pas (functii folosite setSpeed, step)   * AFMotor.h: controlul motoarelor pas cu pas (functii folosite setSpeed, step)
   * Servo.h: controlul motorului servo (functii folosite: attach, write)   * Servo.h: controlul motorului servo (functii folosite: attach, write)
Line 48: Line 50:
   * loop(): citeste de la slave cate un caracter si apeleaza functia write_character(character)   * loop(): citeste de la slave cate un caracter si apeleaza functia write_character(character)
   * write_character(character):​ deplaseaza motoarele in functie de caracterul primit ca parametru; daca markerul va fi lipit de tabla sau departat folosind motorul servo va fi introdus un mic delay pentru a lasa timp suportului de marker sa se stabilizeze   * write_character(character):​ deplaseaza motoarele in functie de caracterul primit ca parametru; daca markerul va fi lipit de tabla sau departat folosind motorul servo va fi introdus un mic delay pentru a lasa timp suportului de marker sa se stabilizeze
-  *  ​ 
 **Slave** **Slave**
   * setup(): initializeaza comunicarea I2C si realizeaza comunicarea cu portul SD   * setup(): initializeaza comunicarea I2C si realizeaza comunicarea cu portul SD
   * requestEvent():​ va citi un catacter din fisierul de pe cardul SD si il va transmite master-ului   * requestEvent():​ va citi un catacter din fisierul de pe cardul SD si il va transmite master-ului
-{{ :​pm:​prj2021:​alazar:​ascii_3.jpeg?​200 |}} 
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
 Aparatul va desena imediat dupa pornire caracterele din fisierul text regasit pe cardul microSD.\\ Aparatul va desena imediat dupa pornire caracterele din fisierul text regasit pe cardul microSD.\\
 Markerul este ghidat de cele doua motoare pas cu pas pe suprafata tablei folosind doua curele cu dinti a caror deplasare este limitata de fuliile fixate pe axul motoarelor.\\ Markerul este ghidat de cele doua motoare pas cu pas pe suprafata tablei folosind doua curele cu dinti a caror deplasare este limitata de fuliile fixate pe axul motoarelor.\\
 Motorul servo il va departa de tabla daca caracterul citit este spatiu sau il va apropia daca a fost citit un caracter ce trebuie desenat.\\ Motorul servo il va departa de tabla daca caracterul citit este spatiu sau il va apropia daca a fost citit un caracter ce trebuie desenat.\\
-{{ :​pm:​prj2021:​alazar:​ascii_1.jpeg?​400 |}}\\ +{{ :​pm:​prj2021:​alazar:​ascii_1.jpeg?​600 |}}\\ 
-{{ :​pm:​prj2021:​alazar:​ascii_2.jpeg?​400 |}}\\ +{{ :​pm:​prj2021:​alazar:​ascii_2.jpeg?​600 |}}\\ 
-{{ :​pm:​prj2021:​alazar:​ascii_3.jpeg?​400 |}}\\+{{ :​pm:​prj2021:​alazar:​ascii_3.jpeg?​600 |}}\\
 La finalul unei linii se va regasii in fisierul de input caracterul "​*"​ care va marca faptul ca linia curenta s-a incheiat iar markerul va fi deplasat catre inceputul urmatoarei linii.\\ La finalul unei linii se va regasii in fisierul de input caracterul "​*"​ care va marca faptul ca linia curenta s-a incheiat iar markerul va fi deplasat catre inceputul urmatoarei linii.\\
 Dupa desenarea tuturor caracterelor marcata prin citirea caracterului " markerul va fi ghidat la inceputul desenului, pentru a nu il acoperi.\\ Dupa desenarea tuturor caracterelor marcata prin citirea caracterului " markerul va fi ghidat la inceputul desenului, pentru a nu il acoperi.\\
-Un demo al functionarii proiectului este disponibil aici:+Un demo al functionarii proiectului este disponibil aici: [[https://​www.youtube.com/​watch?​v=YXb9TPMl2Bg|Real-time]] [[https://​www.youtube.com/​watch?​v=Pto9u-3W5Uw|Fast-Forward]]
 ===== Concluzii ===== ===== Concluzii =====
 Proiectul a fost foarte educativ si distractiv in acelasi timp. Avand in vedere limitarile actuale consider ca a fost un pic mai dificil sa realizez proiectul asa cum mi-as fi dorit initial: nu am avut acces la imprimanta 3d pentru a crea suportii pentru motoarele pas cu pas care sunt destul de grele si nici pentru suportul markerului, asa ca am folosit ce a fost la indemana pentru a crea un proiect cat mai atractiv. Proiectul a fost foarte educativ si distractiv in acelasi timp. Avand in vedere limitarile actuale consider ca a fost un pic mai dificil sa realizez proiectul asa cum mi-as fi dorit initial: nu am avut acces la imprimanta 3d pentru a crea suportii pentru motoarele pas cu pas care sunt destul de grele si nici pentru suportul markerului, asa ca am folosit ce a fost la indemana pentru a crea un proiect cat mai atractiv.
 ===== Download ===== ===== Download =====
 +In {{:​pm:​prj2021:​alazar:​proiectpm_ciobanuandreeacorina_331cb.zip|arhiva}} se va gasi codul sursa si fisierul de input pentru desenul "Dino looking over the wall".
 ===== Jurnal ===== ===== Jurnal =====
 +  * 25 aprilie: alegere tema proiect
 +  * 26 aprilie: comanda piese necesare
 +  * 30 aprilie: sosire piese
 +  * 8 mai: testare componente; fixarea firelor de conexiune ale motoarelor pe shield ​
 +  * 9 mai: comanda fulii corecte (fara rulment)
 +  * 12 mai: sosire comanda #2
 +  * 15-16 mai: creare suport de marker si fixarea motoarelor pe tabla
 +  * 22-23 mai: lucru la program
 +  * 29-31 mai: testare proiect, filmare si actualizare pagina de wiki
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​alazar/​ascii_art_printer?​do=export_pdf\\ https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​alazar/​ascii_art_printer?​do=export_pdf\\
Line 74: Line 84:
 https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab5-2021\\ https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab5-2021\\
 https://​learn.adafruit.com/​adafruit-motor-shield/​using-stepper-motors\\ https://​learn.adafruit.com/​adafruit-motor-shield/​using-stepper-motors\\
 +Schema electrica a fost realizata cu [[https://​fritzing.org/​]]
pm/prj2021/alazar/ascii_art_printer.1622465929.txt.gz · Last modified: 2021/05/31 15:58 by andreea.ciobanu0503
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