[Bricolage] Bureau assis-debout électrique

1 2 3
basdfdiy basdfdiy 33 Messages
B ) Test de la partie électronique
Retour d’expérience : Je vous conseille de tester soigneusement la partie électronique sur une breadboard avant de commencer à souder (Je me suis fait avoir, et je galère pour récupérer ce que j’ai soudé!)

1 ) Schéma Fritzing

8OQE2VI

Je pense qu’il se suffit à lui-même.
Je vous laisse effectuer les branchements selon le schéma à l’aide d’une poignée de câbles de raccord rapide, dits câbles Dupont (Si vous ignorez de quoi il s’agit, je vous laisse regarder sur internet) pour effectuer les tests de la partie électronique.
Le seul problème est que je n’ai pas trouvé de schéma de mon shield moteur. J’ai pris le plus ressemblant, le nombre de broches de raccordement est correct. (Les 2 moteurs figurent les vérins et le jack l’alimentation externe)
basdfdiy basdfdiy 33 Messages
2 ) L’affectation des broches
Voici un tableau récapitulatif de leur affectation :
5SnA2jM

Les broches D2 et D3 sont normalement libres pour connecter le shield bluetooth. (Sur ma carte, les
2 dernières broches analogiques étant défectueuses, il n’y a plus qu’une seule broche libre)

Vous pouvez ensuite utiliser les différents programmes ci-dessous pour tester le bon fonctionnement de vos branchements.
basdfdiy basdfdiy 33 Messages
C ) Les programmes de commande
J’utilise en premier lieu des programmes dérivés des exemples fournis avec le matériel ou les bibliothèques, pour vérifier que tout est fonctionnel.
En vrac :
- Scanner I2C.
- Programme de test des vérins fourni avec la bibliothèque (sortir 10s puis rentrer les vérins)
- Programme de test de l’enregistrement/lecture d’une valeur en NVRAM, trouvé sur internet.
- Programme de test du capteur ultra-son (avec ou sans moyennage des mesures), trouvé lui aussi sur internet.
- Programme de test du capteur bluetooth, trouvé sur internet.

1 ) Les programmes de test
Pour rendre le code plus facilement manipulable, je créer un répertoire « Bureau électrique » dansmon répertoire arduino.
J’y mets ensuite les constantes dans des fichiers « .h » et les fonctions à utilisation multiple dans des fichiers « .hpp » (pour les différencier des programmes en langage C).
Je crée enfin pour chaque fichier un raccourci [windows]/lien [linux] que je dépose dans chaque sous-répertoire de test. Cela me permet d’effectuer des modifications qui vont se répercutées sur tous les programmes.

Retour d’expérience 1 : Je me suis rendu compte que certaines broches de ma carte étaient défectueuses.
J’ai pu faire le changement dans le fichier d’en-tête sans devoir reprendre chaque programme.
Retour d’expérience 2 : Une fois le programme complet, j’ai obtenu une alerte sur la faible place restante dans la mémoire vive.
Après recherche, je suis tombé sur PROGMEM, et plus particulièrement la fonction « (F(« .
J’ai utilisé cette fonction pour tous les debugs sur le port série. Je suis alors passé de 76 % d’utilisation de la mémoire vive à moins de 25 % (sans rien changer au contenu du programme).


Ensuite, je commence à construire des programmes réellement destinés au projet :
a ) Les Boutons
Il n’exécute que l’allumage de la LED sur le port 13 de l’arduino + un debug sur le port série.
Il sert à vérifier que les boutons sont branchés sur les bonnes broches et que les bonnes combinaisons de boutons sont bien prises en compte.

URL:https://framagit.org/ltrbasd/mon-bureau-assis-debout-electrique/-/blob/master/EssaiBoutons/EssaiBoutons.ino

b ) Boutons et Vérins
Il permet de valider la faisabilité du projet. Les boutons ne permettent qu’une manipulation manuelle des vérins.
(Mais le bureau est utilisable à ce stade, par contre tout en manuel)

URL :https://framagit.org/ltrbasd/mon-bureau-assis-debout-electrique/-/blob/master/EssaiVerinsetBoutons/EssaiVerinsetBoutons.ino

c ) Boutons et Distance
Il permet de valider l’enregistrement/lecture des distances réelles dans la mémoire NVRAM (sans mouvement des vérins).

URL :https://framagit.org/ltrbasd/mon-bureau-assis-debout-electrique/-/blob/master/EssaiEnregistrementDistance/EssaiEnregistrementDistance.ino

d ) Boutons, Distance et Vérins
Évidemment, l’évolution du programme ci-dessus ajoute le mouvement des vérins à l’enregistrement des distances.

URL :https://framagit.org/ltrbasd/mon-bureau-assis-debout-electrique/-/blob/master/EssaiVerinsBoutonsetDistance/EssaiVerinsBoutonsetDistance.ino


e ) Boutons, Vérins et Horizontal
Il permet de valider le fonctionnement du capteur d’inclinaison.

URL : https://framagit.org/ltrbasd/mon-bureau-assis-debout-electrique/-/tree/main/EssaiVerinsBoutonsetHorizontal
basdfdiy basdfdiy 33 Messages
2 ) Le programme complet
- Et enfin, un programme complet avec toutes les fonctionnalités (Boutons, vérins, ultra-son [Réglages hauteur])

a ) Le programme complet (avec bluetooth)
Je mets à jour le programme complet de façon à accepter les commandes bluetooth

URL :https://framagit.org/ltrbasd/mon-bureau-assis-debout-electrique/-/blob/master/CommandeBureauElectrique/CommandeBureauElectrique.ino

D ) Montage de la partie électronique

a ) Le micro-contrôleur
Pour le programme, j’utilise un micro-contrôleur compatible arduino (ici le clone d’une carte uno de chez GO Tronic).
Comme il n’y a pas de support livré avec, je découpe une simple planche de contreplaqué aux dimensions (cf rectangle de la photo) + 4 petits bouts de contreplaqué (non visible) pour fixer les vis (cf ronds sur la photo)

C7XhkQF
basdfdiy basdfdiy 33 Messages
b ) Le shield moteur
Pour la partie commande moteur, j’utilise un shield moteur WPI409 de chez Welleman.
De la même manière, comme il n’y a pas de support livré avec, je découpe une planche de contre plaqué aux dimensions (cf rectangle de la photo) + 4 petits bouts de contreplaqué (1 visible en bas à gauche) pour fixer les vis (cf ronds sur la photo)
AMGG5b2

c ) Le module RTC DS1307
Pour stocker les réglages de hauteur, j’utilise la mémoire NVRAM d’un module DS1307.
(Source : Carnet du maker / Fonction fonctionnelle : Forum arduino )
Pour économiser la place, je le soude verticalement sur un bout de plaquette de prototypage type veroboard, que je glisse entre le contrôleur et le shield moteur:
OzfkbLA
basdfdiy basdfdiy 33 Messages
Je me sert de cette plaquette comme point de masse et de vcc commun :
YeI4j2V


Retour d’expérience : Je pense que si je dois refaire un bureau, j’utiliserais un bout de plaquette à bande (stripboard) pour réaliser les points commun (GND/VCC)

Je fixe ce bout de veroboard sur 2 petits bouts de contreplaqué :
DfpmkeK

Il n’est absolument pas obligatoire de sortir le fer à souder ici. Il est parfaitement possible d’utiliser
une plaquette de raccord rapide type breadboard à la place (Cela prendra juste plus de place).


d ) Le capteur a ultra-son HC-SR04
Pour mesurer la distance du plateau par rapport au sol, j’utilise un capteur à ultra-son HC-SR04.
EUXCUy6



LwK1SNq
basdfdiy basdfdiy 33 Messages
Je pose simplement le capteur sur le support en laissant 2 trous pour les transducteurs à ultra-son (les 2 ronds)

e ) Capteur d’inclinaison

Retour d’expérience : Les 2 vérins électrique ne fonctionnent pas à la mème vitesse → Le plateau devient penché au bout d’un moment.
J’ai tenté d’ajouter un deuxième capteur ultra-son pour égaliser le plateau, mais le fait qu’il penche fausse les mesures de distance (De plus, celles-ci ne sont pas très fiables lorsqu’on atteint environ un mètre).

Je soude mon capteur d’inclinaison sur un petit bout de veroboard, que je place sur le support à l’aide de 2 petits morceaux de contreplaqué et de colle à bois (comme le capteur ultra-son).

A venir : photos de l'installation du capteur.

Retour d’expérience : Lors des tests initiaux, j’ai eu un souci, car la librairie du composant indique une alimentation en 3,3v. Le problème, c’est que ce n’était pas compatible avec la carte et le capteur ultra-son (alimentés en 5V) [Rien de grillé, mais plus rien ne marchait sur le bus I2C].
En relisant la doc du composant, je constate que la broche 3,3v est indiquée en sortie et que la broche VCC peut accepter jusqu’à 5V.
J’ai fait un essai en alimentant le capteur en 5v via la broche vcc, et la communication i2c est devenue fonctionnelle.

f ) L’alimentation
Et pour alimenter tout cela, j’utilise un transfo 220-12V prévu pour l’alimentation d’un ruban de LED.

J’ai hésité à commander ce transfo en import direct de chine, mais plusieurs commentaires indiquant une qualité déplorable (récupération/reconditionnement manifeste, fixation dangereuse, ...) m’ont amener a commander sur un site français [Même s’il est fabriqué en chine lui aussi]. (Je n’ai pas envie d’avoir un incendie chez moi!)
5prHrky

Retour d’expérience : Prenez un transfo de bonne qualité pour éviter le sifflement caractéristique des transfos bas de gamme (c’est absolument insupportable à la longue)

et pour faire le raccord entre la sortie jack de l’alim 12v et le raccordement sur le shield moteur,j’utilise une prise jack à bornier (évite les bricolages de câbles) :

XRMyiK5

Retour d’expérience : Ne faites pas comme moi, pensez à utiliser des câbles d’un diamètre suffisant pour raccorder la sortie de la prise jack et l’entrée du shield moteur.
Au départ, j’avais utilisé des simples cables dupont mais suite à des tests un peu intensif, ils ont commencé à fondre (fumée, odeur de plastique cramé, .. et début de panique!). Fort heureusement plus de peur que de mal.
Depuis, je les aient remplacées par un bout de 2*0,75mm2 (prévu pour pourplus de 1000 watts !).

g ) Les boutons
Pour déclencher les actions, j’utilise 6 boutons :

IHbMIw1
basdfdiy basdfdiy 33 Messages
En rouge, le bouton « stop ».
En bleu, les 2 boutons vers les positions mémorisées (hautes et basses)
En noir, les 2 boutons d’activation manuelle (haut et bas)
Le bouton noir à droite de l’image permet la sauvegarde des hauteurs mémorisées.
(Il permet également de déclencher la fonction d’activation d’un seul vérin. Elle a été mise en placecar l’un des vérins pousse plus que l’autre et le plateau penche.)

h ) Le shield bluetooth HC-06
Pour tenter de commander le bureau via mon portable, j’installe un shield HC-06.

Erreur lors de la tentative de chargement de l'image

1 ) Le support de l’électronique de commande
Pour cela j’utilise 2 éléments différents en contreplaqué:
- Un « sol » (support des cartes électroniques)

+ une face avant (support des boutons de commande)
JeNMKyL
basdfdiy basdfdiy 33 Messages
+ 2 équerres pour faire tenir le tout.
I2rgSLH


(dont une avec un trou pour la prise jack d’alimentation.)

Sur le « sol », je réparti et colle les différents composants (carte + shield+bout de veroboard). Sans oublier la place et les trous pour le capteur à ultra-son.
Une fois le « sol » prêt, je monte la façade et les équerres à l’aide de colle à bois.

On obtient alors quel que chose comme ceci :
BmkIGwI

QQoLtaf


en réalité, je n’ai installé l’électronique qu’après avoir collé les différents éléments en bois.

Voici ce que j’ai obtenu, sans l’électronique :
U24Rnaq
basdfdiy basdfdiy 33 Messages
2 ) Le boîtier du support de l’électronique de commande
- Une « boite » (support du boîtier de commande) sans face avant et avec les trous pour passer les câbles, dans laquelle je vais glisser le support des cartes.
(Cela me permet de fixer le support de commande et son boîtier au bureau tout en laissant des possibilités d’intervention/maintenance)

Le coté gauche :
QmSL587

Le coté droit : (avec la découpe pour le jack d’alimentation)
BwYqifh

La face arrière : (avec la découpe pour laisser sortir les câbles d’alimentation des vérins et de la carte arduino [+le câble usb de téléversement des programmes])
M4Vrws4
basdfdiy basdfdiy 33 Messages
et les 2 bouts qui constituent le sol (avec la place pour passer les câbles d’alimentation)
KzBnmLq

Voici un aperçu de ce qu’on obtient :


Le boîtier destiné à contenir le support de la partie électronique , seul, mise en place (collé sous le plateau) :
RkOhkWH

Pour coller le boitier au bureau, j’utilise de l’adhésif à miroir (c’est prévu pour supporter plusieurskilos ...)

Le boîtier et le support avec l’électronique de commande du bureau :
EIG38KN
basdfdiy basdfdiy 33 Messages
E ) Vidéo
Pour finir, un lien vers une vidéo qui vous présente les différentes fonctions du bureau et vous permet de le voir en fonctionnement :

https://www.flickr.com/photos/194439356@N02/51692997454/in/dateposted-public/

(Vidéo réalisée avec le logiciel OpenShot)

Retour d’expérience : En charge normale (avec l’écran sur le plateau), les temps sont les suivants :
Montée : env 2 min 05 pour atteindre le maximum
Descente : env 1 min 45 pour redescendre au minimum

Voilà, ce tutoriel est maintenant terminé.
J’espère que tout c’est bien passé et que le bureau vous donnera satisfaction.
Tout message, remarque, critique (constructif!) est souhaité et sera apprécié.

Retour d’expérience : J’utilise le bureau en position haute (travail debout) tous les jours et la majorité de la journée. (En fait, je ne le baisse que lorsque j’ai des réunions et des présentations longues)
J’ai constaté que cela sollicite les muscles du dos de façon très différente de la manière habituelle (assis). Il faut s’y habituer au début mais cela vient vite.

Cela facilite également les mouvements : simples, comme bouger d’une jambe sur l’autre ou les déplacements (comme on est déjà debout, il n’y a pas à se forcer à se lever ...)
lobodol lobodol 863 Messages BIG BOSS
Merci pour ce retour d'expérience très complet !

Première question que j’aurais, c'est concernant le capteur à ultrasons : tu mesures la distance entre le bureau et le sol grâce au HC-SR04 mais que se passe-t-il si (par exemple) ton chat passe en dessous pendant la montée/descente ?
As-tu envisagé des capteurs type endstop en plus ?

Pourrais-tu partager ton code source également ? Ça m’intéresse de voir ton implémentation.

Je vois que tu utilises un RTC DS1307 pour stoker tes valeurs. As-tu envisagé de stocker ça dans l'EPROM de l’Arduino ? Afin d'économiser quelques centimes ^^

En tout cas, c'est du beau boulot, bravo !
basdfdiy basdfdiy 33 Messages
> Première question que j’aurais, c'est concernant le capteur à ultrasons : tu mesures la distance entre le bureau et le sol grâce au HC-SR04 mais que se passe-t-il si (par exemple) ton chat passe en dessous pendant la montée/descente ?
---> Comme perso je n'ai pas d'animal, c'est vrai que je ne me suis pas posé la question. Il y a une notion de moyenne sur 8 mesures, ce qui permet d’atténuer tout changement brusque. Dans ma liste à faire, il y a l'intégration d'une notion d'écart-type pour éviter ce genre de problème.
De toute façon, ce type de mobilier ne doit pas être utilisé hors supervision humaine ! (Pour éviter des accidents plus graves comme des mains ou des bras coincés. Les vérins peuvent supportés bien plus que ta main ou ton bras !)

> As-tu envisagé des capteurs type endstop en plus ?
--> Non, les seuls capteurs d'extrémité sont les capteurs de fin de course intégrés aux vérins.

Pour le code source, c'est en cours.

> Je vois que tu utilises un RTC DS1307 pour stoker tes valeurs. As-tu envisagé de stocker ça dans l'EPROM de l’Arduino ? Afin d'économiser quelques centimes ^^
--> A ma connaissance l'arduino uno n'a pas de mémoire eprom persistante après une extinction d'alimentation. La mémoire NVRAM du DS 1307 est ce que j'ai trouvé de moins cher pour stocker les réglages de manière persistante.

> En tout cas, c'est du beau boulot, bravo !
--> Merci pour le compliment
basdfdiy basdfdiy 33 Messages
-> Ajout d'un paragraphe de mise en garde sur une supervision permanente pendant le fonctionnement.

-> Ajout des URL vers le dépôt Frama GIT contenant les programmes Arduino.
1 2 3
Vous devez être connecté pour pouvoir répondre à ce sujet.
Utilisation des données

Afin d'améliorer ton expérience utilisateur, nous utilisons des cookies 🍪