Outils d'utilisateurs

Outils du Site


projets:distributeur_de_croquettes_connecte_-_iroger

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

projets:distributeur_de_croquettes_connecte_-_iroger [2017/01/20 01:48]
maxzor créée
projets:distributeur_de_croquettes_connecte_-_iroger [2017/02/02 00:33] (Version actuelle)
maxzor
Ligne 1: Ligne 1:
 ====== Distributeur de croquettes connecté - iRoger  ====== ====== Distributeur de croquettes connecté - iRoger  ======
  
-/!\ En construction /!\+ 
 +Un distributeur de croquettes pour chat 2.0, en wifi via VNC, ou ethernet via un navigateur web. 
 + 
 +{{:projets:distributeur_de_croquettes_connecte_-_iroger:iroger_plongee.png?nolink&300 |}} 
 +{{ :projets:distributeur_de_croquettes_connecte_-_iroger:iroger_contreplongee.png?nolink&300|}} 
 + 
 + 
 + 
 +La machine a trois fonctions : 
 + 
 +- distribuer une ration de croquettes directement 
 + 
 +- planifier un/plusieurs repas quotidien(s) 
 + 
 +- prendre une photo de la gamelle 
 + 
 + 
 +Objectif : Pouvoir partir en vacances sans - trop - se soucier du chat! 
 + 
 +Un grand remerciement à toute l'équipe du meilleur fablab de Paris, notamment pour l'impression 3D et la découpe laser, votre aide a été géniale! 
 + 
 +Le projet est open-source dans la mesure de ses composants (Raspberry Pi 0, Dynamixel XL320) : les modules python, une image complète de l'OS Raspbian Jessie (Linux) fonctionnel, de la documentation en extra dont un manuel, ainsi que la dizaine de pièces imprimées en 3D sont disponibles à l'adresse github ci-dessous.
  
 <!-- Complétez la fiche projet ci dessous --> <!-- Complétez la fiche projet ci dessous -->
Ligne 16: Ligne 37:
 }}} }}}
  
 +{{ :projets:distributeur_de_croquettes_connecte_-_iroger:iroger_vue_elec_-_copie.png?nolink |}}
  
-Un distributeur de croquettes pour chat 2.0, en wifi via VNC, ou ethernet via un navigateur web. 
  
-3 fonctions :+===== Logiciel =====
  
-- distribuer une ration de croquettes directement+Ayant trempé depuis un moment dans l'univers Raspberry, je me suis servi naturellement d'une de ces cartes. J'avais comme projet à moins court terme de créer une bibliothèque temps réel pour servomoteur, ce projet était tout trouvé pour m'initier à de la programmation de bas niveau d'un Dynamixel :) 
 +L'occasion aussi de bidouiller un chouïa de QT pour l'interface graphique et de SQLite pour la base de données.
  
-- planifier un/plusieurs repas quotidien 
  
-prendre une photo de la gamelle+Des plans pour le petit programme : {{:projets:distributeur_de_croquettes_connecte_-_iroger:20161227_195857.jpg?nolink|}}
  
-===== Conception =====+L'interface graphique du logiciel est réalisée à l'aide du binding Qt-Python PyQt.<note>http://ogirardot.developpez.com/introduction-pyqt/</note> La commande linux pyuic permet ainsi de passer d'une extension .ui créée sous QtCreator à un module python.
  
