Taula de continguts:
- Pas 1: components principals: coses que havia de trobar / obtenir / comprar
- Pas 2: per què dos pastissos de gerds?
- Pas 3: Com es comuniquen les dues empanades?
- Pas 4: fils de Python
- Pas 5: modificacions de Jasper i Jasper
- Pas 6: afegir dos eixos al crani
- Pas 7: controlador de servocomandes Adaifruit Hat
- Pas 8: Taula de relés
- Pas 9: Teensy i els ulls
- Pas 10: Tamborí
- Pas 11: làmpada de plasma
- Pas 12: Com fer que parpellegi la llum de 120 v
- Pas 13: la plataforma / taula
- Pas 14: la resta
- Pas 15: muntatge / afinació / ajustament
Vídeo: Homunculus: l’oracle místic mecànic de l’oracle: 15 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
D’acord, doncs, què se suposa que això … la història que explico a la gent és que el crani és d’un místic del segle XIX que va ser robat a la tomba i que el seu crani que va acabar en algun costat de carnaval es mostra a principis de la dècada de 1900. L’he trobat en un soterrani d’alguna casa victoriana enderrocada i he reconstruït l’atrezzo per convertir-lo en un endeví del segle XXI: “qui pot arribar a l’èter d’Internet, dir-li la seva fortuna, qui són els seus amics i enemics, una broma i llegeix el meu correu electrònic i el calendari del dia '.
Què és realment? Bé, és l’increïble programari Jasper que s’executa en un Raspberry pi i he creat un crani de Linburg parlant de 2 canals que parla amb moltes campanes i xiulets (i un tamborí) per afegir-hi.
Aquest va ser un projecte súper ambiciós. Molts mitjans diferents per treballar: múltiples pastissos, treball de la fusta, pintura, molts cables, molts codis en python, codificació ardunio, molts cables petits, cablejat de 120 V, taules externes de pi 'barrets, controladors i relés de relés, 24 V fonts d’alimentació, fer que les coses es moguin: una calavera amb 2 eixos i el tamborí petant.
No aprofundiré en detalls per peça per peça de cada part, especialment la codificació de pitó, però intentaré descriure breument cada component i incloure imatges.
A més, en els exemples de Python, sí, podria haver estat molt més orientat a objectes en la codificació, però la meva experiència de Python quan vaig començar el projecte va ser bastant bàsica i, per descomptat, és més fàcil de tallar i enganxar quan teniu pressa vs. aturant el que esteu fent, torneu-lo a escriure correctament i, a continuació, continueu.
Pas 1: components principals: coses que havia de trobar / obtenir / comprar
Raspberry Pi
Dos d’ells
www.adafruit.com/products/1914?gclid=CjwKE…
Jasper
"Jasper és una plataforma de codi obert per al desenvolupament d'aplicacions sempre activades i controlades per veu"
jasperproject.github.io/
"Ulls" d'Adafruit
learn.adafruit.com/adafruit-1-44-color-tft…
Teensy: cervell per als ulls
www.adafruit.com/product/2756
Com es creen els ‘ulls amb teensy i les pantalles tft de 1 a 44 colors
learn.adafruit.com/animated-electronic-eye…
Barret Serveo de 16 canals
learn.adafruit.com/adafruit-16-channel-pwm…
El clàssic crani de Lindberg
www.amazon.com/Lindberg-scale-Pirate-skull…
Taula de relés de 4 canals que funcionarà amb un Raspberry Pi
www.amazon.com/Sizet-Channel-Module-Arduin…
Premeu el solenoide
(Està disponible des de molts llocs diferents)
www.aliexpress.com/item/High-quality-DC-12…
Micròfon USB
Està disponible des de molts llocs diferents
www.samsontech.com/samson/products/micropho…
Divers
Dos servos que tenia posats, banyes servo que vaig trobar a la cistella de 1 dòlar a la botiga d’aficionats. Cables d'extensió servo, altaveu USB / Bluetooth, cargols de femella, MDF, cola calenta, tubs de buit antics, diverses làmpades i bits, un antic mòbil Samsung S5, xapa d'acer, filferro de coure, cinta de coure, claus, cola regular, etc. etc.
Pas 2: per què dos pastissos de gerds?
Originalment, havia volgut sincronitzar les calaveres parlant amb el discurs, però després d’instal·lar Jasper i determinar tot el que volia fer, totes les coses que es movien, vaig pensar que potser seria millor dividir tota la feina en dos pastissos. Tenia un termini per fer-ho i no volia haver de fer marxa enrere si tenia algun tipus de problema de rendiment. Ara que el treball està acabat, crec que podria fer-ho amb un sol Pi, en aquell moment vaig pensar que era millor deixar que un pi gestionés Jasper i un 2n pi impulsés els servos i els relés per poder tenir una clara demarcació entre treballar. També va ser més fàcil per al desenvolupament. Podria fer-ho tot correcte a Jasper sense haver de preocupar-me de servos i relés. A l’altre pi, em podria centrar en la conducció dels servos, el temps de les coses: encendre els llums, moure els servos, etc. i no haver de preocupar-me per cap problema relacionat amb la veu / altaveu / micròfon.
L’avantatge d’això és que vaig perdre la possibilitat que la sincronització del crani movés la mandíbula amb el discurs, però després de mirar el treball de Grant Imahara per a The Late Late Show creant ‘Geoff’, vaig pensar que les coses quedarien prou bones.
www.popularmechanics.com/science/a5473/4350…
Pas 3: Com es comuniquen les dues empanades?
Hi ha algunes maneres diferents de fer-ho. Vaig anar a la vella escola i vaig decidir anar amb una connexió en sèrie. Només es necessiten tres cables entre els dos Pies (Tx, Rx i gnd) i una petita quantitat de codi per obrir una connexió serial del Pi # 1 al Pi # 2 i enviar-hi alguna cosa. El Pi # 2 obre una connexió en sèrie per llegir dades i es configura en un bucle estret llegint des de la seva connexió en sèrie. Quan rep algun text, veu si coincideix amb una ordre (Talk, s’encén, s’apaga, es parla, etc.) i fa el que ha de fer. El costat negatiu de la connexió sèrie és que hi ha un lleuger retard des que s’envia l’ordre i el procés de la comanda. El Pi # 2 es troba en un bucle amb un petit retard en la lectura. Així que vaig haver d’agafar un ritme de coses. També per a futurs projectes multi-pi és bo saber que puc comunicar dos Pies i NO necessitar Internet per fer-ho.
Pas 4: fils de Python
Per afegir una mica de complexitat addicional a tot el que he acabat, he hagut d’utilitzar fils de Python a Pi # 2 per poder gestionar diverses sol·licituds i processar-les al mateix temps. Per exemple, necessitava poder començar a parlar: movent els cranis cap a l’esquerra / dreta mentre la mandíbula puja i baixa, però, què passa si el Pi # 1 té un error per alguna raó i no se li pot dir al Pi # 2? per deixar de parlar, el crani estaria parlant per sempre. Per tant, necessitava que el crani es digués a si mateix per apagar-se després d’un cert temps. Per fer-ho, era més fàcil fer un fil. Dins de la rutina de conversa de fils hi ha algun codi que, després d’un temps màxim, deixi de parlar, restableixi el cap i la mandíbula i surti. El mateix per al tamborí, el necessitava per arrencar just abans que el crani deixés de parlar, així que giro un altre fil per al tamborí i tot funciona junt i el codi del moviment del cap està totalment separat del cop de tamborí, igual per encendre els llums. i els ulls, tots els fils poden funcionar simultàniament.
La quantitat de codi que es necessita a Python per utilitzar fils és bastant petita, però és obtusa i va trigar una mica a fer-me passar el cap, però, segons sembla, funciona molt bé. La capacitat d’utilitzar fils és una bona eina per tenir a la caixa d’eines si sou desenvolupador de Raspberry Pi.
Pas 5: modificacions de Jasper i Jasper
El lloc Jasper és EL recurs per instal·lar-lo en un pi, quines reconeixements de veu cal utilitzar, com configurar, escriure nous mòduls i tot, i és gratis. Però no és una instal·lació senzilla. Molts passos, molts paquets per instal·lar i configurar. Faig aquest tipus de treball per guanyar-me la vida i encara era una cosa que consideraria un repte. Quan vaig acabar aquest projecte, em vaig endinsar bastant en Japer i vaig fer moltes modificacions per adaptar-me al que estava intentant fer.
Alguns canvis que he fet:
S'ha eliminat l'escolta passiva i s'ha utilitzat un port GPIO per iniciar l'escolta activa amb un interruptor de tall casolà. Això va donar lloc a una cosa més "arcade" en comparació amb l'ús de l'escolta passiva.
He canviat els paràmetres segons calgui per treballar amb el meu micròfon: he hagut de passar per tres micròfons USB diferents fins trobar-ne un que funcionés correctament per a mi. També vaig haver d’ajustar alguns dels valors llindars del codi. Aquesta va ser la part més dolorosa de l’ús personal de Jasper per a mi.
S'ha afegit el codi de connexió en sèrie a tots els mòduls per obrir una connexió en sèrie, digueu a l'esclau pi què ha de fer "ulls posats", "xerrada", "tamborí bang"
S'han afegit els mòduls "qui són els meus amics", "explica'm una broma", "llegeix la meva programació des del meu calendari CRM", "explica'm la meva fortuna". Alguns dels quals requerien fer trucades REST al programari basat en el núvol per obtenir dades. Hi ha una gran quantitat de mòduls pròpies que he aprofitat com a exemples juntament amb la documentació del lloc per ajudar-me a fer el que necessitava.
Pas 6: afegir dos eixos al crani
Vaig començar amb el crani bàsic de Lindberg. Originalment havia pensat en un crani de 4/5 eixos, però el temps que trigaria a escriure el codi python per coordinar els moviments juntament amb construir el maquinari del moviment superaria el temps que havia de finalitzar la resta del projecte. (No sé si ja existeix, però hi ha un programari en un Pi o Ardunio per conduir un crani multi-eix que seria un projecte bastant genial en si mateix.) Així doncs, un eix: el moviment de la mandíbula era massa coix, de manera que Vaig afegir el moviment del cap i amb els ulls LCD funcionant, estic content amb els resultats.
Així que, mirant la feina que han fet altres persones amb cranis parlants, vaig descobrir què havia de fer, dos servos i servocornes, un tros de MDF, cola calenta, tirants, proves i errors: tenia la part física al seu lloc. La programació bàsica Pi del moviment va trigar més. Vaig haver d'esbrinar els valors del PWM per als dos servos. Vaig començar amb el gir bàsic complet / obert / tancat cap a l'esquerra / dreta. Però no semblava bé. Així que vaig fer moviments intermedis, mandíbula totalment oberta, endarreriment.1, mandíbula parcialment tancada, sense endarreriment, pot parcialment obert, endarreriment.etc, etc. es veu millor.
Una cosa desafortunada que no vaig tenir temps de treballar és que tot el material que vaig posar a la tapa del crani: la tira metàl·lica, les punxes, la corona de coure i el cablejat van fer que el crani en general fos més pesat i que el servo a l'interior sigui tan difícil. s'està movent més lentament i no tan lluny. Un servo de parell més elevat probablement ajudaria aquí, però estava fora de temps i de fons …
Pas 7: controlador de servocomandes Adaifruit Hat
Adafruit té excel·lents exemples de com utilitzar els seus productes. El que era un desafiament era esbrinar quins eren exactament els valors de cadascun dels servos: centre, extrem esquerre i dret. No són 0, 90, 180 com es pensaria. Va ser només un parell de línies de programa Python de llarg, però va trigar algunes hores a modificar-se per aconseguir-ho ambdós servos.
Pas 8: Taula de relés
Ho vaig recollir a Amazon. Molts llocs web venen el que sembla ser exactament la mateixa unitat. Va caldre experimentar aquí, però fer girar els relés només necessita un parell de línies de codi i teniu connexions NC i NO als relés, cosa que ho fa encara més fàcil. Un altre desafiament aquí és que el port / pin GPIO no sigui un partit 1: 1 amb el pin fora del Pi. Vaig trigar una mica de feina a aconseguir-ho.
Pas 9: Teensy i els ulls
He pres aquest 100% del lloc d'Adafruit. Originalment tenia unes boles de ping pong il·luminades amb LED coix que anava a utilitzar, però una vegada que vaig veure això al seu lloc, les havia de tenir. Abans d'això no tenia cap experiència d'Ardunio, però seguia cegament els exemples del seu lloc i els feia funcionar aproximadament en un mig dia. A més, des que he llançat el programa fins a la adolescència, el conserva i quan l’engegueu. L'Ardunio arrenca en uns 3 segons i il·lumina els ulls. Per tant, tot el que havia de fer perquè els ulls funcionessin era connectar 12v a un dels relés i encendre el teensy, els ulls i la màgia.
Muntar les pantalles LCD al crani va ser SUPER dolorós. 7 cables petits a cada pantalla LCD, de manera que hi ha 14 cables en total i que intenten triturar el crani i muntar-los rectes i no trencar un cable, cosa que passa molt va ser molt dolorosa. Per tant, programació de dificultat moderada: muntatge dur. Tot el contrari del que esperava. El Teensy es va col·locar a la part posterior dels ulls sota la placa de MDF que subjecta els dos servos.
Pas 10: Tamborí
Doncs bé, sempre recordo el cap de la bola de cristall de la Mansió encantada i el tamborí que surava xocant mentre contactava amb els esperits, així que vaig haver de tenir alguna cosa així per a aquest projecte. Com que el crani provenia d’un antic lector / vident mental, els esperits han de fer saber a la gent quan són presents J. Vaig trobar el relé push pull més gran que vaig poder trobar. A continuació, el vaig voltar de 12 a 24 amb un carregador de portàtil de recanvi que tenia. Vaig haver de fer un parell de versions diferents del mecanisme, però la meva tercera iteració va funcionar millor. Vaig haver de ficar-me amb la longitud de la palanca, l'alineació, etc. El meu gran error va ser fer tot això amb fusta / MDF. Quan vaig muntar això per primera vegada funcionant a 24v, el solenoide feia petar tan fort el tamborí que es desgarrava. (A 12 v no era prou fort) Amb el pas del temps, tenint un eix de fusta muntat a MDF i pintant coses, tot es va fer més difícil / més difícil de moure, cosa que va fer que el solenoide tingués més dificultats per treure’s quan fos enegeritzat i tornés més difícil. Per tant, vaig haver d’afegir una molla de retorn addicional, que requereix que el solenoide perdi energia quan s’energia. Així doncs, va acabar colpejant el tamborí al costat lent. La propera vegada en construeixo aquesta part en una boixa metàl·lica, bronze, eix metàl·lic, etc. i evito aquest problema.
Pas 11: làmpada de plasma
Com que no anava a construir una escala d’en Jacobs ni cap altra font d'energia de científics bojos i malvats per al projecte, necessitava algun tipus d '"energia" per conduir el crani. Vaig agafar el meu vell Samsung Galaxy S5, vaig fer un restabliment de fàbrica i vaig carregar-hi una aplicació de bola d’energia. Vaig haver de carregar una altra aplicació que no permetia que el telèfon entrés en mode estalvi de pantalla per mantenir-lo actiu a l'aplicació.
Pas 12: Com fer que parpellegi la llum de 120 v
AVÍS -
Això es fa malbé amb un endoll de CA de 120 V a la paret. Si no sabeu què feu, no ho feu
AVÍS -
halloweenpropmaster.com/u-build-it3.htm
Aquest lloc ofereix la millor explicació de com fer-ho. El cost de l’arrencada és molt barat i m’he destripat un cable de prolongació de recanvi que tenia. En tinc un parell construït i els he estat fent servir durant el temps de Halloween i funcionen molt bé, no s’han bufat fusibles, no hi ha sobreescalfament, etc. Els he executat durant hores sense problemes. Així que per a aquest projecte vaig agafar un dels cables d’extensió amb l’arrencador en línia i el vaig connectar a un dels quatre relés de la placa. Un parell de línies de codi GPIO l’apagaran i s’encendran. També comença a funcionar immediatament, sense temps d’escalfament.
Pas 13: la plataforma / taula
He vist bastants ‘calaveres sobre una taula’, ‘un cap de taula de Frankenstein sobre una taula’, un científic boig de tipus d’atrezzo i vaig decidir que volia seguir aquesta ruta. Em donaria l’oportunitat de provar alguna cosa més que el crani parlant. He descobert la mida bàsica de la taula i la he construït amb ¼ MDF. Utilitzar una serra de taula fa que sigui bastant fàcil. Els meus projectes solen ser coses de metall, de manera que construir amb fusta era una mica nou per a mi. Vaig tallar les peces bàsiques i vaig fer els meus 4 costats de la caixa i una part superior ràpidament. On vaig aprendre una dura lliçó, vaig utilitzar una pistola de cola per muntar-les. El que vaig descobrir és que: aquesta no és la manera de fer-ho. Totes les peces es van trencar tan bon punt vaig recollir la maleïda cosa! Així que vaig tallar alguns trossos addicionals de 1”quadrat per reforçar les cantonades i la fusta la va enganxar / clavar. Lliçó apresa. Vaig col·locar una guarnició entre la part superior i els laterals de la plataforma, la vaig enganxar i clavar al seu lloc. Es va posar putti per omplir els buits i ja estava a punt per muntar-hi la resta de components.
Per la resta em vaig inspirar en imatges que he vist al web. Per «antiquar» el crani vaig intentar utilitzar una taca fosca. No va funcionar; no s’enganxava al plàstic. Així que vaig provar de pintar el crani amb un blanc trencat i després vaig posar la taca. Va funcionar molt millor. Sé que hi ha moltes tècniques per fer-ho i estic content de la manera com va resultar. Cinta de coure que tenia col·locada d'un altre projecte que vaig utilitzar per a la tapa del crani i al voltant dels ossos de les galtes. Vaig pintar a la taca la resta d’elements pintats que no eren de color negre per donar-li aquest aspecte antic / antic.
La resta de peces i boletes les vaig disposar d'altres projectes. Totes les peces de llautó provenen d’una botiga de llums. Vaig fer l'interruptor de tall amb alguns materials de rebuig i el comandament de l'extrem és una altra peça de llum. Els tubs que vaig trobar en un lloc excedent electrònic juntament amb els aïllants. Pics de punk rocker que tenia d’un altre projecte post-apocalíptic. Filferro de xapa d’acer i coure de la ferreteria i alguna canonada de PVC per a les seves vèrtebres.
Per al pòster, he trobat una imatge del pòster del mag antic a la web i, amb algunes botigues de fotografies, la màgia ha canviat el nom.
Pas 14: la resta
Em vaig inspirar en les imatges que he vist al web. Per «antiquar» el crani vaig intentar utilitzar una taca fosca. No va funcionar; no s’enganxava al plàstic. Així que vaig provar de pintar el crani amb un blanc trencat i després vaig posar la taca. Va funcionar molt millor. Sé que hi ha moltes tècniques per fer-ho i estic content de la manera com va resultar. Cinta de coure que tenia col·locada d'un altre projecte que vaig utilitzar per a la tapa del crani i al voltant dels ossos de les galtes. Vaig pintar a la taca la resta d’elements pintats que no eren de color negre per donar-li aquest aspecte antic / antic.
La resta de peces i boletes les vaig disposar d'altres projectes. Totes les peces de llautó provenen d’una botiga de llums. Vaig fer l'interruptor de tall amb alguns materials de rebuig i el comandament de l'extrem és una altra peça de llum. Els tubs que vaig trobar en un lloc excedent electrònic juntament amb els aïllants. Pics de punk rocker que tenia d’un altre projecte post-apocalíptic. Filferro de xapa d'acer i coure de la ferreteria i alguna canonada de PVC per a les seves vèrtebres.
Pas 15: muntatge / afinació / ajustament
Així doncs, aquí va ser el meu procés de compilació:
# 1 Instal·leu Jasper en un Pi i feu que funcioni.
# 2 Vaig comprar diversos micròfons i modificar-los fins que tingui èxit.
# 3 Al segon Pi, instal·leu el barret d'Adafruit i enteneu com moure els servos. Feu entrar els servos al crani i entengueu els valors que necessitava per moure’ls.
# 4 Construeix una base de proves per al crani perquè pugui treballar-hi a la meva oficina. Ajustar, tornar a ajustar, retocar una mica més.
# 5 Muntar tots els components elèctrics en una placa de plexiglàs. Empanades, placa de relés, fonts d'alimentació USB i cables relacionats.
# 6 Construeix els ulls d'Adafruit. Demostreu-me que només necessiten tensió aplicada perquè tot funcioni. No ho sabia quan vaig començar aquesta part.
# 7 Feu una prova del concepte d’enviament i recepció de dades en sèrie entre els dos Pies. Escriviu una rutina de bucle per al 2n Pi amb les ordres que necessitava: parleu activat / desactivat, etc. Proveu-lo amb un codi de mostra a Pi # 1. Encara no hi ha Jasper.
# 8 Afegiu el codi de sèrie al codi Jasper: demostreu que puc obtenir un moviment bàsic quan Jasper parla.
# 9 Comenceu a embolicar amb la placa de relés. Afegiu el codi per activar els ulls.
# 10 Afegiu codi per engegar el 120v. Construeix el solenoide i el tamborí en una plataforma independent per esbrinar com hauria de funcionar.
# 11 Feu muntar els ulls al crani.
# 12 Creeu la plataforma on es muntarà tot. Muntar totes les peces a la plataforma, fer la base d'acer del crani per subjectar-la, afegir els components del tamborí.
# 13 Proveu d’aconseguir els pastissos i la taula de la casa al garatge i esbrineu com aconseguir-los a l’interior de la plataforma.
# 14 Comenceu a sintonitzar. Més afinació, continueu afinant. Adoneu-vos que he de fer que el codi Python sigui multi-fil perquè totes les accions puguin funcionar juntes.
# 15 Decidiu afegir la bola d'energia per sota dels tubs de buit. Esbrineu que puc fer-ho amb un telèfon mòbil antic. Va fer que funcionés en menys d’un dia.
# 16 Continueu afegint detalls. Pics, filferro de coure, tubs, antics del crani. Seguiu sintonitzant i provant. Pintar, retocar i arreglar les coses que es desprenen, tornar a dissenyar / reforçar les coses que es desfan.
# 17 Prova i ajustaments Prepara't per mostrar-ho a altres persones.
Recomanat:
Rellotge de visualització mecànic de 7 segments: 7 passos (amb imatges)
Rellotge de visualització mecànic de set segments: fa un parell de mesos vaig construir una pantalla mecànica de 7 segments de dos dígits que vaig convertir en un temporitzador de compte enrere. Va sortir força bé i diverses persones van suggerir doblar-se a la pantalla per fer un rellotge. El problema era que ja estava corrent
Teclat mecànic Arduino: 5 passos (amb imatges)
Teclat mecànic Arduino: necessitava un pin pad per a un altre projecte, així que vaig decidir fer un teclat amb les peces que tenia a casa
Teclat mecànic dividit Cherry Pi: 45 passos (amb imatges)
Teclat mecànic dividit Cherry Pi: fa anys que utilitzo un teclat Microsoft Natural Elite. I després de gairebé 20 anys de servei fidel, està al final de la seva vida útil. Durant la cerca d’un substitut, també vaig examinar diferents teclats mecànics. I perquè faig bricolatge regularment
Teclat mecànic ErgoDox: 11 passos (amb imatges)
Teclat mecànic ErgoDox: el teclat ErgoDox és un teclat dividit, mecànic i programable. És completament de codi obert, per tant, tot el que necessiteu per construir-lo és comprar les peces i dedicar-hi el temps. Treballo com a enginyer de programari i sempre busco maneres de millorar la meva productivitat
Fotoelasticimetria: veure esforç mecànic amb òptica: 5 passos (amb imatges)
Fotoelasticimetria: veure l'estrès mecànic amb l'òptica: la fotoelasticimetria és una manera de visualitzar soques en materials. En aquest instructiu, veurem com podeu fer algunes mostres per determinar experimentalment la distribució de la tensió en alguns materials amb càrrega mecànica