Jeffrey Cross
Jeffrey Cross

Projet d'affiches d'État père / fille sur la framboise Pi

À l’école de notre fille, tous les élèves de 2e année ont mis en place un projet de «régie publique». Ils se voient attribuer un état au hasard (dans le cas de notre fille, le Vermont) et les étudiants travaillent à la réalisation d’une affiche sur un carton à trois volets. D'après ce que j'ai entendu, les projets ont souvent des aspects 3D tels que des animaux et des produits, et plusieurs au fil des ans ont eu des boutons pour jouer des choses comme la chanson d'État. Nous avons échangé des idées sur les éléments possibles que nous pourrions inclure sur le tableau et avons réfléchi aux sons, à la lumière et même aux rivières animées en fil électroluminescent. Je voulais m'assurer que si nous choisissions un design plus élaboré, notre fille effectuerait la plus grande partie du travail et que nous documenterions ce travail - j'ai donc utilisé un enregistreur vidéo à retournement pour filmer la majeure partie du processus. En ce qui concerne l’électronique, notre fille s’est lancée assez rapidement après avoir appris à souder lors de la récente Maker Faire à New York. Elle a construit quelques kits depuis. Une grande quantité de soudure était requise sur le Perma-Proto. La vidéo ci-dessous montre notre fille travaillant sur les cartes Perma-Proto et Button.

Afin de disposer des éléments sonores et lumineux souhaités, nous devions choisir un contrôleur approprié. Je me suis demandé s'il serait préférable de recommander un design basé sur Arduino ou d'utiliser un Raspberry Pi. Une approche Arduino pourrait utiliser une combinaison Arduino et Wave Shield. Il aurait l'avantage d'un démarrage et d'un arrêt rapides et aurait un son clair et ininterrompu.Un Raspberry Pi serait potentiellement moins onéreux, car il pourrait lire l'audio à partir de son propre système de fichiers, disposer d'un réseau intégré (modèle B) et utiliser le WebIDE d'Adafruit, ce qui simplifierait les tâches de programmation basées sur Python de notre fille ont été Python). Le Pi peut effectuer plusieurs tâches à la fois, ce qui faciliterait certaines choses, mais rendrait la lecture du son plus fluide plus difficile. Comme le projet serait en place à l’école pour le reste de l’année, la gestion de l’énergie était également importante - de sorte qu’un arrêt automatique gracieux serait essentiel. J’avais déjà réalisé de nombreux projets avec la combinaison Arduino / Wave Shield, donc je voulais vraiment voir comment cela pouvait être fait avec le Raspberry Pi. WebIDE m'a aidé à me convaincre qu'il serait plus facile pour notre fille de travailler avec elle (elle venait juste de commencer à travailler avec Python pour les enfants).

Nous avons commencé avec une idée approximative de la manière dont nous pensions que les choses se dérouleraient. Premièrement, il nous faudrait avoir les grandes lignes de l'état. L'un des objectifs était d'éviter d'avoir beaucoup de fils et de connexions à l'arrière du pli à trois. Pour ce faire, le contour des limites des états devrait être un élément séparé. Cela a également satisfait la création d'un look 3D pour l'état. Nous aurions pu utiliser des panneaux de mousse, mais je pensais que le contreplaqué d’un quart de pouce résisterait mieux et permettrait des coupes plus précises. Le plan consistait à utiliser les données de limite d'état réelles pour générer le code g pour notre CNC. Nous planifierions également l'emplacement précis des LED et percer des trous à ces emplacements sur le bois. La légende serait aussi en bois et aurait des trous pour les LED et les boutons. L'espoir était qu'un seul brin de LED RVB puisse être acheminé vers l'arrière des cartes d'état et de légende et atteindre tous les trous. Nous avions prévu d'utiliser 50 LED au total, 15 sur la légende et 35 sur la carte. En fin de compte, nous aurions dû ajuster un peu les trous, mais nous n’avons pratiquement perdu que 2 sur le brin qui n’a pas atteint le trou et nous devons en ajouter 2 de plus pour compenser ceux qui sont branchés au bout du brin (nous voulions garder intacts les deux brins de 25 LED utilisés).