-Objectif Pouvoir partir en vacances sans trop se soucier du chat!+Plusieurs façons existent pour faire communiquer un Raspberry à un servomoteur Dynamixel, dont la carte Pixl du projet Poppy (https://forum.poppy-project.org/t/informations-sur-la-carte-pixl-raspberry-pi-xl320/2125/39), ou celle que j'ai retenue, utilisant un buffer trois états http://www.oppedijk.com/robotics/control-dynamixel-with-raspberrypi 
 +J'ai crée une "librairie" de commandes moteurs très succinte (des librairies beaucoup plus complètes existent!) grâce à la documentation Dynamixel - le programme de calcul des clés CRC (Cyclic Redundant Check) est fourni par Robotis, le constructeur, un analyseur logique s'est en plus avéré très utile.<note>http://support.robotis.com/en/product/actuator/dynamixel_x/xl_series/xl-320.htm</note>
  
-Motivations : Ayant trempé depuis un moment dans l'univers Raspberryje me suis servi naturellement d'une de ces cartesJ'avais comme projet à moins court terme de créer une bibliothèque temps réel pour servomoteur, ce projet était tout trouvé pour m'initier à de la programmation de bas niveau d'un Dynamixel :+La programmation des distributions se fait via un CRUD(CreateRead, Update, Delete) sur la base de donnée très simple et légère SQLite. 
-L'occasion aussi de bidouiller un chouïa de QT pour l'interface graphique et de SQLite pour la base de données.+Un système de threads intégré à Qt permet de faire tourner en fond un module reposant sur la librairie schedule. <note>[[https://schedule.readthedocs.io/en/stable/]]</note>
  
-Partie "physique" : J'ai opté pour une structure en bois massif, mais d'autres projets traînent sur Youtube en contreplaqué découpé par CNC plus économes. +Etant ignorant complet en programmation web, après m'être essayé à NodeJS, j'ai préféré pour la connexion à distance recourir à l'application clé en main VNC ^_^Remot3It se greffe en plus pour éviter d'exposer le port Raspberry au-delà de la box internet.
-La distribution se fait par une "roue à aube". Une trappe sur la façade avant permet de voir les entrailles du mécanisme.+
  
-Partie électronique : Un Raspberry Pi Zéro comme ordinateur donc. +===== Electronique =====
-Schéma des autres composants : +
  
-===== Réalisation =====+Schéma des composants :  
 +{{:projets:distributeur_de_croquettes_connecte_-_iroger:electrical_circuit.pdf|}}
  
-Des plans pour la menuiserie {{:projets:distributeur_de_croquettes_connecte_-_iroger:20170105_185921.jpg?nolink&600|}}+Pour piloter une LED de puissance, requérant donc plus que l'alimentation faiblarde des ports GPIO du Raspberry, consulter ces très bons tutoriels : 
 +https://www.youtube.com/watch?v=Dn2NEZC5dEM&t=5s
  
-Des plans pour le petit programme : {{:projets:distributeur_de_croquettes_connecte_-_iroger:20161227_195857.jpg?nolink&600|}}+ 
 + 
 +===== Menuiserie et quincaillerie ===== 
 + 
 +J'ai opté pour une structure en bois massif, mais d'autres projets traînent sur Youtube en contreplaqué découpé par CNC plus économes. Le réservoir à croquette consiste en une bouteille en plastique, la distribution se fait par une "roue à aube" vers un tube en PVC qui mène à la mangeoire. Une trappe sur la façade avant permet de voir les entrailles du mécanisme ( la Led de puissance à l'intérieur s'allume pendant les distributions). 
 + 
 +Des plans pour la menuiserie : {{:projets:distributeur_de_croquettes_connecte_-_iroger:20170105_185921.jpg?nolink|}}
  
 Et de l'huile de coude! Et de l'huile de coude!
 +
 +L'assemblage :
 +
 +{{ :projets:distributeur_de_croquettes_connecte_-_iroger:20170117_193011.jpg?nolink& |}}
 +
 +
 +===== Liste de courses =====
 +
 +== Electronique ==
 +
 +- un raspberry pi 0 - 5€
 +
 +- un dongle wifi https://www.adafruit.com/product/814 - 10€
 +
 +- la caméra pi noir - 15€
 +
 +- un servomoteur Dynamixel XL320 - 15€
 +
 +- trois convertisseurs de tension, un secteur 230V AC - 12V DC, un 12V-5V pour le raspberry et les modules logiques et un 12V-7,5V pour le servomoteur et la LED de puissance - 15€
 +
 +- un buffer tri-state 74LS241 https://www.selectronic.fr/circuit-logique-ls-74-ls-241.html?suggestion=produit - 1€
 +
 +- un transistor NPN 2SC2497 https://www.selectronic.fr/tr-npn-2sc2497-q-boitier-to-126.html?suggestion=produit - 2€
 +
 +- une LED de puissance https://www.selectronic.fr/led-blanc-chaud-180lm.html?suggestion=produit - 5€
 +
 +- une résistance de 5,5 Ohm 1/2 W, une autre de 250 Ohm 3W - 1€
 +
 +== Autre ==
 +
 +- Bois, contreplaqué - 15€
 +
 +- Quincaillerie - 5€
 +
 +On peut donc s'en sortir dans les 90€.
 +
 +===== Tutoriels vidéos =====
 +
 +{{youtube>MPzYqXy6vQ8?medium}}
 +{{youtube>4A13pfu1AwI?medium}}
  
 ===== Difficultés rencontrées ===== ===== Difficultés rencontrées =====
  
-A posteriori j'aurais du adopter un mécanisme de vis sans fin, sans doute mois sujets aux contraintes mécaniques.+A posteriori j'aurais du adopter un mécanisme de vis sans fin, sans doute mois sujets aux contraintes mécaniques : j'ai dû bidouiller un module de débourrage, le servomoteur intelligent permet en effet de mesurer une vitesse instantanée, un couple subi...
  
 Pour la partie électronique, pas autant de hics que de satisfaction à toucher à plein de domaines : buffer trois états pour la conversion UART/TTL, transistor NPN pour le contrôle de la LED de puissance... Pour la partie électronique, pas autant de hics que de satisfaction à toucher à plein de domaines : buffer trois états pour la conversion UART/TTL, transistor NPN pour le contrôle de la LED de puissance...
Ligne 61: Ligne 129:
 Un module hardware pour un contrôle filaire de la machine avec un petit écran LCD et quelques boutons est une autre piste d'évolution. Un module hardware pour un contrôle filaire de la machine avec un petit écran LCD et quelques boutons est une autre piste d'évolution.
  
-===== Photos ===== 
  
  
projets/distributeur_de_croquettes_connecte_-_iroger.1484873309.txt.gz · Dernière modification: 2017/01/20 01:48 par maxzor