This shows you the differences between two versions of the page.
pm:prj2022:avaduva:magic_music_box [2022/04/22 23:57] jad.sarhdaoui created |
pm:prj2022:avaduva:magic_music_box [2022/06/03 14:14] (current) jad.sarhdaoui [Concluzii] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ======Boîte à musique magique ====== | + | ======Boîte inutile ====== |
- | ===== Une boîte à musique, ou boite à musique, est un instrument de musique mécanique dont l'organe musical est constitué d'un ensemble de lames d'acier dont une extrémité est maintenue fermement, et dont l'autre, restée libre, est mise en vibration mécaniquement. Tous les instruments de musique mécaniques ne sont donc pas des boîtes à musique.===== | + | ===== |
- | + | <note> | |
- | <note tip> | + | Le projet représente une implémentation simple d’une boîte inutile, un jouet simple où lors de la commutation d’un interrupteur, un mécanisme est déclenché et un bras sort de la boîte pour changer à nouveau l’interrupteur. Ils sont commercialisés et sont devenus populaires ces derniers temps. De nombreuses variantes de ceux-ci sont disponibles, où les appareils font d’autres choses en plus d’appuyer sur le bouton ou sont embellis pour ressembler davantage à un jouet. |
- | Prezentarea pe scurt a proiectului vostru: | + | |
- | * ce face | + | |
- | * care este scopul lui | + | |
- | * care a fost ideea de la care aţi pornit | + | |
- | * de ce credeţi că este util pentru alţii şi pentru voi | + | |
</note> | </note> | ||
+ | ===== | ||
+ | |||
+ | |||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | <note tip> | + | <note> |
- | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | |
+ | L’appareil se compose d’un interrupteur avec 2 rangées et 3 positions et 2 actionneurs. Lorsque vous appuyez sur le bouton, l’appareil qui agit sur les actionneurs est rétrogradé à son tour. La première fois qu’un actionneur est actionné, ce qui a pour rôle de soulever le couvercle de la boîte. Ensuite, un autre actionneur est actionné qui a pour rôle de mettre l’interrupteur en position d’arrêt. | ||
+ | |||
+ | Les 2 actionneurs ont fixé un bras en aluminium pour avoir assez de puissance pour les déplacer. Les actionneurs sont petits (utilisés davantage dans les jouets) et n’ont pas le pouvoir de déplacer des choses trop lourdes. Une fois que les servos ont terminé la rotation définie par le programme, ils reviennent à leur état d’origine jusqu’à ce que le bouton soit enfoncé à nouveau. | ||
- | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | ||
</note> | </note> | ||
Line 20: | Line 20: | ||
<note tip> | <note tip> | ||
- | Aici puneţi tot ce ţine de hardware design: | + | |
- | * listă de piese | + | Les composant de mon projet ce sont ici: |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | |
- | * diagrame de semnal | + | - Arduino UNO R3 |
- | * rezultatele simulării | + | - Commutateur - 2 rangées 3 pos |
+ | - Servomoteur x2 | ||
+ | - Feu | ||
+ | - Batterie 9V | ||
+ | - A daptateur de batterie | ||
+ | - Planche à pain | ||
+ | |||
+ | {{:pm:prj2022:avaduva:285443492_825834375251765_6680282258171018623_n.png?550|}} | ||
+ | |||
+ | {{:pm:prj2022:avaduva:a21.jpg?500|}} | ||
+ | |||
+ | {{:pm:prj2022:avaduva:a22.jpg?500|}} | ||
</note> | </note> | ||
Line 30: | Line 42: | ||
- | <note tip> | + | <note> |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | Pour la conception des logiciels pour mon projet: |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | - Environnement de développement : Arduino IDE. |
- | * (etapa 3) surse şi funcţii implementate | + | - Bibliothèques utilisées : Servo, Stdlib (pour générer un nombre aléatoire). |
+ | |||
+ | Dans la mise en œuvre, nous avons utilisé un commutateur externe pour détecter le commutateur à bouton et les fonctions de bibliothèque pour le fonctionnement des actionneurs. | ||
+ | |||
+ | J’ai commencé par emmêler les servomoteurs. J’ai attaché les broches 8 et 9 respectivement et je les ai réglées sur 0 au début du programme pour réinitialiser dans n’importe quel état qui serait resté en cours de route. J’ai défini la broche 4 comme entrée pour détecter les changements de bouton. J’ai activé les interruptions externes et je ne les ai activées que pour la broche 4. | ||
+ | |||
+ | Dans la fonction de gestion des interruptions ne changent qu’une variable globale, les fonctions du mécanisme sont appelées dans la boucle(). Nous n’avons choisi que le changement de la variable globale dans le traitement de l’interruption parce que le mécanisme a une très longue durée de vie et aurait grandement interrompu le cours du programme si nous gardions tout en interruption. | ||
+ | |||
+ | Nous avons créé plusieurs fonctions, toutes similaires les unes aux autres, pour les mouvements du mécanisme. La première fois que la rotation de l’actionneur 1 est exécutée, ce qui a pour rôle de soulever le couvercle. | ||
+ | |||
+ | Ensuite, la rotation de l’actionneur 2 est exécutée pour activer le bouton. | ||
+ | |||
+ | Ensuite, dans l’ordre inverse, il revient à son état d’origine. J’ai utilisé différents délais entre les fonctions pour changer la vitesse des actionneurs ou le temps d’attente entre les exécutions (entre les 2 actionneurs). | ||
+ | |||
+ | Dans la boucle, j’utilise un interrupteur pour détecter quelle fonction appeler et un index i qui est choisi au hasard dans une plage pour rendre le jouet un peu plus indéterminé et drôle. | ||
+ | |||
+ | En tant que fonctions utilisées : | ||
+ | |||
+ | - servo.atach pour fixer une broche à l’actionneur. | ||
+ | - servo.write pour définir l’angle de l’actionneur. | ||
+ | - retarder. | ||
+ | - bord. | ||
+ | - sei et cli pour définir les interruptions. | ||
</note> | </note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | <note> |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
+ | J’ai obtenu une copie fonctionnelle d’un jouet populaire dans sa version de base. Dans la démo, vous pouvez voir comment cela fonctionne et comment le bouton est d’abord commuté par moi, puis commuté à nouveau par le jouet. Vous pouvez voir 4 vitesses et lecteurs différents. | ||
+ | |||
+ | https://youtube.com/shorts/f99pmCTBSms?feature=share | ||
</note> | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | ===== Download ===== | + | <note> |
+ | |||
+ | J’ai pu comprendre les notions présentées au laboratoire et les appliquer. C’était très intéressant, même si j’aurais préféré choisir quelque chose d’un peu plus complexe mon projet étant assez simple à réaliser. J’ai également rencontré quelques difficultés dues à la puissance des actionneurs et à la résistance du bouton initial, mais j’ai réussi à remplacer les composants et à surmonter les problèmes. | ||
+ | |||
+ | ici le fichier du code source: | ||
+ | |||
+ | {{:pm:prj2022:avaduva:codesource.txt|}} | ||
- | <note warning> | ||
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | ||
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | ||
</note> | </note> | ||
+ | |||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note tip> | + | <note> |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
+ | - Page de réalisation | ||
+ | - Achat de composants | ||
+ | - Document | ||
+ | - Schéma de développement à Tinkercat | ||
+ | - Création de périphériques (boîte, lames en aluminium) | ||
+ | - Assemblage de composants | ||
+ | - Programmation agréable | ||
+ | - Rédaction de documentation | ||
+ | - Finir la page wiki | ||
</note> | </note> | ||
+ | |||
+ | |||
+ | |||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
+ | https://fr.wikipedia.org/wiki/Machine_inutile | ||
+ | |||
+ | https://forums.futura-sciences.com/electronique/790636-une-machine-inutile.html | ||
+ | |||
+ | http://www.wiki-rennes.fr/Useless_Box | ||
+ | |||
+ | |||
+ | |||
</note> | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||