Notre plan prévoyait également l’utilisation d’une télécommande sans fil en plus des 8 boutons que nous avions prévu d’utiliser sur le tableau. Étant donné que le récepteur à distance fonctionnait en 5 volts, nous devions introduire un convertisseur de niveau à utiliser avec le Raspberry Pi de 3,3 volts. Nous avions alors besoin d’un module de commutation capable de déclencher une mise sous tension complète par la pression d’un commutateur momentané tout en utilisant très peu de courant pour surveiller le commutateur. Nous devions également amplifier le son du Pi pour piloter un petit groupe de haut-parleurs. Comme l’audio du Pi n’est pas toujours fluide et qu’il y a des clics et des sauts occasionnels (même avec certains filtres), cela peut poser problème si l’amplificateur est alimenté par la même alimentation que le Pi, car il peut tirer suffisamment de courant pour écraser le Pi. L'amplificateur devrait donc disposer de sa propre alimentation, qui pourrait être connectée lorsque l'alimentation principale serait disponible. Donc, ensemble, le matériel nécessaire consistait en:

  • Raspberry Pi Modèle B (Rev 1)
  • Carte PCB de planche à pain Perma-Proto Raspberry Pi pleine grandeur d'Adafruit
  • Câble ruban GPIO Raspberry Pi
  • 2 brins de 25 pixels à LED RVB numériques plats diffusés de 12 mm (et 2 LED clipsées d'une autre chaîne de 20 LED RVB basée sur WS2801 de Sparkfun, dont j'avais besoin de 52 au total)
  • Jeu de connecteurs JST SM à 4 broches (pour connecter / déconnecter le brin de LED et, dans notre cas, pour fixer deux LED supplémentaires au bout de la chaîne)
  • Boutons tactiles ronds
  • Amplificateur Audio Stéréo 3.7W Classe D
  • Convertisseur de niveau logique bidirectionnel à 4 canaux (pour RF optionnel)
  • Récepteur RF simple M4 - Type momentané 315 MHz (pour RF optionnel)
  • Télécommande RF Télécommande - 315 MHz (pour RF optionnelle)
  • 4 supports de batterie D-Cell (joints au support 1 D-Cell ci-dessous)
  • 1 support de pile D-Cell
  • Support de batterie 4 piles AA (converti en support à 3 cellules en connectant l'une des positions des cellules)
  • 2 doubles cartes doubles (pour couvrir 4 zones de boutons)
  • Adaptateur audio à angle droit (pour s’adapter à la sortie audio du Pi)
  • Mini prise stéréo
  • LED rouge grand angle 5mm
  • Connecteur d'alimentation CC coaxial de taille M (pour le plaisir, j'ai attaché une étiquette «Supprimer avant vol» à la fiche perforée pour indiquer clairement qu'il faut débrancher la fiche lorsque vous souhaitez l'utiliser)
  • Prise de courant coaxiale de taille M pour montage sur panneau
  • 2 tweeters de milieu de gamme à cône en papier de 2 ″ (4 Ohm)
  • Régulateur abaisseur de tension Pololu (pour 5 volts, 3,5 ampères)
  • Interrupteur d'alimentation bouton poussoir Pololu SV
  • Micro relais SPDT 5VDC
  • 9 bornes de circuits imprimés à 2 positions
  • Kit de montage de bord de carte (pour le modèle Pi B Rev.1 étant donné qu’il n’a pas de trous de montage)
  • Vis à bois à tête ronde n ° 8 de 5/8 po (avec les rondelles de garde-boue ci-dessous pour la fixation à travers du carton dans du bois)
  • Rondelles de garde-boue 1/8 "x 1"
  • Vis à métaux, rondelles et écrous n ° 4 (pour la fixation de Perma-Proto et de supports de piles)
  • Vis à tôle n ° 8 x 1/2 ″ (travaillez à la place des vis dans le kit de montage de bord de panneau ci-dessus pour obtenir du contreplaqué 1/4 ″ - peut-être avec une rondelle ou deux pour réduire leur longueur)

Nous avons utilisé des prises et des fiches de téléphone modulaires à 6 conducteurs modulaires pour la connexion avec les panneaux de boutons. Le panneau de légende utilisait les 6 conducteurs pour les 5 boutons et nous avons pu trouver un câble téléphonique modulaire à 6 conducteurs à un Radio Shack local (ce qui est plus difficile à trouver que 4 conducteurs). Pour l'alimentation et les autres boutons, nous avons simplement utilisé deux autres câbles modulaires à 4 conducteurs. Les prises les moins chères se trouvaient en paquet de 10 chez Home Depot, mais le câble modulaire que nous avions était bloqué. Ce n’était donc pas aussi simple d’utiliser un outil de perforation - nous devions travailler pour nous assurer qu’il soit en contact - parfois le fil où il est venu à travers le canal. Il serait peut-être plus facile mais légèrement plus coûteux d’utiliser des câbles RJ45 et CAT5 pour le câblage des commutateurs.

