Mini-ascenseur 5 étages compact piloté par Arduino
Composants et fournitures
| Arduino Mega 2560 | × | 1 |
Outils et machines nécessaires
- Scie sauteuse
Applications et services en ligne
- Arduino IDE
À propos de ce projet
Voici un ascenseur 5 étages fonctionnel. Il fait 90 cm de haut. Nous y avons mis beaucoup de travail.
Allons droit au but… voici comment ça marche !
Liens rapides :
- Code
- Schéma de câblage (à venir)
Inspiration
Nous bidouillons avec Arduino et l'embarqué/IoT depuis quelques années, mais la plupart de nos projets (et ceux qu'on voit) sont assez simples. Nous cherchions depuis longtemps quelque chose de "réel" à faire.
Cet été, j'ai participé à un super camp d'été, Project Ember. C'est dans la baie de San Francisco et c'est génial ! Les enfants conçoivent et construisent de grandes structures en bois avec des outils électriques. Une fois que j'ai su que je pouvais faire ça, j'ai voulu combiner la construction physique avec Arduino et voici le résultat !
Approche
La partie la plus difficile a été le choix du moteur et la technique de détection d'étage. Un vrai ascenseur utilise probablement un gros moteur AC avec des capteurs à chaque étage. Nous aurions pu utiliser cette approche à plus petite échelle, mais mettre des capteurs à chaque étage demande beaucoup de câblage, et nous avions des doutes sur la sensibilité et l'alignement. D'un autre côté, un moteur pas-à-pas peut être positionné précisément… mais il faut savoir exactement où l'on est et quelle distance parcourir.
Heureusement, nous avions fait quelque chose de similaire dans notre précédent projet "calendrier fancy". Là, nous avions compris comment utiliser les moteurs pas-à-pas et, plus intéressant, comment sauvegarder leurs positions en mémoire non-volatile (EEPROM de l'Arduino). Nous utiliserons la même approche ici. Ainsi, pas besoin de capteurs de position, on compte simplement le nombre de pas du moteur pas-à-pas.
L'autre préoccupation était les boutons d'appel d'étage. Ils doivent être des interrupteurs momentanés éclairés, mais les lumières doivent être contrôlables indépendamment des boutons. Nous en avons trouvé de adaptés sur eBay.
Matériaux
Boutons avec lumières séparées (achetés sur eBay, ressemblent à :)


- Arduino Mega2560 officiel – choisi pour ses nombreuses broches GPIO pour toutes les fonctionnalités. Achetez l'officiel – vous pouvez trouver des compatibles moins chers.
- Matrice LED 8×8 pour afficher les flèches (Amazon)
- Afficheur 7 segments pour afficher les numéros d'étage (SparkFun)
- Moteur pas-à-pas et carte de pilotage pour déplacer la cabine (pack de 5 Elegoo) Note : on n'en utilise qu'un, mais vous en aurez peut-être besoin de plus. Et vous pouvez réutiliser la boîte. 🙂
- Carte de prototypage Mega2560, pour connecter nos fils (BangGood) Nous avons dessoudé le connecteur du dessus, pas obligatoire.
- Bornes à vis (10×2) (frys.com) Il en faut 4
- Bobine de fil
Tout le matériel ci-dessous se trouve dans votre magasin de bricolage local :
- Panneaux de fibres et moulures 3/4 pouce carré pour l'ascenseur et la cabine.
- Équerre en aluminium pour tenir le moteur
- Vis assorties
- Tuyau pour agir comme douille à l'intérieur de la bobine
- Corde (nous avons utilisé du fil de cerf-volant en nylon robuste)
Construction
Nous avons fait le puits et la cabine en panneaux de fibres et moulures pour renforcer les coins.
On a commencé par le puits. Découpé 3 pièces de panneau de fibres à 36″×8″ pour les côtés et l'arrière (le devant est ouvert). Ensuite, avec 4 morceaux de moulure carrée 3/4″ de 36″ de long, on a vissé les panneaux ensemble pour faire un puits vertical. Des carrés de panneau de fibres en haut et en bas maintiennent tout droit.
La cabine est suivante. Même type de construction, avec parois, plafond, sols en panneaux de fibres, et supports en moulure de pin. Elle fait presque toute la largeur du puits, mais roule entre les faces avant et arrière en pin (donc plus large que profonde). On a fixé un crochet à l'œil au sommet de la cabine, pour qu'elle pend à une corde.

Attention à ne pas mettre le fond du puits trop tôt, car il faut pouvoir entrer et sortir la cabine ! Une fois les tests terminés, vous pouvez ajouter le fond.
Le moteur est au-dessus de l'ascenseur. Nous avons fixé une bobine de fil à coudre standard sur l'arbre du moteur. C'est un peu délicat. L'arbre du moteur a un côté plat mais le trou de la bobine est rond. Nous avons percé et taraudé un trou dans la bobine, et mis une vis pour tenir contre le côté plat de l'arbre. Aussi, le trou de la bobine est plus large que l'arbre. Pour faire office de douille, nous avons utilisé un tout petit morceau de tuyau en caoutchouc de taille appropriée.


Ensuite, nous avons monté le moteur sur une équerre en aluminium et vissé celle-ci au sommet du puits. Pour soutenir l'autre côté de la bobine, nous avons mis une vis dans une deuxième équerre en aluminium. Ainsi, le poids de l'ascenseur ne tire pas la bobine hors de l'arbre du moteur, elle reste de niveau.
Nous avons utilisé plus de panneaux de fibres pour faire les panneaux de boutons. À gauche, une planche de la hauteur du puits pour les boutons d'appel. Nous avons alterné boutons rouges et verts. Rouge pour descendre, vert pour monter. L'étage du haut n'a qu'un rouge, le bas qu'un vert. Notre panneau "dans l'ascenseur" est à droite. Nous avons découpé des trous pour la matrice LED et l'afficheur 7 segments en plus des 5 trous pour les boutons.


Nous avons monté 4 boîtes à bornes. Deux sur le panneau d'appel, et deux sur le côté à côté du panneau "intérieur ascenseur".
Câblage
Le câblage est délicat car il y en a beaucoup ! Nous avons choisi une carte de prototypage Arduino Mega, parce qu'on en avait une :-). Mais la vraie raison est qu'avec tant de fils, on craignait qu'un se déconnecte inévitablement si on utilisait juste les connexions standard des broches Arduino. Avec la carte de prototypage, on peut souder les fils directement et éviter ce risque. En plus, ça donne un endroit pratique pour mettre des résistances, nécessaires pour notre afficheur 7 segments.

Cela dit, on ne voulait pas que tous ces panneaux soient câblés en dur ensemble, car en cas d'erreur, ce serait très dur à corriger. Donc chaque fil a une terminaison amovible. Nous avons utilisé des borniers entre les panneaux de boutons et l'Arduino, et pour l'afficheur 7 segments et la matrice LED, une extrémité des fils reste des connecteurs quick-disconnect.

Pour les panneaux de boutons, nous avons fait nos propres harnais de câblage, en utilisant des connecteurs femelles à sertir qui s'adaptent parfaitement aux bornes des boutons. Comme chaque bouton avait besoin de deux masses (une pour le bouton et une séparée pour la lumière), il y aurait eu ÉNORMÉMENT de fils de masse si on les avait tous ramenés à l'Arduino. Alors on les a tous mis en série avec un harnais personnalisé. Les broches de signal (une pour l'interrupteur et une pour la lumière sur chaque bouton) sont toutes séparées, allant vers les borniers.


Enfin, les borniers nous ont donné un autre avantage — nous avons utilisé du fil rigide pour souder à la carte de prototypage, mais du fil souple pour les connecteurs à sertir au dos des boutons. Les borniers nous ont donné un endroit pour passer de l'un à l'autre sans souder.
Programmation
Nous avons eu de nombreuses révisions de code, mais voici la version actuelle. La partie la plus complexe du logiciel est la logique pour déterminer où la cabine doit aller. Si elle est au 2e étage, quelqu'un à l'intérieur veut aller au 3, quelqu'un veut descendre du 4 et monter du 1… où allez-vous en premier ?
L'autre complexité est que la bibliothèque de moteur pas-à-pas fonctionne normalement de telle sorte que pendant que le moteur bouge, rien n'appelle la fonction Arduino "loop()". Pourtant, il faut que ça marche si quelqu'un appuie sur un bouton pendant que l'ascenseur est en mouvement. Donc on ne peut pas aller jusqu'à la destination en une seule fois — il faut bouger un peu à la fois, en vérifiant les appuis de boutons (et éventuels changements de destination) en chemin.
Vous pouvez télécharger notre sketch Arduino ici.
Pour téléverser le code :
- Téléchargez ces bibliothèques : LEDControlMS et SevenSeg
- Choisissez la bonne carte : voir cette image
- Choisissez le port : similaire, mais allez dans "Port". Sur MacOS, ce sera quelque chose comme /dev/cu.usbmodem1411, sur Windows, comme COM2.
- Téléversez votre code.

Si ça a marché, félicitations ! Passez aux tests. Sinon, retour à l'étape 5. Si ça ne marche toujours pas, revérifiez votre câblage. Si ça ne marche pas non plus, contactez-nous via le lien en haut.
- Téléchargez l'Arduino IDE sur arduino.cc
- Ouvrez le code.
- Pour installer les bibliothèques, voir ce tutoriel.
- L'ascenseur devrait faire son auto-test. Tous les boutons d'appel s'allument en séquence, puis les cinq boutons intérieurs, puis l'afficheur 7 segments fait un cycle, puis la matrice affiche flèches haut/bas. Une fois fini, l'afficheur 7 segments montre le dernier étage connu de la cabine.
Test et calibration
Comme le moteur pas-à-pas doit savoir exactement où s'arrêter pour chaque étage, vous devez le lui dire manuellement — une seule fois. Il le mémorisera en mémoire non-volatile (donc sauvegardé même quand l'alimentation est coupée).
Pour calibrer :
- Appuyez et maintenez les boutons haut et bas du panneau droit. La matrice devrait afficher un C (pour calibrate).
- Utilisez ces boutons haut/bas pour déplacer manuellement la cabine à l'étage affiché sur le 7 segments. Quand c'est bien en place, appuyez sur le bouton du milieu.
- Répétez l'étape 2 pour les cinq étages. Quand c'est fini, la matrice s'éteint.
Prochaines étapes
Des projets comme celui-ci ne sont jamais vraiment finis ! Nous voudrions reconstruire la structure de l'ascenseur et du puits avec des pièces découpées au laser. Nous avons utilisé une scie sauteuse à main et nos coupes ne sont pas vraiment droites… c'est en partie la cause de notre "problème de frottement". En même temps, on concevrait un meilleur support moteur et on prendrait un moteur meilleur, plus rapide.
Électroniquement, on a eu une demande pour ajouter une cloche ou carillon à chaque ouverture de porte, comme les vrais ascenseurs. On le fera aussi.
Des idées ou suggestions sur ce projet, dites-le-nous dans les commentaires !
Historique des versions
Note : Le lien Google Drive se met à jour automatiquement à chaque version.
Version 2 : Correction du bug où appeler l'ascenseur de l'extérieur depuis l'étage actuel pouvait bloquer le logiciel, nécessitant d'appuyer sur le bouton reset.
Processus de fabrication
- Ascenseurs : conception, histoire et innovations futures
- Jeu Arduino "Mini Boss Battle" – Projet rétro inspiré
- Construire un Spybot Arduino piloté par Bluetooth
- FlickMote : Télécommande IR à gestes pour maison connectée
- TV-B-Gone DIY Arduino : Télécommande universelle pour toutes les TV
- Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
- Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
- Solutions d'alimentation optimisées pour projets Arduino
- Morpion sur matrice LED MAX7219 avec boîtier en carton