Table des matières:

Servo Squirter - Pistolet à eau USB : 5 étapes
Servo Squirter - Pistolet à eau USB : 5 étapes

Vidéo: Servo Squirter - Pistolet à eau USB : 5 étapes

Vidéo: Servo Squirter - Pistolet à eau USB : 5 étapes
Vidéo: Вещи, которые мистеру Уэлчу больше не разрешается делать в сборнике для чтения RPG № 1-2450 2024, Novembre
Anonim
Servo Squirter - Pistolet à eau USB
Servo Squirter - Pistolet à eau USB

Un pistolet à eau servo contrôlé par USB. Idéal pour tirer sur des passants sans méfiance ou pour tenir à distance les personnes ayant des questions ennuyeuses. Ce projet est une petite pompe à eau montée sur un servo pour un tir directionnel. Le tout est piloté par un microcontrôleur et contrôlé à partir de votre clavier via USB. Pour voir plus de nos projets et des didacticiels vidéo gratuits, consultez notre site Web

Étape 1: Rassemblez les matériaux

Rassembler les matériaux
Rassembler les matériaux
Rassembler les matériaux
Rassembler les matériaux
Rassembler les matériaux
Rassembler les matériaux

Ce projet est basé sur un microcontrôleur. Autre que le microcontrôleur ATmega168 inclus dans le NerdKit USB. Pour ce projet, nous avons utilisé les éléments suivants: 1 Servo Hobby, Hitec HS-501 Pompe à eau à piston basse tension1 Petit MOSFET à canal n, 2N7000

Étape 2: Assembler le circuit

Assembler le circuit
Assembler le circuit
Assembler le circuit
Assembler le circuit
Assembler le circuit
Assembler le circuit
Assembler le circuit
Assembler le circuit

La première partie de notre circuit se connecte simplement au servo. C'est simple ici: un fil du microcontrôleur au servo. Il existe quelques étiquettes de couleurs différentes selon le fabricant, alors vérifiez avant d'essayer cela. Photo schématique du circuit ServoSquirter sur la planche à pain NerdKitsLa deuxième partie du circuit permet au microcontrôleur d'allumer et d'éteindre le moteur de la pompe. La puce ATmega168 elle-même n'autorise que 40 mA max dans ou hors de n'importe quelle broche, mais notre pompe nécessite plus de 1000 mA ! Ainsi, afin de contrôler cette charge plus importante, nous avons choisi d'utiliser un transistor plus gros, le 2N7000. Tout d'abord, nous expliquons les bases de l'utilisation des MOSFET (Metal Oxide Semiconductor Field Effect Transistors) comme commutateurs: en amenant la tension de grille au-dessus de la source, nous pouvons permettre au courant de circuler du drain à la source. De la fiche technique 2N7000, nous avons extrait la figure 1, qui montre la relation entre le courant de drain et la tension drain-source pour différents réglages de tension grille-source. Il y a quelques choses importantes que vous pouvez apprendre de ce graphique: 1. Pour VGS en dessous d'environ 3,0 volts, aucun courant n'est autorisé à circuler. Il s'agit de l'état désactivé, également appelé "coupure". 2. Pour les petits VDS, la courbe semble à peu près linéaire à travers l'origine, ce qui signifie qu'elle "ressemble" électriquement à une résistance. La résistance équivalente est la pente inverse de la courbe. Cette région de fonctionnement du MOSFET est appelée « triode ». 3. Pour les VDS plus grands, un certain niveau maximum de courant est atteint. C'est ce qu'on appelle la "saturation". 4. Au fur et à mesure que nous augmentons VGS, plus de courant est autorisé à circuler dans les modes triode et saturation. Et maintenant, vous avez en fait appris les trois modes de fonctionnement du MOSFET: coupure, triode et saturation. +5 ou 0), on ne s'intéresse qu'à la courbe surlignée en jaune, pour VGS=5V. Normalement, l'utilisation d'un MOSFET comme commutateur implique généralement le mode de fonctionnement triode, car le MOSFET dissipe la puissance PD=ID*VDS, et un bon commutateur devrait dissiper peu de puissance dans le commutateur lui-même. Mais dans ce cas, nous avons affaire à un moteur, et les moteurs ont tendance à nécessiter beaucoup de courant (avec une faible chute de tension) lors de leur premier démarrage. Ainsi, pendant la première seconde ou les deux premières secondes, le MOSFET fonctionnera avec un VDS élevé et sera limité par son courant maximum - environ 800mA à partir de la ligne pointillée rouge que nous avons dessinée sur la fiche technique. Nous avons constaté que cela ne suffisait pas pour démarrer la pompe, nous avons donc utilisé une petite astuce et mis deux MOSFET en parallèle. De cette façon, ils partagent le courant et peuvent effectivement absorber environ 1600 mA ensemble. De plus, en raison des exigences de puissance élevées de la pompe, nous avons utilisé un transformateur mural avec une sortie de courant plus élevée. Si vous avez un transformateur mural avec une sortie supérieure à 5V - peut-être 9V ou 12V - alors vous pouvez