La boîte de commande finie, montée en bas à l'arrière de la section centrale du pli triple, est illustrée ci-dessous.

Maintenant que nous avons couvert un aperçu de la construction et des matériaux concernés, examinons en détail certaines des principales étapes.

Planification de l'emplacement des LED

Une partie importante du projet consistait à planifier l’emplacement de toutes les DEL sur la carte ainsi que les couleurs qu’elles devraient avoir pour indiquer différents produits sur la légende. Étant donné que les voyants peuvent changer de couleur, il est possible d’utiliser des voyants individuels pour indiquer différents produits à des moments différents avec des couleurs différentes. Donc, lors de la planification, on pourrait économiser les LED en utilisant une LED pour représenter chaque région de l'état. Voici une vidéo du processus de planification de notre fille incluant la sélection des couleurs et la détermination de la valeur RVB:

Découper votre état avec une CNC

Dans notre cas, nous avions une petite machine à commande numérique que nous pouvions utiliser pour couper le contour de l’état (couper le bois au laser aurait été plus facile). Étant donné que la taille souhaitée de l’État était supérieure à celle du CNC, il était prévu de le couper en 4 morceaux et de les assembler. En fin de compte, tout se résumait à la façon de générer le g-code pour la CNC. Ceci a été réalisé avec un mélange de code Python et Java et pourrait être adapté aux limites d'autres états. Les frontières d’un État américain à l’échelle d’un million peuvent être téléchargées ici. J'ai également créé une copie locale du fichier des limites statep010_nt00798.tar.gz 2012 ici. Le fichier d’archive contient un fichier de format de forme contenant des données de limite pour tous les états. Un simple programme Python peut être utilisé pour copier les valeurs de latitude et de longitude pour la limite d'un état donné, comme suit:

importer un fichier de formes importer sys r = fichier de forme.Reader ("statep010.shp") sr = r.shapeRecords () pour s en sr: if s.record [3] == 'Vermont': shape = sf = open ("vermont. txt ", 'w') pour pt dans shape.points: f.write (str (pt [0])) f.write (", ") f.write (str (pt [1])) f. write ("n") f.close ()

Le programme Python ci-dessus aura besoin de l’extension de fichier de formes Python pour être installé. Il trouve l'enregistrement associé à l'état souhaité, dans le cas présent du Vermont, et écrit les valeurs de latitude et de longitude des contours d'état dans un fichier de données ASCII appelé vermont.txt qui sera utilisé par notre prochain programme. Les prochains programmes (écrits en Java et disponibles dans vermont.jar) génèrent du code g pour différentes parties du projet. Celles-ci donnent toutes un aperçu graphique des pièces à couper. Le premier programme (appelé Plot.java) trace la limite d’état à partir du fichier vermont.txt, mais utilise également des fichiers de ressources contenant les emplacements des voyants (interpolés à partir d’une carte de produits du Vermont) et certains emplacements de villes (à partir de la latitude et de la longitude). ) pour aider à comprendre où placer les étiquettes de ville. Les trous sont grossièrement à l’échelle, ce qui nous a permis de savoir s’ils étaient trop près du bord ou des limites du quartier. Certaines intersections de polygones ont été utilisées en Java pour produire les 4 plus petits polygones des parties de l'état que nous devions couper séparément. Nous avons peaufiné les limites de coupe jusqu'à ce qu'elles ne croisent plus aucune position des trous légers, tout en maintenant les quartiers de l'Etat suffisamment petits pour couper sur le CNC. En fin de compte, le programme génère 4 fichiers de code g, un pour chacun des quartiers de l’état (vermont1.nc, vermont2.nc, vermont3.nc et vermont4.nc).

La vidéo ci-dessous montre quelques exemples de trous pilotes en cours de découpe pour les LED et les limites en cours de découpe:

Couper les lettres de titre

Nous avons également utilisé le CNC pour couper les lettres individuelles du Vermont. J'ai essayé NCPlot qui fonctionnait plutôt bien pour générer du g-code pour les lettres. J’ai dû ré-ordonner les coupes sur des lettres telles que les lettres «R» et «O», car j’ai découvert un peu trop tard qu’elle ne découpait pas les trous avant de couper les limites de la lettre elle-même. Voici une vidéo des lettres de titre coupées et poncées:

Planifier / couper la légende

Nous avons dimensionné le panneau de légende de manière à pouvoir prendre en charge les 15 entrées de produit avec des trous de LED suffisamment espacés. Il devait également tenir dans le panneau central en carton en bas à droite de l'état. Les boutons de commande principaux étaient également situés sur le panneau de légende en bas. La CNC a donc été principalement utilisée pour percer les trous pilotes de légende pour toutes les LED ainsi que pour 5 boutons et pour découper la bordure rectangulaire du panneau.

Et voici le panneau de légende en train d’être coupé:

Collage / ponçage / peinture des pièces en bois

Les quatre pièces de l'état ont été collées avec de la colle à bois. Ces jointures étaient droites. Des bandes minces de bois ont été utilisées le long des coutures à l'arrière pour renforcer les coutures (celles-ci ont dû être coupées d'un ou deux trous à l'aide d'un dremel). L'état, les lettres et les légendes étaient tous poncés et peints. Les rivières et les zones d'eau de l'état ont été peintes avec de la peinture bleue scintillante. Voici une vidéo du processus de peinture:

De plus, avant de peindre les traits d’eau, comme le montre la vidéo ci-dessus, ils ont été tracés à l’aide d’un calque de projection, comme indiqué ci-dessous:

Fixation des LED

Tous les trous des LED ont été percés de manière à ce que les LED dépassent des trous et que la partie plate contenant les circuits intégrés affleure le bois à l’arrière. La colle thermofusible maintient chaque LED en place. La chaîne de voyants commence au bas du panneau de légende, où les voyants remplissent tous les trous de bas en haut, puis sautent vers la carte où ils traversent les 35 trous. Dans quelques cas, une LED n’a pas atteint un trou et a dû être ignorée (car nous ne voulions pas couper les deux brins de 25 LED). J’ai débattu de la possibilité d’écrire du code afin de trouver le meilleur moyen de couvrir les trous avec un minimum de voyants sautés (un problème d’algorithme bien connu) - mais en manquer deux n’était pas si grave. En conséquence, nous devons assembler une extension à 2 LED (en utilisant l’autre fiche JST de l’ensemble) et l’ajouter à la chaîne. La photo ci-dessous montre une vue de dessus du tableau où vous pouvez voir la couche de carton, les blocs de montage et la couche de carte.

Boutons

Il y a 4 zones dans lesquelles des boutons sont nécessaires: en bas du panneau de légende, un bouton "marche" en bas à gauche de l'état (qui inclut un voyant d'alimentation), et des boutons pour la chanson et l'oiseau situés à gauche de la partie supérieure de l'état. Tous ces éléments sont appuyés par de petites planches prototypes dont les boutons et les leds traversent le bois ou le carton et qui sont collées à chaud au dos. Les 5 boutons de légende sont connectés à un seul cordon téléphonique modulaire à 6 conducteurs. Le bouton d'alimentation / led est connecté à un cordon téléphonique modulaire à 4 conducteurs, puis les boutons d'oiseau et de chanson utilisent conjointement un autre cordon modulaire à 4 conducteurs.

Monter les planches sur le pli triple en carton

Les blocs d’état et de légende ont des blocs de bois collés à l’arrière pour laisser de la place au brin de LED (et aux boutons) derrière eux mais devant le carton. Les rondelles de garde-boue et les vis à bois passent par l’arrière du carton et pénètrent dans ces blocs de bois, en tenant les planches solidement sur le carton.

Conception du boîtier de commande

