cylgom Posté(e) August 9, 2015 Signaler Posté(e) August 9, 2015 Salut Melinyel ! J'étais en train de me demander quoi faire de mon écran de Nokia 5110 acheté sur les bons conseils d'Oxodao (ils coûtent moins de 3$ sur ebay), quand je me suis dit qu'écrire un petit script pour faire le rendu d'objets 3D en fil de fer pouvait être extrêmement sympatique . Voici le résultat de mes expériences en vidéo (c'est "tourné" avec les moyens du bord ne faites pas attention à la clef USB qui sert de support...) : https://www.youtube.com/watch?v=LCFElyREi2c Pour faire la même chose vous avez simplement besoin d'une Arduino UNO, de l'écran d'un Nokia 5110 recyclé pour bidouilleurs, de quelques cables pour breadboard et d'effectuer les branchements comme suit (oui je suis gentil je fais des jolis schémas ) : Ensuite, vous pouvez récupérer mon programme pour l'arduino sur github. Par défaut il contient le même modèle que sur la vidéo (merci blender ), mais si vous êtes sous linux vous pouvez le changer ! J'ai aussi écrit un petit script bash pour convertir n'importe quel .obj en code utilisable par mon sketch arduino. il vous suffit de l'exécuter en précisant un fichier .obj en argument, par exemple : # sh arrobj.sh ./icosphere.obj Et il donnera le code à coller dans la "copy-paste zone" du sketch arduino : -------------------------------------------------------------- X>=- Starting .OBJ conversion -=<X X>=- This script only supports triangular faces -=<X X>=- Remember to triangulate your object before exporting -=<X -------------------------------------------------------------- const unsigned char dots = 12; const unsigned char faces = 20; float objDotsMod[dots][3] = {}; const float objDots[dots][3] = { {0.000000, -1.000000, 0.000000}, {0.723600, -0.447215, 0.525720}, {-0.276385, -0.447215, 0.850640}, {-0.894425, -0.447215, 0.000000}, {-0.276385, -0.447215, -0.850640}, {0.723600, -0.447215, -0.525720}, {0.276385, 0.447215, 0.850640}, {-0.723600, 0.447215, 0.525720}, {-0.723600, 0.447215, -0.525720}, {0.276385, 0.447215, -0.850640}, {0.894425, 0.447215, 0.000000}, {0.000000, 1.000000, 0.000000} }; unsigned char objFaces[faces][3] = { {1, 2, 3}, {2, 1, 6}, {1, 3, 4}, {1, 4, 5}, {1, 5, 6}, {2, 6, 11}, {3, 2, 7}, {4, 3, 8}, {5, 4, 9}, {6, 5, 10}, {2, 11, 7}, {3, 7, 8}, {4, 8, 9}, {5, 9, 10}, {6, 10, 11}, {7, 11, 12}, {8, 7, 12}, {9, 8, 12}, {10, 9, 12}, {11, 10, 12} }; Il convient par contre de prendre quelques précautions : > Premièrement, le script bash ne supporte que les faces triangulaires, assurez-vous de ne pas avoir de faces carrées dans votre fichier obj ! Sous blender, il vous suffit d'appuyer sur la touche espace et de chercher la commande triangulate pour être sur. > Deuxièmement, attention à ne pas charger des fichiers trop gros. De toute façon arduino ne le compilera pas s'il prend trop de mémoire. > Dernière précaution, attention à ne pas charger d'objets avec des coordonnées comportant trop de chiffres avant la virgule. Les variables seront trop petites pour les contenir, et vous ne le verriez de toute façon pas sur l'écran si tous ses points dépassent 100 en coordonnées. Je ne vais pas détailler le fonctionnement de la chose pour l'instant, mais si ça vous intéresse dites-le moi je rédigerais peut-être une explication détaillée . En tous cas je vous recommande vraiment cet écran il est très facile à bidouiller, si vous avez 3$ à dépensez achetez-le vous ne le regretterez pas. 1
Eloha Posté(e) August 10, 2015 Signaler Posté(e) August 10, 2015 (modifié) Stylé ! Bravo à toi ! Modifié August 10, 2015 par Eloha
Recommended Posts
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant