Concevoir et prototyper une idée
Récit d'un processus de création itératif (conception, prototypage, modélisation 3D avec FreeCAD, impression 3D, développement JS/Arduino)
Cet été, je me suis lancé dans la fabrication d’un scanner 3D. Bien entendu, il existe toute une gamme de produits sur le marché, mais l’idée étant plus d’apprendre que de produire de la valeur, je vais plutôt faire un retour sur la démarche itérative de création du produit…
L’objectif ?
Je souhaite concevoir un système qui me permette de reproduire, en 3D, un environnement fermé. Pour cela, j’ai en tête de fabriquer un appareil doté d’une tête mobile, qui me permette de reporter un nuage de points sur 360° à l’horizontale, et de bas en haut. Ce nuage de point pourra ensuite être importé dans une application web pilotée avec ThreeJS, et la construction d’un maillage sera à prévoir.
Je me poserai la question plus tard d’ajouter à mon appareil une caméra, qui me servira à photographier l’environnement et plaquer des textures à mon environnement 3D généré…
Version 1
Pour valider le concept, j’ai fabriqué en deux jours un prototype sur la base d’un Arduino Nano, de deux servos SG90 et d’un LIDAR VL53L0X. À l’instar d’un C3PO les puces à l’air dans la Menace Fantôme, voici donc la genèse ingrate du projet : un assemblage de glue, de patafix et de cure-dents sur un pot de crème brûlée La Laitière…
Version 2
Le premier prototype m’a permis de générer de la data et de démarrer le développement de l’application. Cela étant dit, j’ai vite vu les limites du système : un gros manque de précision lié à l’usage de servos, une structure évidemment plus que douteuse, et un capteur dont la porté ne dépasse pas les 2 mètres…
J’ai donc démarré l’upgrade de mon proto, avec dans le backlog les points suivants :
- remplacer le servos par des moteurs pas-à-pas NEMA17 (appelés aussi stepper)
- remplacer le VL53L0X par un TF-Mini Benewake
- imprimer un support en 3D qui ait moins de jeu, ça tombe bien,
Thingiverse est mon ami
Version 3
A ce stade, les choses ont commencées à être sympas, mais à l’usage, j’ai découvert de nouveaux points de fragilité :
Pour éviter un décalage entre les scans de gauche à droite, et les scans de droite à gauche, j’ai fait le choix de ne scanner que dans un sens, ce qui signifiait qu’à la fin de chaque tour, le scanner devait revenir à son point de départ pour éviter que les fils s’entortillent, alors que la tête était dans la bonne position puisqu’elle avait fait 360°…
Par ailleurs, les moteurs pas-à-pas ont une précision de 1,8°, c’est-à-dire qu’il est possible, au mieux, de ne scanner que 6400 points par rotation.
Pour palier ces problèmes, j’ai décidé de concevoir mon propre boitier qui intégrerait un « slip ring », un gros roulement, et un système de démultiplication par engrenages qui me permettrait de multiplier par 3,5 le nombre de scans par tour. Les plans sont disponibles sur Thingiverse, au format STL pour imprimantes 3D.
Travail en cours… la suite au prochain numéro !
- Le code source est ici
- Les fichiers STL du boitier sont sur Thingiverse