Le boîtier de commande électronique est fixé au bas du panneau central en carton à l'arrière. La boîte a une longueur de 24 ″ (pour correspondre au panneau central à trois volets). L'électronique, les batteries et les haut-parleurs sont disposés linéairement sur 24 pouces. Pour faciliter l'accès, on utilise un plateau coulissant en acrylique pouvant s'ouvrir complètement pour permettre l'accès à l'électronique et aux batteries. Les composants eux-mêmes sont également montés sur une base coulissante en contreplaqué de 1/4 ″ qui est montée légèrement au-dessus du fond de la boîte. Le fond de la boîte peut donc être plat sans que les différentes vis de montage de la carte et des piles ne soient exposées. Il est également pratique de pouvoir faire glisser l’électronique. Une pièce d'extrémité sur la boîte a à la fois une prise réseau et une prise d'alimentation externe. À l'origine, nous utilisions une alimentation externe, mais une fois que le circuit de batterie était complètement installé, cela devenait beaucoup plus pratique et nous n'avions plus jamais utilisé d'alimentation externe pendant le développement. La prise d’alimentation est câblée de manière à couper l’alimentation de la batterie lorsqu’une alimentation externe est appliquée (mais vous devez retirer un cavalier si vous souhaitez fournir une alimentation régulée de 5 V via la prise externe. Dans le cas contraire, une tension légèrement supérieure doit être fournie, comme le câble interne. Le régulateur 5 volts nécessite une tension légèrement supérieure - comme le fournissent les cellules «D» quand il est sur batterie). Une fiche factice insérée dans la prise d'alimentation externe sert de «sécurité» efficace afin que le système ne se déclenche pas accidentellement pendant le transport. Un clin d'œil à la communauté aéronautique, il a semblé raisonnable d'attacher une bannière «Enlever avant le vol» à la fiche factice pour indiquer clairement son objectif (et j'ai récemment vu des parents de l'école de notre fille retirer cette fiche sans la moindre explication nécessaire pour l'essayer. ).

La photo ci-dessous montre la fin du boîtier avec la fin de la connexion réseau / alimentation retirée. Cela montre le fond auquel les composants sont connectés. Vous pouvez voir la carte Pi avec les clips de la carte de circuit imprimé qui la maintiennent à la base. Des vis à tôle de profondeur appropriée ont été utilisées avec les clips pour permettre un montage sur le contreplaqué 1/4 ″. L’orateur occupe normalement l’espace au centre de la photo. Un très court câble RJ45 mâle-mâle a été créé pour combler l'écart entre le Pi et le câble femelle RJ45 utilisé comme connecteur réseau sur le panneau d'extrémité.

Le boîtier de commande est fixé au carton à l’aide de la même rondelle d’aile et des mêmes vis à bois que l’état et la légende, sauf que ceux-ci apparaissent de l’avant du tableau et sont recouverts d’autocollants et de feuilles d’érable. Il y a trois vis, une à gauche, une au centre et une à droite. La boîte a un trou de câblage qui sort derrière le bas de la légende. Le cordon modulaire à 6 conducteurs et le connecteur JST à 4 broches passent par ce trou. Voici un extrait de notre fille ponçant les pièces du boîtier de commande avant l'assemblage:

Un détail amusant était de créer des trous de son / ventilation dans le couvercle coulissant en acrylique de l’enceinte. La classe AcrylicTop incluse dans vermont.jar génère le code g pour les trous d’aération. Comme il s’agissait de motifs de trous d’aération, le code n’a pas besoin d’accéder aux traits pour les caractères de police. Le code restitue les caractères en une petite image, puis itère les pixels de l'image pour déterminer où les pixels sont remplis. L'emplacement de ceux-ci est ensuite mis à l'échelle et traduit comme souhaité pour la position et l'emplacement sur la couverture.

Voici une vidéo montrant comment les trous de son / ventilation ont été percés à l’acrylique:

Avec le type d’acrylique que nous découpions, les matériaux ont tendance à fondre sur le foret. Nous avons donc introduit des pauses dans le programme pour permettre au trépan d'être balayé après le forage de chaque groupe de trous. Le problème a été résolu (lors de notre premier tour, les trous devenaient de plus en plus grands à mesure que le matériau s’accumulait sur le trépan).

Logiciel

Le Pi gère la distribution Occidentalis d'Adafruit (0,2 à ce jour). Le projet est exécuté à partir d’une seule routine Python développée à l’aide de WebIDE d’Adafruit. Outre la routine Python et les fichiers de données, deux autres modifications ont dû être apportées pour exécuter le code en tant que service et procéder à un arrêt automatique. En utilisant WebIDE, les fichiers nécessaires à l'exécution du Vermont résident dans / usr / share / adafruit / webide / référentiels / my-pi-projects / Vermont sur le Pi. Vermont.py est le programme principal. Pour l'exécuter en tant que service au démarrage du Pi, un fichier / etc / init.d / vermont a été ajouté comme suit:

#! / bin / sh # /etc/init.d/vermont cas "$ 1" au début) echo "Démarrer le vermont" sudo /usr/share/adafruit/webide/repositories/my-pi-projects/Vermont/Vermont.py 2> & 1 & ;; stop) echo "Stopping vermont" # kill application que vous souhaitez arrêter LP_PID = `ps auxwww | grep Vermont.py | head -2 | awk '{print $ 2}' 'kill -9 $ LP_PID ;; *) echo "Utilisation: /etc/init.d/vermont {start | stop}" exit 1 ;; sortie esac 0

N'oubliez pas d'utiliser «update-rc.d vermont par défaut» pour enregistrer le service à exécuter au démarrage.

De même, si vous utilisez l'EDI, vous pouvez créer un "/etc/init.d/vermont stop" dans le shell pour vous assurer que le service ne fonctionne pas aussi bien que vous en exécutez un autre à partir de l'EDI. Étant donné que notre code avait été intégré à l'extinction automatique, nous devions veiller à ce que le délai d'attente soit plus long ou à ne pas l'exécuter trop longtemps pendant le développement, sinon il pourrait s'arrêter si nous n'avions appuyé sur aucun bouton. Pour une utilisation à arrêt automatique, nous mettons un script shutdown.py sur le Pi comme suit:

#! / usr / bin / python importer RPi.GPIO en tant que GPIO GPIO.setmode (GPIO.BCM) GPIO.setup (4, GPIO.OUT) GPIO.output (4, True)

Puisque notre carte utilise la ligne GPIO n ° 4 pour indiquer au commutateur Pololu de couper le courant, ce script coupe immédiatement le courant. Mais nous voulons d'abord un arrêt gracieux, nous avons donc modifié haltroutine pour l'invoquer lorsqu'une mise hors tension était demandée. Le script d'arrêt est modifié pour inclure l'appel shutdown.py entre la ligne «Arrête maintenant» et l'appel d'arrêt réel:

... log_action_msg "va maintenant arrêter" / usr / bin / python /home/pi/shutdown.py arrêter -d -f $ netdown $ poweroff $ hddown ...

L'appel à effectuer un arrêt immédiat immédiat avec mise hors tension est alors "shutdown -h now". C’est ce que fait notre application lorsque l’utilisateur appuie sur le bouton «Off».

La liste complète de l'application Vermont.py est incluse ici. En outre, de nombreux fichiers wav ont été enregistrés pour utilisation et sont situés dans un sous-répertoire appelé «voice» sous le répertoire principal «vermont». Les fichiers ont été enregistrés / édités / fusionnés avec l'excellent outil Audacity. Certaines des chansons et des sons originaux étaient au format MP3. Bien que le Pi puisse jouer avec MPG321, il a été découvert que les performances étaient un peu meilleures si elles étaient converties au format WAV. L'outil MPG321 peut en réalité être utilisé pour effectuer la conversion sur le Pi lui-même. Ensuite, nous avons utilisé uniformément l’outil «aplay» pour lire les fichiers WAV. La plupart du temps, l'audio est lu de manière asynchrone et est intentionnellement interrompu si un autre son doit être joué. Ceci est accompli avec un appel comme:

os.system ("killall aplay; aplay mysound.wav &")

Fondamentalement, cela tue toutes les instances actuelles d’aplay et en crée une nouvelle. Une version synchrone omettrait simplement l'esperluette et serait bloquée jusqu'à ce que le son soit lu. Nous faisons cela à quelques endroits pour simplifier la logique.

La possibilité d’enregistrer en arrière-plan l’audio nous permet d’interroger les boutons et de provoquer des changements de voyants pendant la lecture du son (une alternative aurait été d’utiliser les interruptions des boutons de service). À certains endroits, nous avons simplifié l'audio en créant un arrière-plan en fusionnant des clips dans un seul fichier (souvent avec «combo» dans le nom). Cela évitait la nécessité d'arrière-plan d'une séquence d'opérations de jeu.

L'application dispose de 4 modes de fonctionnement contrôlés par le bouton «Mode»: manuel, automatique, quiz et réglages. En mode manuel, les flèches haut et bas et sélectionner peuvent être utilisés pour mettre en surbrillance des éléments de la légende et pour indiquer leur emplacement sur la carte. Appuyer sur select lit l'audio associé à l'élément. Le mode automatique parcourra automatiquement la légende. Select fonctionnera toujours, mais vous pourrez revenir en mode manuel en appuyant vers le haut ou vers le bas. Le mode Quiz interrogera les utilisateurs sur les faits du Vermont. Ils devront utiliser les touches haut et bas pour choisir l'un des éléments de la légende afin de répondre à chaque question. Le mode Paramètres permet de modifier le temps de fermeture automatique de 5 minutes à 60 minutes. La valeur par défaut est 5 minutes pour économiser de l'énergie. Les boutons de chanson d'état et de chanson d'oiseau peuvent être sélectionnés en mode manuel ou automatique. Le bouton «Off» arrête le projet (ce qui vous donne quelques chances de vous sauver avant que le véritable arrêt ne commence). Le bouton «On» est utilisé pour mettre sous tension (mais il déclenchera en réalité un arrêt d'urgence si vous appuyez à nouveau dessus - un artefact du fonctionnement du module de commutation Pololu).

