Accueil > Forum > La communauté > Vos tutoriels > [Bricolage] Bureau assis-debout électrique

[Bricolage] Bureau assis-debout électrique

1 2 3
basdfdiy basdfdiy 28 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
Rien de tel qu’un schéma Fritzing pour avoir un bon aperçu du circuit à réaliser :
CNcGthg

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 28 Messages
2 ) L’affectation des broches
Voici un tableau récapitulatif de leur affectation :
GIaT8Lk

Vous pouvez ensuite utiliser les différents programmes ci-dessous pour tester le bon fonctionnement
de vos branchements.
basdfdiy basdfdiy 28 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.

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
basdfdiy basdfdiy 28 Messages
2 ) Le programme complet
- Et enfin, un programme complet avec toutes les fonctionnalités (Boutons, vérins, ultra-son [Réglages hauteur])

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 28 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 28 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 28 Messages
Je pose simplement le capteur sur le support en laissant 2 trous pour les transducteurs à ultra-son (les 2 ronds)

e ) 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

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

IHbMIw1
basdfdiy basdfdiy 28 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.)

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)
QUJMp8J

+ une face avant (support des boutons de commande)
JeNMKyL
basdfdiy basdfdiy 28 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 28 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 28 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 28 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é.
lobodol lobodol 761 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 28 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 28 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 🍪