Étape 3: Configurer le PWM sur le MCU

Configurer le PWM sur le MCU
Configurer le PWM sur le MCU
Configurer le PWM sur le MCU
Configurer le PWM sur le MCU
Configurer le PWM sur le MCU
Configurer le PWM sur le MCU

Registres et calculs PWMDans la vidéo, nous parlons de deux niveaux utilisés par le module minuterie/compteur: la valeur supérieure et la valeur de comparaison. Ces deux éléments sont importants pour générer le signal PWM que vous souhaitez. Mais pour activer la sortie PWM de votre ATmega168 en premier lieu, nous devons configurer quelques registres. Tout d'abord, nous sélectionnons le mode PWM rapide avec OCR1A comme valeur supérieure, ce qui nous permet de définir arbitrairement la fréquence de démarrage d'une nouvelle impulsion. Ensuite, nous réglons l'horloge pour qu'elle s'exécute avec une pré-division de 8, ce qui signifie que le compteur augmentera par 1 toutes les 8/(14745600 Hz) = 542 nanosecondes. Étant donné que nous avons des registres 16 bits pour cette minuterie, cela signifie que nous pouvons définir notre période de signal globale à 65536*542ns = 36 millisecondes. Si nous utilisions un numéro de division plus grand, nous pourrions éloigner nos impulsions (ce qui n'aide pas dans cette situation) et nous perdrions la résolution. Si nous utilisions un numéro de division plus petit (comme 1), nous ne serions pas en mesure d'écarter nos impulsions d'au moins 16 millisecondes, comme notre servo l'attend. Enfin, nous définissons le mode Comparer la sortie pour un PWM "non inverseur". sortie, qui est décrite dans notre vidéo. Nous avons également défini la broche PB2 comme une broche de sortie - non montrée ici, mais elle est dans le code. Cliquez pour agrandir ces images à partir des pages 132-134 de la fiche technique ATmega168, avec nos sélections de valeurs de registre mises en évidence:

Étape 4: programmer le microcontrôleur

Il est maintenant temps de programmer réellement le MCU. Le code source complet est fourni sur notre site Web https://www.nerdkits.com/videos/servosquirterLe code configure d'abord le PWM pour piloter le servo. Le code se trouve alors dans une boucle while en attente de l'entrée de l'utilisateur. Les caractères 1 et 0 activent ou désactivent la broche MCU connectée au transistor de pompe. Cela allumera et éteindra la pompe, ce qui nous permettra de tirer à volonté. Le code répond également aux touches '[' et ']' ces touches augmenteront ou diminueront la valeur de comparaison sur la broche PWM, ce qui provoquera le servo moteur pour changer de position. Cela vous donne la possibilité de viser avant de tirer.

Étape 5: Communications du port série

Communications par port série
Communications par port série
Communications par port série
Communications par port série
Communications par port série
Communications par port série
Communications par port série
Communications par port série

La dernière étape consiste à configurer l'ordinateur afin que vous puissiez envoyer les commandes au microcontrôleur. Dans le NerdKit, nous utilisons le câble série pour envoyer des commandes et des informations à l'ordinateur. Il est possible d'écrire des programmes simples dans la plupart des langages de programmation qui peuvent communiquer via le port série avec le NerdKit. Cependant, il est beaucoup plus simple d'utiliser un programme de terminal pour effectuer la communication série à notre place. De cette façon, vous pouvez simplement taper sur le clavier et voir la réponse du NerdKit. WindowsSi vous utilisez Windows XP ou une version antérieure, HyperTerminal est inclus et devrait être dans votre menu Démarrer sous "Démarrer -> Programmes -> Accessoires -> Communication". Lorsque vous ouvrez HyperTerminal pour la première fois, il vous demande de configurer une connexion. Annulez-les jusqu'à ce que vous soyez à l'écran principal de l'HyperTerminal. Vous devrez configurer HyperTerminal, choisir le bon port COM et définir les paramètres de port de manière appropriée pour fonctionner avec le NerdKit. Suivez les captures d'écran ci-dessous pour configurer correctement HyperTerm. Si vous utilisez Windows Vista, HyperTerminal n'est plus inclus. Dans ce cas, allez télécharger PuTTY (installateur Windows). Utilisez les paramètres de connexion ci-dessous pour configurer Putty, en utilisant le port COM approprié. Mac OS XAprès être entré dans l'application Terminal, tapez "screen /dev/tty. PL* 115200" pour commencer à communiquer sur le port série. LinuxSur Linux, nous utilisons " minicom" pour parler au port série. Pour commencer, exécutez "minicom -s" sur la console pour accéder au menu de configuration de minicom. Allez dans "Configuration du port série". Définissez les paramètres comme suit: Configuration de Minicom sous LinuxEnsuite, appuyez sur Échap et utilisez l'option "Enregistrer la configuration en tant que dfl" pour enregistrer les paramètres par défaut. Vous devriez maintenant pouvoir appuyer sur "Quitter" et utiliser minicom pour parler au NerdKit.

Conseillé: