[Aide] Projet Boite inutile

Bonjour à tous,

Je suis actuellement en terminale spécialisé Science de l'ingénieur, et comme tout élève de cette filière j'ai un projet à faire tout au long de l'année.

Le mien est de faire une boite inutile (voir lien à la fin du topic) à deux interrupteurs

Je vous explique grosso-modo comment on a l'intention de la faire marcher :

On a récup un plateau sur une vieille imprimante, lorsque l'un des interrupteurs est mis sur ON (il sont en position de départ OFF) on met la valeur HIGH ou LOW dans le moteur du plateau en fonction de l'interrupteur enclenché.

Arrivé devant l'interrupteur actionné, le plateau rencontre un interrupteur de fin de course, ce qui l'arrête et enclenche le fonctionnement d'un servo moteur au niveau du toit de la boite qu'il ouvre, puis enclenche un deuxième servo positionné sur le plateau, qui fait bouger un bras et qui remet l'interrupteur sur OFF, puis le bras re-rentre à l’intérieur de la boite.

Une fois cette partie terminée, on met la valeur inverse dans le servo du toit afin de refermer la boîte, puis la valeur inverse dans le moteur du plateau afin de l'enlever de l’interrupteur fin de course

Ceci est donc la partie théorique, on a réfléchit à plusieurs moyens et celui-ci semble le plus simple à mettre en place, d'autant qu'on à déjà tout le matériel nécessaire à disposition.

Voici le problème :

Je suis en charge du programme arduino qui vas gérer les trois moteurs et les quatre interrupteurs, sauf que je n'ai littéralement jamais touché une carte arduino de ma vie :cold_sweat: :cold_sweat:

Je viens donc ici vous demander de l'aide pour un pauvre débutant lvl 1 qui viens tout juste de finir le tuto du jeu.

