Le logo est un dérivé du logo de la communauté Arduino sous licence Creative Commons CC-SA-BY-NC 3.0
Mise à jour: Annonce des gagnants
Les gagnants du concours ont été annoncés. Veuillez consulter le message Meta pour plus de détails .
Pour célébrer les 10 ans d'Arduino , nous sommes fiers d'annoncer le premier événement sur Arduino Stack Exchange.
Sortez vos cartes et votre équipement de soudage, déterrez les circuits intégrés et les résistances. Le premier concours Arduino Stack Exchange approche à grands pas. Nous chercherons des projets intéressants qui sont construits en utilisant Arduinos. Le concours vise à partager, discuter et fournir des commentaires sur les projets sur lesquels vous et d'autres membres travaillez. Voir l'annonce
Détails:
- Le prix est un t-shirt officiel Stack Exchange
- Limite de deux entrées par personne. Si plus de deux sont fournis, seuls les deux premiers seront pris en compte.
- Les clones sont autorisés.
- Les projets à considérer seront acceptés jusqu'au 29 mars 2014 à 4h00 UTC. La question restera ouverte au cas où quelqu'un voudrait montrer son projet réalisé lors de l'Arduino Day 2014.
Visitez le message Meta pour discuter de cet événement et de plus amples informations.
Format de réponse
Vous pouvez publier jusqu'à deux projets (sous forme de deux réponses distinctes) en tant qu'inscriptions au concours. Toutes les entrées supplémentaires seront supprimées. Pensez à suivre le modèle suivant pour les entrées:
Titre du projet
Très brève description
La description
Quel est ton projet? Qu'est ce que ça fait? Quel problème résout-il?
Conception
Éléments à inclure dans cette section:
- Schémas et autres documents de conception. Fritzing est un bon outil pour dessiner des schémas de maquette comme celui montré dans le logo du projet ci-dessus.
- Composants utilisés pour construire le projet
- Photos ou vidéo
Conclusion
Dernières pensées. Qu'avez-vous appris de ce projet? Que feriez-vous différemment si vous deviez recommencer?
Vous pouvez copier / coller le texte suivant si vous souhaitez utiliser ce modèle.
# Project Title
**Very Brief Description**
# Description
What is your project? What does it do? What problem does it solve?
# Design
Things to include in this section:
- Schematics and other design documentation. [Fritzing][8] is a good tool for drawing breadboard schematics like the one shown in the project logo above.
- Components used to build the project
- Pictures or video
# Conclusion
Final thoughts. What did you learn from doing this project? What would you do differently if you had to start over?
Prix
Il y a deux prix! Le gagnant sera la soumission recevant le nombre maximum de votes positifs (les votes négatifs ne comptent pas) et recevra un T-shirt Stack Exchange *! Il y aura aussi quelque chose pour le finaliste. Le finaliste sera décidé à la discrétion des organisateurs de l'événement.
* Certaines restrictions peuvent s'appliquer. L'expédition internationale peut prendre quelques semaines.
Où dois-je soumettre mes projets?
Postez vos projets comme réponses à ce post.
Réponses:
Boîte à quêtes avec état
Un boîtier alimenté par GPS qui vous fait visiter quelques endroits avant d'ouvrir
La description
Il est similaire à questbox , mais il stocke un petit nombre d'informations dans l' EEPROM , vous devez donc visiter deux ou trois endroits différents avant son ouverture.
Conception
Matériel nécessaire:
Coût total du matériel: 137 $ + expédition
Matériaux supplémentaires:
Vous pouvez trouver des instructions de montage dans la page du cadran solaire (vous pouvez acheter la plupart des matériaux d'eux)
Je vais télécharger du code avec état et poster un lien ici, malheureusement je n'aurai pas tout le matériel nécessaire à temps, donc ce n'est qu'une idée :)
Code écrit jusqu'à présent :
Inspiration:
Conclusion
J'ai appris à intégrer de nombreux composants et bibliothèques tous ensemble, je vais devoir voyager un peu pour le tester :)
Le budget peut être réduit un peu en changeant un peu le concept:
la source
Économiseur d'énergie pour l'utilisateur de PC distrait
Cet appareil allume / éteint mes lumières de bureau lorsqu'il fait sombre (ish) et en synchronisation avec l'écran de veille de mon PC.
La description
Le projet n'est rien de plus qu'une combinaison d'un capteur photosensible, d'un relais et d'un code intelligent qui surveille l'économiseur d'écran sur mon PC. Au crépuscule et lorsque l'économiseur d'écran n'est pas activé, il allume les lumières sur mon bureau. Lorsque je quitte ensuite mon bureau, l'économiseur d'écran s'active, ce qui déclenche à son tour l'extinction de la lumière du bureau. Lorsqu'il y a suffisamment de lumière pendant la journée, les lumières ne sont pas allumées du tout. Le problème résolu est de réduire le gaspillage d'énergie dû à l'allumage de l'éclairage de mon bureau lorsque je quitte la pièce.
Conception
Parce que la puissance des microcontrôleurs / Arduino ne nécessite qu'un peu de matériel supplémentaire pour créer un projet utile. Il en va de même pour ce projet où le matériel est un peu plus que:
simuler ce circuit - Schéma créé à l'aide de CircuitLab
Conclusion
J'ai appris à interfacer le PC via la liaison série USB avec Arduino et à lire l'état actuel de l'économiseur d'écran sur mon PC. Si je recommençais, j'utiliserais un contrôleur beaucoup plus petit car je n'ai vraiment besoin que d'une seule sortie numérique et d'une seule entrée analogique. Basez probablement le projet sur V-USB . Arduino est cependant excellent pour la preuve de concept (PoC) rapide et facile. (Le PoC est sur mon bureau depuis au moins deux ans déjà).
la source
Je pense que ce genre de chose correspond à peine aux règles, mais c'est assez intéressant pour que je pense que je le publierais de toute façon.
Générateur d'horodatage synchronisé par GPS de haute précision à des fins d'acquisition de données.
Il s'agit d'un projet assez intéressant qui est destiné à être utilisé pour fournir un moyen facile de synchroniser plusieurs systèmes d'acquisition de données indépendants.
Fondamentalement, je travaille dans un laboratoire de recherche, et nous avons souvent des instruments qui ont plusieurs systèmes d'acquisition de données indépendants, qui peuvent être physiquement séparés jusqu'à 50 pieds. Nous devons être en mesure de corréler l'heure à laquelle les échantillons de chaque système ont été prélevés, ce qui peut être difficile si vous souhaitez résoudre les temps d'échantillonnage avec un grand degré de précision. En utilisant quelque chose comme un système d'acquisition de données USB, seule la latence USB peut introduire plusieurs centaines de millisecondes de latence inconnue, qui peuvent varier d'une acquisition à l'autre.
La solution précédente était un compteur parallèle 24 bits qui était simplement mis en bus partout, nécessitant un énorme faisceau de câbles, et était une sorte de douleur dans le cul.
Ce système utilise un module GPS de synchronisation spécialisé qui peut synthétiser des horloges de fréquence arbitraires, qui sont verrouillées en phase et en fréquence sur les horloges atomiques des satellites GPS.
Le MCU est chargé de lier les messages de données GPS (j'ai dû étendre et optimiser fortement un analyseur de protocole existant pour les données GPS). Le GPS est configuré pour utiliser un protocole binaire propriétaire, et tout est analysé par l'analyseur que j'ai écrit.
Le projet a subi un certain nombre de révisions (photo ci-dessous).
Conception
Révisions!
Rev 1: n'a jamais fonctionné, car j'espérais initialement utiliser un logiciel dPLL sur un GPS beaucoup moins cher, pour synthétiser une horloge de fréquence plus élevée à partir de la seule sortie 1 PPS. Il est probablement possible de le faire fonctionner, mais l'investissement en temps ne le rendait pas intéressant. (et je suis un codeur trop merdique)
Utilisé une hélice MCU de parallaxe. Le manque de langues compilées décentes était également un problème majeur.
Rev 2: Passé à un ATmega2560. Travaillé, avait beaucoup d'aspects de conception géniaux hérités de la première rév. Principalement, l'utilisation continue de registres à décalage pour la sortie 32 bits, malgré le nombre plus que suffisant d'E / S sur l'ATmega2560.
Première carte qui a exécuté Optiboot et a été en fait entièrement programmée à l'aide de la chaîne d'outils Arduino standard, avant que je ne m'énerve et ne commence à modifier la chaîne d'outils pour mieux l'adapter à mes besoins.
Rev 3: a également fonctionné. Le câblage corsé est dû au fait que cette carte incorporait un concentrateur USB intégré pour réduire le nombre de ports USB requis (l'interface FTDI nécessite 1 USB et le GPS a également une interface USB). Malheureusement, le GPS ne serait pas correctement énuméré, bien que le périphérique FTDI fonctionne correctement, et j'ai utilisé ce hub ailleurs sans problème. Bizarre.
Je n'ai pas de débogueur USB approprié, j'ai donc laissé tomber complètement le concentrateur USB, plutôt que d'essayer de résoudre le problème. De toute façon, l'USB GPS n'est pas vraiment utilisé en dehors de la configuration.
Rev 4: Version semi-finale ATmega2560. Ajout d'un écran LCD pour l'état du GPS, tripoté de LED et ainsi de suite. En outre, de meilleures empreintes pour les super-condensateurs possibles pour maintenir l'état du GPS lorsqu'ils ne sont pas alimentés.
Ceci est la dernière version d'Optiboot.
MStime
est leMSTOW
, ou Millisecond-Time-Of-Week, qui est le nom de la valeur de données GPS qui est sortie sur l'horodatage. Il s'agit d'une variable 32 bits qui s'incrémente une fois par millisecondes et se renouvelle chaque semaine. C'est une partie plus obscure de la norme GPS.ITOW
est une autre valeur liée au GPS, étant une valeur qui correspond au signal 1PPS. La corrélation entre les deux ne se reflète pas correctement sur l'écran LCD, car je n'ai pas le temps CPU pour mettre à jour l'écran LCD à la vitesse que j'aimerais. C'était en fait l'une des principales améliorations apportées à la mise à niveau des appareils Xmega.Rev 5: commutateur d'architecture complet. Utilise désormais un processeur ATxmega128A1U. Plus vraiment "Arduino" du tout, mais la possibilité d'avoir plusieurs niveaux d'interruption sur la série de processeurs xmega m'a permis d'améliorer considérablement la structure du code.
Les deux bodge-wire sont de moi en train d'expérimenter, la planche a bien fonctionné sans eux aussi.
Avoir hâte de:
Rév 6!
Ajoutez la possibilité d'utiliser différentes tailles d'écran LCD, plus de protection ESD sur la connexion de l'antenne GPS (qui était un problème), la possibilité d'utiliser une batterie CR2032 pour maintenir l'horloge GPS au lieu des super-condensateurs.
En outre, un meilleur étiquetage des LED de débogage et d'état.
Et en bonus Nyan-Cat!
(Ces cartes sont en cours de fabrication pour le moment. Quand je les obtiendrai, j'ajouterai des photos de la vraie carte.)
J'ai fait des tests de longue durée entre deux des cartes ATmega2560, et sur 72 heures, l'erreur de temps RMS entre les deux unités était de ~ 20 uS. C'était aussi avec deux antennes complètement indépendantes. Mon objectif de conception était <1 ms, donc je suis sacrément satisfait de cela.
Dans l'ensemble, je pense que cela illustre bien comment Arduino peut être un outil utile pour le prototypage précoce de "vrais" produits / systèmes. Je l'utilise pour lancer une version de test initiale avec un minimum d'effort, et quand je suis convaincu que l' idée fonctionnera, je mets en fait le travail pour migrer vers une implémentation entièrement personnalisée et spécifique.
Fichiers de conception:
https://fake-server.no-ip.org/svn/FPGAStuff/DAQ%20systems/
(dans la série de répertoires "GPS Timestamp").
(Remarque: les fichiers proviennent d'Altium Designer. Ce ne sont pas des fichiers Eagle).
Code source:
https://fake-server.no-ip.org/svn/Programming/Code/AVR/
Encore une fois, dans la série de répertoires "gpsTimeStamp".
Désolé pour les photos de téléphone portable de merde.
la source
Sonic Ray Gun
Deux projets d'enfants
Je travaille avec un couple d'enfants éduqués à la maison et nous nous amusons beaucoup avec un arduino. Leur premier projet était une fausse bombe, comme vous le voyez dans les films, avec un compte à rebours LCD et un classique "coupez-vous le fil rouge ou bleu?" problème de type.
Le projet deux a commencé par leur montrer l'exemple de toneMelody et un petit haut-parleur. Ils ont rapidement découvert que si vous augmentez la fréquence à 15 kHz, c'était plutôt ennuyeux pour les adolescents. Une heure plus tard, ils avaient amélioré la conception avec une tasse, du papier toilette et un interrupteur fabriqué à partir d'un trombone faisant un pistolet à rayons sonic directionnel.
Malheureusement pas de photos.
Conclusion
Ne laissez pas les enfants sans surveillance avec un arduino.
la source
(faux) Linux sur Arduino
J'ai récemment acquis un petit écran LCD composite, avec lequel j'ai rapidement commencé à jouer en utilisant la bibliothèque Arduino TVout. Qu'est-ce qui est venu ensuite? Linux!
La description
En jouant avec mon écran de télévision et la bibliothèque TVout, j'ai découvert qu'il existe un gestionnaire de terminal prédéfini pour le téléviseur. J'ai rapidement commencé à essayer de l'utiliser comme terminal TV connecté à un clavier PS / 2. Il y a eu quelques problèmes avec la bibliothèque PS / 2 que j'ai utilisée, je l'ai donc transférée pour utiliser la bibliothèque USB sur mon Mega ADK avec un clavier USB. Cela a fonctionné beaucoup mieux. Maintenant pour le stockage.
Mon bouclier de carte SD n'est pas compatible avec ma Mega, donc je l'ai câblé un peu au hasard au SPI à la fin de la carte. J'ai écrit la gestion des commandes pour effectuer quelques tâches comme lister les fichiers et trouver la taille du disque, l'espace libre, etc. L'ensemble complet n'est en aucun cas terminé, mais je suis satisfait des progrès que j'ai réalisés.
Le code sera finalement déplacé vers Github, regardez les commentaires.
Conception
Défis
J'ai eu beaucoup de mal à concaténer les caractères entrés dans la chaîne stockant la commande actuelle parce que je ne faisais pas un casting correct. Une fois que j'ai compris cela, j'avais également besoin de résoudre le problème où certaines clés imprimaient des déchets aléatoires à l'écran. Cela a été causé par la lecture de la mémoire avant les définitions des lettres, donc quelques-uns l'ont
if
éclairci.Conclusion
Je suis très satisfait du code. Une fois que j'aurai ajouté quelques utilitaires supplémentaires, je le mettrai sur Github, alors regardez les commentaires. Dans l'ensemble, c'était un projet très amusant. J'ai appris à utiliser Stino dans le processus.
la source
ShiftLCD
Carte basée sur AVR, compatible Arduino, qui se monte à l'arrière d'un écran LCD de 8x1 à 20x4 caractères.
La description
Je viens de concevoir cette carte et la bibliothèque personnalisée pour la rendre plus facile à utiliser et LCD. Bien qu'ils soient assez faciles à utiliser pour le moment. Il réduit le nombre de broches de sortie utilisées de 6 à 3. Il a également la possibilité d'étendre les E / S en ajoutant plus de registres à décalage à celui qui pilote l'affichage. Le processeur utilisé est un ATTiny45 ou ATTiny85 qui a, après utilisation du registre à décalage, les broches numériques 1 (PWM) et 4 disponibles et la broche analogique 2 (même broche que la broche numérique 4) disponible.
Conception
Défis
Un défi imprévu auquel j'ai été confronté était lorsque j'ai commencé à utiliser les broches numériques 0-2 pour exécuter le registre à décalage, il s'agissait également des broches de programmation (MISO, MOSI, SCK). Donc, chaque fois que je reprogrammais l'appareil, l'écran LCD recevait un tas de messages de charabia où l'alimentation devait être coupée afin de réinitialiser l'affichage. J'ai résolu ce problème en déplaçant la broche de verrouillage des registres à décalage vers la broche numérique 3 qui n'est pas une broche de programmation. La résolution de ce problème a également résolu un autre problème pour moi car lorsque j'ai déplacé la goupille de verrouillage, elle a ouvert la broche numérique 1 qui avait une utilisation PWM, ce qui permettait de faire plus de choses avec la carte.
Conclusion
Certes, ce n'est peut-être pas le produit ou l'idée la plus cool, il a toujours ses utilisations. La réponse à la question directement: "Qu'avez-vous appris en réalisant ce projet?" J'ai appris à concevoir du début à la fin un circuit imprimé. Si je pouvais faire quelque chose de différent, cela aurait été d'utiliser des pièces de montage en surface au lieu d'un trou traversant, mais là encore, ce n'est qu'un prototype, une carte unique.
la source
Robot poussant les boutons.
Un robot de tir laser à télécommande à quatre roues de huit livres qui pousse les boutons.
La description
J'ai réalisé ce projet au cours de la dernière année scolaire. J'étais en cours de robotique et nous avons décidé d'organiser un concours. Chaque équipe créerait un robot doté d'un gros bouton et d'un moyen d'appuyer sur d'autres boutons. À la fin de l'année, nous aurions le concours final, où les trois robots essaieraient de pousser les boutons l'un de l'autre.
À la fin de l'année, mon robot ne fonctionnait que partiellement. Chaque partie du robot fonctionnait à un moment donné, mais entre un Arduino frit, des pilotes de moteur frits, une organisation de code terrible, et moi étant la seule personne de mon équipe à travailler sur le robot pendant plus de cinq heures au total, j'ai ne pouvait pas le faire fonctionner complètement.
Je n'ai pas touché mon robot depuis près d'un an, donc je sais que si je voulais le faire fonctionner à nouveau, je devrais recâbler le bot et réécrire le code. Je déciderai peut-être de le faire un jour, mais pour l'instant je vais travailler sur des projets moins ambitieux.
Conception
Conception générale
Flux d'informations / d'électricité
Composants
Code
Je n'ai pas très bien organisé mon code, donc j'espère que c'est le bon code.
Plus d'images
Terrible vidéo d'une première version lente, sans bras, sans bouton, sans laser et sans bluetooth du robot.
https://www.youtube.com/watch?v=Q7MvE7-Xb0E
Conclusion
Je suis vraiment bon pour frire l'électronique.
C'était ma première expérience dans un véritable atelier d'usinage. J'ai pu utiliser une fraiseuse CNC, une fraiseuse manuelle, un tour et une scie à ruban. Si je recommençais un projet comme celui-ci, je ferais une bien meilleure documentation, donc je pourrais comprendre ce que je faisais un an plus tard.
la source
Affichage LED à 4 chiffres pour Arduino
Petite carte avec 4 chiffres LED à 7 segments, gérée par 3 broches.
La description
Quand j'ai commencé à travailler avec Arduino, je voulais un moyen d'afficher les valeurs collectées par divers capteurs que j'ai expérimentés, mais je ne voulais pas sortir ces valeurs via
Serial
un PC.Je voulais une petite planche que je pourrais facilement réutiliser d'un projet à l'autre et je voulais épargner une planche à pain.
Cette carte, ainsi que sa petite bibliothèque, permet actuellement l'affichage des nombres à 4 chiffres et ne source aucun courant Arduino pendant l'affichage (le courant n'est fourni que lors de la communication à la carte de la nouvelle valeur à afficher à partir de maintenant).
Conception
La conception est assez simple car j'ai décidé de réutiliser une puce MAX-7219 pour piloter mon écran LED (j'en avais quelques-uns sous la main).
Grâce à cette puce, le schéma était très simple, mais il était important de bien comprendre comment l'utiliser; heureusement, sa fiche technique était assez claire.
La conception originale a été réalisée sur une maquette et a utilisé 4 chiffres à 7 segments LED uniques ; mais cela nécessitait trop de câblage à mon goût (besoin de connecter des segments par groupes de 4). De plus, lors de ma toute première expérience avec des chiffres LED à 7 segments, j'en ai frit un: il avait 2 broches de terre, mais je n'en ai connecté qu'un à GND au lieu des deux :-(
J'ai alors décidé d'opter pour un affichage 4x7 segments, cathode commune , avec des anodes de segment déjà connectées à 4 chiffres: c'est seulement 4 + 8 broches!
Au cours de mes tests, j'ai trouvé une bibliothèque Arduino utile pour travailler avec MAX-7219 que j'ai décidé de réutiliser. J'ai construit ma propre bibliothèque avec une API très simple.
Après la planche à pain, il était temps de rendre le design plus permanent; étant donné que j'avais un tas de planches à langer sous la main, j'ai décidé d'y aller.
J'ai cherché et trouvé un concepteur de Stripboard facile pour PC que j'ai utilisé pour concevoir ma planche.
Le premier design du stripboard n'a pas été optimisé en termes d'espace et j'ai décidé de ne pas l'implémenter:
Ensuite, j'ai revu la conception pour optimiser le coût et la taille (un seul petit panneau de 50x75 mm); c'était facile avec le concepteur de stripboard que j'ai trouvé auparavant:
Une fois la carte prête, j'ai décidé de la vérifier avec un Arduino UNO et un capteur à ultrasons:
Cela semblait fonctionner, sauf que j'avais souvent des valeurs affichées étranges et incohérentes; après enquête, j'ai trouvé que c'était dû au bruit déclenché par le panneau d'affichage , bruit qui interférait avec le capteur. J'avais juste besoin d' ajouter un capuchon de découplage aussi près que possible des broches d'alimentation actuelles du capteur et cela fonctionnait parfaitement (notez que la carte d'affichage avait déjà des capuchons de découplage pour la puce MAX-7219).
Liste des pièces:
Conclusion
30 ans après mes dernières expériences électroniques, j'ai pu retrouver le virus avec Arduino et avec ce tout premier projet qui, bien que relativement simple, m'a appris plusieurs choses:
Si je devais relancer ce projet aujourd'hui, je:
la source
Horloge murale numérique avec télécommande à radiofréquence (RF)
Une grande horloge murale à 7 segments (40x30cm / 16x12 ") avec télécommande R / F.
La description
Ce projet comprend une grande horloge murale numérique à affichage 7 segments (40x30cm / 16x12 ") avec télécommande R / F. Il présente les caractéristiques suivantes:
Conception
Les principaux aspects de ce projet étaient les suivants:
Voici les schémas du contrôleur et de l'une des cartes à 7 segments:
Voici quelques photos des planches que j'ai conçues, gravées et assemblées, et de la télécommande:
Et enfin, voici une photo d'une autre version de l'horloge. Dans celui-ci, je réalise moi-même les affichages à 7 segments à l'aide de LED rectangulaires et de composants discrets.
Conclusion
Ce projet m'a pris beaucoup de temps, d'efforts et d'apprentissage pour arriver à ce stade (il n'est jamais terminé, comme je l'ai appris), mais c'était très amusant. Quelques choses que j'ai apprises:
Étudiez toutes les bibliothèques que vous allez utiliser dans votre projet avant d'attribuer des broches GPIO à votre contrôleur afin d'éviter les conflits potentiels. J'ai eu la malchance d'utiliser la même broche PWM pour le contrôle de la luminosité associée à la minuterie VirtualWire, j'ai donc dû patcher la carte pour que la luminosité et les RF fonctionnent en même temps.
Le sertissage des connecteurs molex et modu KK prend BEAUCOUP DE TEMPS !!
Les pièces en acrylique découpées au laser sont l'avenir. Ils ajoutent beaucoup de qualité à l'appareil même si vous êtes maladroit.
la source
Rotateur d'antenne TV
Rotation de l'antenne télécommandée IR
Vous ne pouvez pas quitter le canapé pour régler la direction de l'antenne du téléviseur? Et même si vous le faites, parfois votre proximité avec l'antenne modifie la réception. Ce serait bien de pouvoir régler l'antenne depuis le canapé. Utilisation de la télécommande du téléviseur.
Composants
Arduino Uno, récepteur IR, moteur pas à pas avec carte de commande, roulement ID 1 ", poignée de balai Swiffer, boîte en plastique,
La description
Utilisez une vieille poignée de balai Swiffer comme poteau d'antenne. J'ai obtenu un roulement de 1 "ID de ma boutique en ligne préférée, dans lequel la poignée de la vadrouille se serre et s'arrête. J'ai percé un trou dans la boîte en plastique assez grand pour que la poignée de la vadrouille puisse passer à travers, mais pas pour le roulement. J'ai percé un rectangle trou dans l'extrémité de la poignée de la vadrouille pour s'adapter à l'arbre d'un moteur pas à pas 28BYJ-48, et coincé l'engin dans la boîte comme illustré. La poignée de la vadrouille repose en fait sur le roulement, et le roulement est super collé au sommet de la boîte en plastique .
Utilisé la bibliothèque stepper.h pour faire pivoter le moteur à partir d'un Uno.
J'ai démonté un lecteur DVD inutilisé et en ai récupéré le récepteur infrarouge. Vous pouvez démonter tout appareil grand public doté d'une télécommande et utiliser le récepteur infrarouge, cela fonctionnera. Le récepteur IR utilise la bibliothèque IRremote.h. À l'aide du moniteur série, j'ai imprimé le code hexadécimal correspondant aux deux boutons de la télécommande du téléviseur que je veux utiliser pour faire fonctionner le moteur de l'antenne. Un pour tourner à gauche, un pour droite.
Pour économiser de l'énergie, utilisez la fonction small_stepper.motorOff () pour désactiver les bobines après chaque mouvement.
Conclusion
C'était un projet amusant qui a également été utile pour ma femme. Je n'ai pas mis en œuvre d'accélération / décélération dans le mouvement, ce qui pourrait être agréable, surtout si l'antenne avait plus d'inertie en rotation.
Edit: désolé que l'image soit de côté! C'est juste sur mon ordinateur, je ne sais pas pourquoi c'est en ligne sur le côté.
la source
La lampe Knock-knock
Une lampe qui s'allume / s'éteint lorsque le bureau est allumé. Actuellement en phase alpha, toujours en prototypage, mais je pense que c'est le projet Arduino le plus utile qui existe. Générateur de blagues ringard inclus ... à partir de blagues à frapper enregistrées précédemment. Remarque: je sais que je ne peux pas gagner dans les règles, mais il n'y a pas de règle pour participer ... Je peux aussi montrer mon projet.
La description
Jusqu'à présent, j'ai à peu près expliqué la majeure partie de cela. Vous frappez et la lumière s'allume et s'éteint. Je suis actuellement sur une planche à pain. J'utilise un élément piézo pour détecter les chocs avec vibrations. En parallèle, j'ai une résistance de 1 mégohm pour protéger mon Arduino Uno SMD.
J'ai pensé à cette conception après avoir presque frappé (haha punny) ma lampe de mon bureau tout en cherchant le petit interrupteur à bascule. Je ne suis pas exactement ... bien adroit . C'est agréable de frapper sur le bureau et d'avoir de la lumière. J'utilise également un Power Switch Tail SSR (relais à semi-conducteurs: pas de bruit) pour le contrôler avec deux des broches de mon Arduino.
Conception
Image prise avec la webcam suspendue au-dessus du moniteur ... eek!
Composants utilisés pour construire le projet:
Coût pour moi: 3,30 USD + 0,02 USD (taxes) == Seulement 3,32 USD!
Conclusion
Dans l'ensemble, c'est un projet simple mais il est en fait utile. C'est une lutte avec mes projets Arduino: je peux construire quelque chose que je fait utiliser ? Faire clignoter une LED ne va pas vraiment vous aider dans la vie. C'est amusant, mais c'est tout.
Le plus gros problème auquel j'ai été confronté (et le fait toujours) n'est pas d'obtenir un signal suffisamment fort. J'ai beaucoup appris sur les signaux électriques: j'ai compris comment trouver le "pic" d'une impulsion et pas seulement lire la broche à un intervalle aléatoire et manquer la tension plus élevée. J'essaierais d'obtenir un élément piézo plus sensible. Un plus grand serait utile. J'essaie de modifier mon circuit pour ne pas limiter autant la tension, mais protéger l'Arduino. Une sorte de fusible aiderait dans cette situation. Je joue aussi avec les valeurs des résistances. Cela aiderait beaucoup d'avoir une portée pour cela, mais je suppose que non ...: P
Après avoir perfectionné le circuit, je vais travailler à le faire sur un PCB avec un ATtiny ... et peut-être même développer des kits. Je vais essayer de publier mes résultats sur la façon de rendre l'élément plus sensible sans risquer ma carte dans le processus.
Mise à jour du statut: j'ai été très occupé récemment. Je vais commander une diode zener (4.3V) ici dans une semaine ou deux pour retirer la résistance mégaohm pour éviter de diluer le signal tout en protégeant la puce. Je peux construire un simple ampli de tension ici si nécessaire (à côté du zener) pour essayer de rendre le capteur plus sensible.
la source
- Apprenez à créer vos propres capteurs sans fil à faible coût et à les connecter au monde.
http://www.mysensors.org
Nous l'appelons "Internet de vos objets"
La description
Nous avons combiné la plate-forme Arduino avec un petit émetteur-récepteur radio dans un monde amusant et flexible de capteurs sans fil à faible coût.
Tous les petits détails sur la communication du capteur ont été regroupés dans une bibliothèque de logiciels pratique pour que vous n'ayez pas à vous en soucier.
C'est aussi simple que 1, 2, 3.
En savoir plus sur la formation automatique du réseau de capteurs à l'aide de notre bibliothèque Arduino sur le site. Il forme essentiellement un réseau en étoile et peut atteindre des centaines de mètres.
Au milieu, vous placez une passerelle Arduion ou Raspberry qui collecte les informations de vos capteurs.
Conception et schémas
Voici l'un des prototypes de capteurs de mouvement que j'ai créés pour contrôler la lumière du jardin à l'extérieur de ma maison. L'état des mouvements est envoyé à mon contrôleur HA qui allume la lumière (via z-wave) lorsqu'un mouvement a été détecté. Un capteur de lumière (pas dans l'image) s'assure uniquement d'allumer les lumières la nuit.
Vous trouverez toutes les instructions de construction ici: http://www.mysensors.org/build/
Sur le site, il existe également des instructions de construction faciles à suivre pour un tas d'autres capteurs et actionneurs sans fil. Voici quelques exemples:
Capteur de distance, capteur de mouvement, actionneur de relais, humidité, lumière, pression, pluie, température, ...
Conclusion
Le projet est toujours dans les blocs de départ et nous espérons fournir des plugins pour une liste croissante de contrôleurs domotiques. La première chose sur notre liste en ce moment est de fournir un contrôleur DIY qui offre un stockage gratuit dans le cloud pour vos données de capteur.
Rendez-vous @ mysensors.org
/ Henrik Ekblad (le créateur de la bibliothèque Arduino Open Source utilisée pour la communication entre les capteurs)
la source
Boîte série
Un moniteur série portable dans une boîte
La description
Parfois, il est utile pour un appareil (Arduino ou autre) de sortir des informations de débogage via série. C'est génial si vous avez un ordinateur sous la main avec une entrée série appropriée. Cependant, ce n'est pas toujours le cas pour diverses raisons.
Ce projet est ma tentative pour résoudre ce problème en créant un moniteur série portable alimenté par Arduino, que je peux connecter à d'autres appareils sur le terrain.
Par défaut, il affichera simplement le texte dans un format de défilement; c'est-à-dire que le texte apparaît sur la ligne du bas, et tout défile pour faire de la place quand plus arrive. Cela signifie qu'il devrait fonctionner parfaitement avec toutes sortes d'appareils génériques. Cependant, il sera également possible d'utiliser des séquences d'échappement pour contrôler l'affichage plus précisément, de sorte que les appareils peuvent également être programmés spécifiquement pour tirer parti de ses capacités.
Conception
La conception se compose d'un ensemble de 4 écrans LCD alphanumériques (16x2 caractères chacun), alignés dans une boîte quelque chose comme ceci:
Les écrans sont des Epson EAX16027AR, qui ne sont malheureusement pas compatibles avec le pilote Hitachi HD44780 standard. En tant que tel, j'ai dû écrire ma propre bibliothèque pour eux.
J'ai choisi d'utiliser ces écrans (plutôt que par exemple un grand écran) principalement parce que je les avais juste traînés et que je voulais faire quelque chose d'intéressant avec eux. J'ai également pensé qu'il serait très pratique de pouvoir contrôler chaque écran indépendamment pour certaines applications (par exemple, afficher des informations différentes sur chacun).
En termes de conception de circuits, les écrans sont connectés en parallèle, avec des broches de sélection de puce utilisées pour diriger les données / commandes vers chacun selon les besoins.
Un ATMega328 sera le cerveau de l'unité finale, avec des données série provenant d'une ligne de niveau TTL (pour se connecter directement au TX d'un MCU similaire), ou éventuellement d'une prise Sub-D RS232 à 9 broches (pour se connecter à divers autres systèmes). L'unité aura également un cadran de contraste, un bouton pour effacer l'affichage et un bouton pour lancer un mode d'autotest. À l'avenir, j'aimerais ajouter des boutons qui permettent à l'utilisateur de parcourir également l'historique de défilement.
Vous trouverez ci-dessous une configuration de circuit très préliminaire (j'ai eu beaucoup de mal à faire jouer Fritzing bien pour une raison quelconque!). Il comprend un registre à décalage SIPO 8 bits pour piloter les lignes de données des LCD, qui sont affichées en vert. Vous pouvez également voir les lignes de sélection des puces en orange.
Pour le moment, le projet est encore au stade de prototype fonctionnel, piloté par une carte Uno (clone). Ci-dessous, vous pouvez voir une photo de celui-ci en action, affichant du texte qui a été transmis via la série depuis mon ordinateur.
Code source
Je rend ma bibliothèque LCD disponible sur GitHub au lien ci-dessous. Veuillez noter que c'est à un stade précoce de développement. Dans un avenir proche, j'ai l'intention de la rendre beaucoup plus similaire à la bibliothèque de base LiquidCrystal afin de faciliter la transition entre les deux.
Vous pouvez trouver du code de base pour mon prototype Serial Box dans le dossier "examples".
Conclusion
Je pense que le projet avance très bien et j'ai été extrêmement heureux de faire fonctionner le prototype. Mon principal défi sera de monter le tout dans une boîte. J'ai déjà commencé à découper des trous appropriés pour les écrans, mais je ne suis pas très expérimenté dans ce genre de chose, et je trouve assez difficile de tout aligner.
Mais j'y arriverai à la fin. Cela pourrait ne pas être très joli au moment où j'aurai fini! :)
la source
Régulateur de chauffage
Vous savez comment c'est - vous réglez le chauffage pour qu'il s'allume à une certaine heure et combien de jours travaillez-vous tard et il fonctionne à plein régime depuis des heures, ou vous partez pendant quelques jours et oubliez de l'éteindre? Ou la rare occasion où vous rentrez tôt et où la maison est froide? J'ai décidé que le moyen simple de contourner cela était de construire un appareil qui me permettrait d'allumer ou d'éteindre mon chauffage par SMS / SMS. Il viendrait s'ajouter au système de contrôle existant afin de ne pas perdre la souplesse que cela peut apporter.
Le projet se compose de quelques parties principales: un clone Arduino Uno, un bouclier Seeedstudio GSM, un capteur de température DHT22 et un SSR de 25 ampères.
Comment ça marche:
Les commandes de chauffage existantes sont réglées sur «Off» et le nouveau contrôleur est câblé pour les annuler. L'Uno est programmé pour répondre à trois messages différents - On, Off et Query. Dans ce dernier cas, l'appareil lira le DHT22 et répondra à l'expéditeur avec la température actuelle et l'état de l'appareil (allumé ou éteint). Si la commande est activée ou désactivée, elle répondra par une confirmation de l'action effectuée. Une fois les messages traités, ils sont supprimés; tous les messages qui ne sont pas conformes à la structure de message spécifique sont laissés dans la mémoire de la carte SIM et peuvent être examinés plus tard si vous le souhaitez.
L'alimentation de l'unité est fournie par une alimentation à découpage de cinq volts à trois ampères. Comme les broches d'alimentation de l'Arduino exposent simplement le bus 5v interne de la carte, j'ai décidé d'alimenter l'ensemble à travers celles-ci et de configurer le blindage pour tirer l'alimentation de l'Arduino.
L'unité possède trois LED d'état. Un vert pour indiquer qu'il y a du courant, un bleu pour indiquer que la carte GSM est «sous tension» et un rouge pour indiquer l'état du chauffage. Celles-ci s'ajoutent aux LED d'état fournies sur l'Arduino et le blindage. Il y a aussi un interrupteur à bouton-poussoir qui permet un contrôle manuel du chauffage, avec un condensateur de 100 nF pour gérer le rebond.
Prochain:
Une grande partie du code repose sur un bon vieux délai () pour donner au bouclier suffisamment de temps pour effectuer ses actions. J'ai l'intention d'améliorer le code pour qu'il attende la confirmation du bouclier plutôt que de supposer qu'il a fait ce qu'on lui avait dit dans le temps imparti! J'ajouterai également une fonction `` toujours en vie '' - à intervalles fixes, éteignez la LED bleue, envoyez la commande AT au bouclier et sur un accusé de réception, rallumez la LED. Le bouclier est sous contrôle logiciel, donc s'il ne répond pas, éteignez-le puis rallumez-le.
L'ensemble doit être monté dans un boîtier approprié et monté à côté du contrôleur existant. J'ai un interrupteur à bouton-poussoir éclairé en interne que j'utiliserai au lieu d'un interrupteur séparé et d'une LED rouge pour gérer la dérogation.
À plus long terme, je prévois d'ajouter un RTC, un écran LCD 20 x 4 et des boutons-poussoirs supplémentaires pour permettre à l'unité d'être programmée et agir également comme un interrupteur horaire.
Le prototypage a déjà commencé!
Conclusion.
Il y a quelque chose de légèrement décadent à se réveiller un jour de repos d'hiver froid, à envoyer un SMS / SMS pour allumer le chauffage, à se retourner et à se rendormir pendant une heure! Et quand vous réalisez que vous ne l'avez pas éteint une nuit, vous pouvez le faire dans le confort de votre lit!
la source