L'application est fortement axée sur les données avec une liste de «points forts» donnant les sons, les couleurs et les lumières associées à jouer ensemble. Une liste de «quiz» donne une liste de questions et de réponses.

Structurer le Python de sorte que la plupart des personnalisations puissent être effectuées via l'édition des données le rend plus accessible aux enfants qui peuvent créer les détails eux-mêmes (notre 2ème niveleuse l'a fait, voyez la vidéo ci-dessous car elle utilise Adafruit WebIDE pour saisir ses données personnalisées). En gardant le reste du code modulaire (nous aurions probablement pu mieux faire), il est plus facile pour les enfants d’ajouter une partie de la logique (par exemple pour la section quiz) sans avoir à réfléchir à toutes les interactions plus complexes.

Affiche traditionnelle consistant à sous-titrer et à coller des éléments au tableau

Au-delà des éléments électroniques, l’affiche présentait tous les aspects traditionnels du montage de photos et de documents imprimés au tableau. Nous avons imprimé les étiquettes au jet d'encre sur du papier autocollant pleine page blanc ou transparent, puis les avons découpées pour les étiquettes de légende et de produit. Notre fille a également eu l’idée de coller des feuilles d’érable sur l’affiche (en raison de l’érable à sucre et du sirop d’érable du Vermont). Cela a permis de masquer quelques trous de vis sur le fond et les endroits où les fils relient la légende à la carte. Voici une vidéo condensée de certains éléments du collage / collage d'éléments au tableau:

Regarder l'électronique en plus de détails

Voyons d’abord la disposition des composants dans le boîtier. Sur la gauche se trouve la position de montage du Pi qui se connecte directement à la prise réseau extérieure - ce qui est pratique pour régler le programme avec WebIDE. Le haut-parleur droit s’y trouve également (ce sera le droit lorsque vous ferez face au tableau). La prise d'alimentation externe est dissimulée sous le haut-parleur, en face de la prise réseau. Vous pouvez également voir le trou qui porte le câble à LED et le cordon du bouton à 6 conducteurs juste sous le panneau de légende.

Au centre se trouve la carte Perma-Proto, qui comprenait la plupart des travaux de brasage. Nous verrons la disposition ci-dessous. Vous pouvez voir sur la gauche le câble ruban connecté au Pi.

Sur le côté droit, nous avons les deux batteries. Les 5 cellules «D» alimentent les fils Pi et LED. Les 3 cellules "AA" alimentent l'amplificateur audio (de manière à être isolées de l'alimentation principale). À l'extrême droite se trouve le haut-parleur gauche. C’est un ajustement assez serré, mais cela maintient bien l’affiche - en contrepoids au bois et aux DEL à l’avant - et au centre de gravité bas.

La photo ci-dessous montre une vue agrandie de la carte Perma-Proto. Le convertisseur de niveau se trouve juste à droite du connecteur de ruban. La carte de récepteur RF qui se trouve verticalement au-dessus de celle-ci fonctionne à 5 volts et le décaleur de niveau convertit les 4 sorties numériques de la carte de récepteur RF au niveau de 3,3 volts pour le Pi. Les broches correspondent assez bien, de sorte qu'une prise à 7 broches peut partager les mêmes broches avec le convertisseur de niveau (voir la deuxième photo du Perma-Proto avec le récepteur RF, l'amplificateur et le régulateur de tension retirés).

Le module de commutation Pololu se trouve au centre de la carte et permet à un commutateur momentané de mettre le système sous tension. Il fonctionne directement à partir de la tension fournie soit par l'alimentation externe, soit par les 5 cellules «D». Un régulateur de 5 volts est éventuellement raccordé via un cavalier et des bornes de circuit imprimé (carte verte en haut). Le seul cas que vous ne voudriez pas utiliser est si vous aviez une alimentation externe régulée de 5 volts. Principalement parce qu’il était pratique, un relais de 5 volts (à la droite du module d’alimentation) est utilisé pour mettre l’amplificateur audio sous tension via son alimentation séparée lorsque l’alimentation principale est rétablie. Il s’agit en gros d’isoler le processeur afin que les pics de puissance potentiels de l’amplificateur audio ne détruisent pas le Pi. L'amplificateur lui-même s'insère dans une prise à droite du relais, à l'extrême droite de la carte. En insérant l'amplificateur, il est facile de retirer les haut-parleurs et l'amplificateur en un seul bloc. L'amplificateur comprend également un cavalier pour contrôler le gain.

Sur la photo, l’antenne RF est enroulée. La réception a été améliorée en étendant l’antenne sur toute la longueur de la boîte - mais la portée était toujours assez faible. Je ne suis pas sûr que nous inclurions le récepteur RF si nous devions le refaire. Il serait utile de concevoir une carte pour le Pi avec cette combinaison de caractéristiques (alimentation, brins de LED, amplificateur et éventuellement RF).

Comme le projet est déjà exposé à l’école, je ne l’ai pas sous la main car j’écris ceci. J'ai rassemblé un diagramme de plan de travail Fritzing de haut niveau ci-dessous pour clarifier certains aspects de la présentation. J’ai substitué un Pi Cobbler à ce qui est vraiment un tableau Pi Perma-Proto unifié (mais n’est pas encore dans la bibliothèque Fritzing). Il n’inclut pas tout le câblage du commutateur modulaire pour les boutons. Les deux bornes à vis du circuit imprimé en haut à gauche sont destinées aux canaux audio du Pi. Les deux autres sur le dessus sont pour le régulateur externe de 5 volts. Les deux en bas à gauche sont pour le ruban de LED (bien que celui que nous avons utilisé a le 5V à côté de la ligne GND d'où notre disposition de borne à vis). Le terminal suivant est celui où le pack de 5 cellules «D» se connecte. Les 3 fils suivants sont ceux où l'alimentation externe est connectée - lorsque rien n'est branché, le fil vert est connecté à la terre et active la batterie de 7,5 volts. Les deux derniers fils sont ceux où l'alimentation de l'amplificateur est connectée. Le diagramme ne montre pas non plus les câbles du commutateur Pololu # 750 qui proviennent du milieu du module (où un commutateur peut normalement être monté). Le brochage du relais SPDT est tel que, lorsque l'alimentation principale de 5 volts est atteinte, le relais se déclenche et que l'alimentation de 4,5 V est connectée à l'amplificateur. L'amplificateur est élevé à partir de la carte sur deux en-têtes femelles, ce qui permet de le retirer facilement. Le module récepteur RF s’ancre dans le bornier indiqué au-dessus du convertisseur de niveau. La dernière broche du module n'est pas utilisée et est pliée pour ne pas toucher la carte.

Cela met fin à l’une de mes plus longues écritures. J'espère avoir fourni suffisamment de détails à ceux qui voudraient peut-être s'attaquer à quelque chose de similaire. Travailler avec notre fille sur un projet complexe comme celui-ci a été une expérience assez incroyable - je reste émerveillé par la variété de travail qu'elle a fait pour regarder les vidéos que nous avons tournées - mais c'est vraiment possible si le travail est étalé sur plusieurs semaines. .

Article original sur SWB Labs


Scott Bennett est un dirigeant technologique et un développeur de logiciels le jour et un fabricant passionné la nuit. Diplômé en génie électrique, ses projets de fabricant ont ré-inspiré sa passion pour l'électronique. L’environnement du fabricant à la maison a également inspiré sa fille dans l’intensification des projets communs. Scott vit avec sa famille dans le nord de la Virginie. Vous pouvez trouver son blog sur swblabs.com.

Entrez votre projet dans notre concours de design Raspberry Pi

  • Plus de 3 500 $ de prix de MCM Electronics
  • Best In Show remporte un Printrbot Jr.
  • Quatre catégories: Artistique, Utilitaire, Education et Boîtiers
  • Les soumissions doivent être envoyées avant le 11 avril 2013.
Entrez aujourd'hui!

Part

Laisser Un Commentaire