Si vous êtes intéressé et surtout si vous avez le temps de vous pencher sur mon problème, votre aide serait vraiment la bienvenue (le projet compte pour le bac et pour l'instant mon programme se limite à void setup() )

*/!\ Je ne vous demande pas de faire le programme à ma place, juste de m'aider (même si ça implique une aide plutôt profonde :sweat_smile: ) /!*

Si vous voulez nous pouvons parler de ça en privé afin de ne pas spammer le topic pour chaque petite chose (je suppose que gérer tout ça implique beaucoup de paramètre qui me sont pour l'instant invisible), je possède tout les moyens possible de communication (téléphone, skype, ts, mumble, teamviewer, etc...)

Boite inutile : Useless Box Kit from ThinkGeek - YouTube

Plateau + interrupteur fin de course :

carte arduino + interrupteur :

servo-moteurs :

Merci beaucoup !

Deja d'une, perso, je ne vois pas les photos, donc a y remedier.

de 2, ce genre de projet, pullule sur internet, rien de compliqué a refaire.

certain projet jusqu'a 10moteurs, et 10 interrupteurs, et,d'ailleur tu n'as meme pas besoin d'arduino pour faire cela.

juste un bouton, un moteur, une pile

Puisque le fonctionnement te parait clair, ça ne devrait pas poser de problème. Formalise le fonctionnement de ton projet avec des schémas fonctionnels pour définir la chronologie des actions et les conséquences qu'elles entraînent. Je pense au grafcet en écrivant ça, mais c'est juste pour donner une idée du principe. En gros, pars de l'état initial puis de là interrupteur actionné: oui/non, conséquence, etc.

Le programme fera appel à des fonctions très simples, donc: lis quelques tutos sur les bases d'arduino, lis la doc pour te familiariser avec les types de variables, les structures de contrôle, les lectures/écriture d'entrées et sorties, fais des petits programmes pour essayer des bouts de code (lecture des interrupteurs, structures de contrôles, etc.) et dans une grosse semaine tu devrais pouvoir être en mesure d'avoir un truc qui ressemble à quelque chose! :wink:

Bon courage!

@hazerty565
Il est vrai que des projets de ce genre existent en masse sur internet, mais aucunement de la manière dont on veut le faire, nous avons passé plusieurs heures à regarder les moindres recoins d'internet et aucun ne nous as satisfait, pense bien que j'ai autre chose à faire que d'embêter une communauté pour quelque chose de trouvable facilement ^^

De plus, sûrement par lubie de prof voulant absolument montrer sa mise à niveau en technologie, nous sommes obligés d'utiliser une carte arduino :slight_smile: (parceque oui, c'est pas franchement sorcier de coller 2 résistances derrière un moteur)

@troisiemetype
Merci beaucoup pour tes conseils ^^
Honnêtement je pense pouvoir réussir à faire quelque chose, mais pour le coup j'étais vraiment perdu ("Dis moi tu passes bien la plupart de ton temps derrière un ordi ?" "euh oui mais c'est surtout pour jouer et..." "Très bien tu t'occupes du programme")

C'est gentil de m'avoir donné une démarche, je me renseigne sur le grafcet tout de suite :slight_smile:

bonjour,
tu as le principe, donc fais un organigramme.
lis les tutos eskimos.
comme les autres, le projet est assez simple en soit.
une fois l'organigramme fait, le plus gros est fait, il restera a le retranscrire en code et ca va rouler.

Pour moi celle-ci est l'une des meilleures : Don't Wake me. Il est sur que pour celle-là, il a du utiliser un µC ! :smiley:
Mais la boîte simple comme celle de ThinkGeek que tu nous as montré, n'a pas besoin de µC. Tout dépend de ce que tu souhaites faire.
Un conseil : commence par faire simple avant de vouloir faire compliqué. Assembler tes éléments pour que ca bouge correctement, apprendre, tester puis seulement après, tu peux aller plus loin ! :wink:
Les tutos d'eskimon sont la référence francophone pour commencer et apprendre, alors n'hésite pas à les lire !

Pour t'aider, nous aurons besoin que tu nous postes du code que t'aurais déjà écrit et/ou des schémas, si tu rencontres un problème. Car sinon cela reviendrait à le faire à ta place et comme tu l'as si bien dit, ce n'est pas le but !

Hello Wolky,

Joli projet dans lequel il y a moyen de s'éclater en programmant des comportements loufoques...
(cf la version proposée par Zorro_X)

Par contre, je n'ai pas bien compris le rôle du plateau d'imprimante dans le processus...
(J'ai pourtant bu mon café matinal)

Au plaisir de suivre l'évolution de ce projet,

Coyotte

coyotte:
Par contre, je n'ai pas bien compris le rôle du plateau d'imprimante dans le processus...
(J'ai pourtant bu mon café matinal)

Si j'ai bien saisi le truc, la boîte serait double, avec un même bras pour les deux cotés. Le plateau d'imprimante servirait à emmener le bras d'un coté ou de l'autre?

Bonjour à tous,

Désolé de pas avoir répondu plus tôt, je suis en période d'exam ^^

Merci Zorro_X et infobarquee pour vos conseils, je regarde ça demain après-midi (après le ds de math x) )

@Coyotte
Comme l'as dit troisièmetype ^^ le but est qu'il n'y ai qu'un seul bras qui puisse bouger d'un interrupteur à l'autre
Pour vous faire une idée, recherchez "advenced useless box"

@ troisièmeType et@Wolky :

Je n'avais pas percuté... Merci pour votre patience avec les "vieux" :wink:
Grâce à ce sujet, j'ai une foule d'idées pour en faire une nouvelle également...
(La mienne est basique et fonctionne avec deux switches)

Coyotte

Celle-ci, la multi-switch est pas mal aussi. C'est un bon exercice amusant pour l'utilisation d'un pas à pas et d'un charriot...

Bonjour à tous,

Désolé pour ce temps d'attente, avec les exam et tout ça n'a pas été facile pour moi de me pencher sur le projet

Mais voici, après étude sur vos conseil, une analyse grafcet que j'ai fais :

Je suis entrain d'établir le schéma de câblage puis je me lance dans le programme, merci à tous :slight_smile:

Zorro_X:
Celle-ci, la multi-switch est pas mal aussi. C'est un bon exercice amusant pour l'utilisation d'un pas à pas et d'un charriot...

Le top serait d'avoir un time stamp sur chaque bouton, pour les éteindre dans l'ordre où ils ont été allumés! :slight_smile:

Wolky, c'est un petit pour pouvoir le lire à l'écran. Mais l'essentiel est que tu avances! Et en l'occurrence, on dirait que tu avances sainement!

Coucou,

J'ai essayé de la mettre un peu plus grand, est-ce mieux ?

Sinon voici un lien :

Ah oui, c'est plus lisible!

Bon, et bien tu as ta structure! Les étapes de la structure te donnent les actions (digitalWrite, Servo.write(), Stepper.step(), etc.), et les transitions te donnent les états, que tu pourras matérialiser par des structures de contrôle, telles que if else, ou while...
:wink:

Un fois avoir fais ça j'ai voulu me lancer dans le câblage et le code, mais je me suis heurté à plusieurs problèmes :

Comment dire à la carte Arduino d'envoyer du -3V dans le MCC ? Tout les tutos que j'ai vu utilisent un microcontrôleur... mis à part le nom, j'en ai jamais entendu parler ! :slight_smile:

Aussi en lisant plusieurs pages j'ai vu que si je branchais tout comme ça (en admettant que j'arrive à tout brancher comme il faut) ça risquait de cramer, qu'il fallait donc mettre des résistances.

Comment choisir ces résistances ?

J'ai vu d'autre préconiser des shields, et pour être honnête j'ai beau avoir regardé des démos et des tutos je ne comprend pas grands choses non plus : si j'en utilise un, est-ce que je dois encore choisir des résistances ou justement cela rend possible le fait de ne pas en utiliser ?

Merci encore de vos lumières

Les servos, s'ils sont petits, peuvent être alimentés à même la carte. La masse à la masse, le + a 5V, et le signal sur la broche de l'Arduino qui doit le commander. Les signaux de servos sont simplement... des signaux, donc pas de risque de ce coté-là.
Les interrupteurs et les contacts fin de courses peuvent aussi être branchés directement aux broches.

Pour ton moteur en revanche, il va te falloir un circuit de "puissance" (tout est relatif). Sa consommation étant largement supérieure à la capacité du micro-contrôleur, tu grillerais ce dernier en moins de temps qu'il n'en faut pour voir apparaître un petit nuage de fumée. Un shield peut être une solution, je suppose que des transistors adaptés peuvent en être une autre. Mais mes connaissances en électronique sont assez faibles, je laisse donc à d'autres le soin de répondre correctement.

troisiemetype:
Le top serait d'avoir un time stamp sur chaque bouton, pour les éteindre dans l'ordre où ils ont été allumés! :slight_smile:

Il y a plusieurs possibilités :

  1. sur la vidéo il prend toujours le plus à gauche et fait dans l'ordre ;
  2. ce que tu proposes : éteindre selon l'ordre d'allumage, un timestamp est inutile, une simple liste ou un tableau suffisent pour stocker la séquence ;
  3. un petit algo optimisant le parcours faisant en sorte qu'il éteigne d'abord ceux qui sont les plus proches de sa position ;

En gros, il y a de quoi s'amuser quoi... :wink:

Mon père (ex-automaticien qui m'aide un peu sur le projet) a eu pour idée d'utiliser des relais électronique afin de pouvoir inverser la polarité et de séparer l'alimentation de la carte par rapport au moteur.

Voici ce qu'on a pensé faire :

(lien si trop petit : https://www.pixenli.com/images/1482/1482486192072519800.png)

Il faut savoir que le simulateur a quelques limites, aussi :

Les piles sont normalement reliées à la carte arduino à la place du cordon USB (on effectue la séparation à ce niveau là)

Nous avons mis 4 switchs identiques mais ils sont chacun représentatif des interrupteurs et des Fin de course (ils sont annotés sur le schéma)

Qu'en pensez-vous ?

Je me lance sur la programmation à partir de ce modèle, encore merci pour toutes vos aides :slight_smile: