Innholdsfortegnelse:

Homunculus - the Mechanical Mystical Oracle Fortune Teller: 15 Steps (med bilder)
Homunculus - the Mechanical Mystical Oracle Fortune Teller: 15 Steps (med bilder)

Video: Homunculus - the Mechanical Mystical Oracle Fortune Teller: 15 Steps (med bilder)

Video: Homunculus - the Mechanical Mystical Oracle Fortune Teller: 15 Steps (med bilder)
Video: Unboxing ZOLA the tattoo FORTUNE TELLER 2024, November
Anonim
Image
Image
Homunculus - Mechanical Mystical Oracle Fortune Teller
Homunculus - Mechanical Mystical Oracle Fortune Teller

Ok - så hva skal dette være … bakhistorien på dette jeg forteller folk er at skallen er fra en mystiker fra 1800 -tallet som graven ble ranet, og at skallen hans som endte på en karnevalside, viste seg tilbake på begynnelsen av 1900 -tallet. Jeg fant den i en kjeller i et nedslitt viktoriansk hus og rekonstruerte rekvisitten til en spåkone fra det 21. århundre-'hvem kan nå ut på internettets eter, fortelle deg din formue, hvem dine venner og fiender er, fortell en spøk og les e -posten min og kalenderen for dagen '.

Hva er det egentlig - Vel, det er den fantastiske Jasper -programvaren som kjører på en Raspberry pi, og jeg har laget en 2 -kanals snakkende Linburg -hodeskalle som snakker sammen med mange bjeller og fløyter (og en tamburin) for å legge til den.

Dette var et superambisiøst prosjekt. Mange forskjellige medier å jobbe med - flere paier, trebearbeiding, maling, mange ledninger, mye koding i python, ardunio -koding, mange små ledninger, 120v ledninger, pi 'hatter' eksterne brett, stafettdrivere og releer, 24v strømforsyninger, få ting til å bevege seg - en hodeskalle med 2 akser og tamburinen som dunker.

Jeg går ikke inn på superdetaljer for hvert stykke for hver del, spesielt pytonkodingen, men jeg skal prøve å beskrive hver komponent kort og inkludere bilder.

Også på Python-eksemplene-ja, jeg kunne ha vært mye mer objektorientert på kodingen, men min Python-opplevelse da jeg startet prosjektet var ganske grunnleggende, og selvfølgelig er det lettere å klippe og lime inn når du har det travelt vs. stopp det du gjør, skriv det på riktig måte og fortsett deretter.

Trinn 1: Viktige komponenter - ting jeg måtte finne/få/kjøpe

Viktige komponenter - ting jeg måtte finne/få/kjøpe
Viktige komponenter - ting jeg måtte finne/få/kjøpe
Viktige komponenter - ting jeg måtte finne/få/kjøpe
Viktige komponenter - ting jeg måtte finne/få/kjøpe
Viktige komponenter - ting jeg måtte finne/få/kjøpe
Viktige komponenter - ting jeg måtte finne/få/kjøpe

Bringebær Pi

To av dem

www.adafruit.com/products/1914?gclid=CjwKE…

Jasper

"Jasper er en åpen kildekode-plattform for utvikling av stemmestyrte applikasjoner som alltid er på"

jasperproject.github.io/

Adafruit 'øyne'

learn.adafruit.com/adafruit-1-44-color-tft…

Teensy - Hjerne for øynene

www.adafruit.com/product/2756

Hvordan lage ‘øynene ved å bruke tenåringer og 1-44 farge tft-skjermer

learn.adafruit.com/animated-electronic-eye…

16 -kanals Serveo -hatt

learn.adafruit.com/adafruit-16-channel-pwm…

Den klassiske Lindberg -skallen

www.amazon.com/Lindberg-scale-Pirate-skull…

4 -kanals relékort som fungerer med en Raspberry Pi

www.amazon.com/Sizet-Channel-Module-Arduin…

Push Solenoid

(Denne er tilgjengelig fra mange forskjellige steder)

www.aliexpress.com/item/High-quality-DC-12…

USB -mikrofon

Dette er tilgjengelig fra mange forskjellige steder

www.samsontech.com/samson/products/micropho…

Diverse

To servoer jeg hadde liggende, servohorn jeg fant i kurven på $ 1 i hobbybutikken. Servo forlengelseskabler, USB/Bluetooth -høyttaler, muttere, MDF, Hot Lim, gamle vakuumrør, forskjellige lampestykker og biter, en gammel Samsung S5 mobiltelefon, stålplate, kobbertråd, kobbertape, spiker, vanlig lim osv. etc.

Trinn 2: Hvorfor to bringebærpaier?

Hvorfor to bringebærpaier?
Hvorfor to bringebærpaier?

Opprinnelig hadde jeg ønsket å synkronisere hodeskallene som snakket med talen, men etter å ha installert Jasper og bestemt meg for alt jeg ville gjøre, alle tingene som beveget meg rundt, tenkte jeg at det kan være bedre å dele alt arbeidet i to paier. Jeg hadde en frist for å få dette gjort, og jeg ønsket ikke å måtte gå tilbake hvis jeg hadde noen form for ytelsesproblemer. Nå som arbeidet er gjort, tror jeg at jeg kunne gjort det med en enkelt Pi, på den tiden syntes jeg det var best å la en pi styre Jasper og en andre pi drive servoene og reléene, slik at jeg kunne ha en klar avgrensning mellom arbeid. Det var også lettere for utvikling. Jeg kan få alt riktig i at Jasper ikke trenger å bekymre seg for servoer og reléer. På den andre pi kunne jeg fokusere på å kjøre servoer, timing av ting - slå på lys, flytte servoer osv. Og ikke måtte bekymre meg for problemer med tale/høyttaler/mikrofon.

Ulempen med dette er at jeg mistet muligheten til å få hodeskallen til å bevege kjeven med talen, men etter å ha sett på Grant Imaharas arbeid for The Late Late Show med å lage ‘Geoff’, tenkte jeg at ting ville se bra nok ut.

www.popularmechanics.com/science/a5473/4350…

Trinn 3: Hvordan kommuniserer de to paiene?

Hvordan kommuniserer de to paiene?
Hvordan kommuniserer de to paiene?
Hvordan kommuniserer de to paiene?
Hvordan kommuniserer de to paiene?

Det er noen forskjellige måter du kan gjøre dette på. Jeg gikk på old school og bestemte meg for å gå med en seriell tilkobling. Den trenger bare tre ledninger mellom de to paiene (Tx, Rx & gnd) og en liten mengde kode for å åpne en seriell forbindelse fra Pi#1 til Pi#2 og sende noe over til den. Pi#2 åpner en seriell tilkobling for å lese data og setter inn en tett loop -lesing fra den serielle tilkoblingen. Når den mottar tekst, ser den om den samsvarer med en kommando (Talk, lights on, lights off, talk off, etc.) og gjør det den trenger å gjøre. Den nedre siden av den serielle tilkoblingen er at det er en liten forsinkelse fra kommandoen sendes og prosessen med kommandoen. Pi#2 er i en loop med en liten forsinkelse på lesingen. Så jeg måtte liksom sette tempo på ting. Også for fremtidige multi-pi-prosjekter er det godt å vite at jeg kan få to paier til å kommunisere og IKKE trenger internett for å gjøre det.

Trinn 4: Python -tråder

Python -tråder
Python -tråder

For å legge til litt mer kompleksitet i alt, endte jeg opp med å måtte bruke Python -tråder på Pi#2, slik at jeg kunne håndtere flere forespørsler og behandle dem samtidig. For eksempel måtte jeg begynne å snakke - flytte hodeskallen til venstre/høyre mens kjeven går opp og ned, men hva om Pi#1 av en eller annen grunn har en feil og ikke kan fortelle Pi#2 for å slutte å snakke, ville skallen snakke for alltid. Så jeg trengte å få hodeskallen til å si seg selv av etter en viss tid. For å gjøre dette var det enklest å spinne av en tråd. Inne i trådrutinen for å snakke er det en kode som etter en maksimal tid slutter å snakke, tilbakestiller hodet og kjeven og går ut. Samme for tamburinen, jeg trengte den for å starte like før skallen sluttet å snakke, så jeg spinner en annen tråd for tamburinen og alt fungerer sammen og koden for hodebevegelsen er helt atskilt fra tamburinen som slår - det samme for å slå på lysene og øynene alle trådene kan alle kjøre samtidig.

Mengden kode som trengs i Python for å bruke tråder er ganske liten, men det er stumt og tok litt tid å få hodet rundt det, men som det viser seg, fungerer det veldig bra. Evnen til å bruke tråder er et godt verktøy å ha i verktøykassen hvis du er en Raspberry Pi -utvikler.

Trinn 5: Jasper og Jasper modifikasjoner

Jasper -nettstedet er ressursen for å få det installert på en pi, hvilke talerecorder du skal bruke, hvordan du konfigurerer, skriver nye moduler, alt - og det er gratis! Det er imidlertid ikke en enkel installasjon. Mange trinn, mange pakker å installere og deretter konfigurere. Jeg gjør denne typen arbeid for å leve, og det var fortsatt noe jeg ville betrakte som en utfordring. Da jeg var ferdig med dette prosjektet, kom jeg ganske dypt inn i Japer og gjorde mange endringer for å imøtekomme det jeg prøvde å gjøre.

Noen endringer jeg har gjort:

Fjernet passiv lytting og brukte en GPIO -port for å starte aktiv lytting med en hjemmelaget bryter. Dette ga mer av en "arkade" -ting mot å bruke passiv lytting.

Endret parametrene etter behov for å jobbe med mikrofonen min - jeg måtte gå gjennom tre forskjellige USB -mikrofoner til jeg fant en som ville fungere riktig for meg. Jeg måtte også justere noen av terskelverdiene i koden. Dette var den mest smertefulle delen av å bruke Jasper for meg personlig.

Lagt til den serielle tilkoblingskoden i alle modulene for å åpne en seriell tilkobling, fortell slaven pi hva du skal gjøre 'øyne på', 'snakke', 'bang tambourine'

Lagt til modulene "hvem er vennene mine", "fortell meg en vits", "les timeplanen min fra CRM -kalenderen", "fortell meg min formue". Noen av dem krevde REST -opprop til skybasert programvare for å skaffe data. Det er mange moduler som jeg brukte som eksempler sammen med dokumentasjon på nettstedet for å hjelpe meg med å få det jeg trengte gjort.

Trinn 6: Legge til to akser til skallen

Legger til to akser til skallen
Legger til to akser til skallen
Legger til to akser til skallen
Legger til to akser til skallen
Legger til to akser til skallen
Legger til to akser til skallen

Jeg begynte med den grunnleggende Lindberg -skallen. Jeg hadde opprinnelig tenkt på en 4/5 akseskalle, men tiden det ville ta å skrive pythonkoden for å koordinere bevegelsene sammen med å bygge ut maskinvaren for bevegelsen, ville overstige tiden jeg måtte fullføre resten av prosjektet. (Jeg vet ikke om det allerede eksisterer, men et stykke programvare på en Pi eller Ardunio for å kjøre en flerakset hodeskalle som ville være et ganske kult prosjekt i seg selv.) Så en akse-kjeven som beveget seg var for halt, så Jeg la til hodebevegelsen, og med LCD -øynene som fungerer, er jeg fornøyd med resultatene.

Så fra å se på arbeidet andre har gjort med snakkende hodeskaller fant jeg ut hva jeg måtte gjøre, to servoer og servohorn, et stykke MDF, varmt lim, glidelåser, prøving og feiling - jeg hadde den fysiske delen av dette på plass. Grunnleggende Pi -programmering av bevegelsen tok faktisk lengre tid. Jeg måtte finne ut verdiene for PWM for begge servoene. Jeg begynte med det grunnleggende helt åpent/lukket svinghodet helt til venstre/høyre. Men det så ikke bra ut. Så jeg gjorde mellombevegelser, kjeve helt åpen, forsinkelse.1, kjeve delvis lukket, ingen forsinkelse, krukke delvis åpen, forsinkelse, etc. osv. Samme for hodebevegelsen, smekk frem og tilbake så skitne ut, så mellombevegelser og forsinkelser gjør det ser bedre ut.

En uheldig ting jeg ikke hadde tid til å jobbe med er at alt materialet jeg la på hodeskallen - metalllisten, pigger, kobberkrone og ledninger gjorde den generelle skallen tyngre og gir servoen en vanskelig tid så det går saktere og ikke så langt. En servo med høyere dreiemoment vil sannsynligvis hjelpe her, men jeg var tom for tid og midler …

Trinn 7: Adaifruit Hat Servo Driver

Adaifruit Hat Servo Driver
Adaifruit Hat Servo Driver

Adafruit har gode eksempler på hvordan de bruker produktene sine. Det som var utfordrende var å finne ut hva nøyaktig verdiene var for hver av servoene - senter, helt til venstre og høyre. Det er ikke 0, 90, 180 som du skulle tro. Det var bare et par linjer langt pytonprogram, men det tok noen timer med tilpasninger for å komme igjennom dette for begge servoene.

Trinn 8: Relébrett

Stafett
Stafett

Jeg hentet dette på Amazon. Mange nettsteder selger det som ser ut til å være nøyaktig samme enhet. Det tok litt eksperimentering her, men å vende reléene tar bare et par koderader, og du har en NC og NO -tilkobling på reléene, noe som gjør det enda enklere. En annen utfordring her er at en GPIO -port/pin ikke er en 1: 1 -kamp med pinnen ute på Pi. Det tok litt arbeid å få hodet rundt det.

Trinn 9: Teensy and the Eyes

Tenåringer og øynene
Tenåringer og øynene

Jeg tok dette 100% fra Adafruit -siden. Opprinnelig hadde jeg noen lamme LED -opplyste bordtennisballer jeg skulle bruke, men når jeg så dette på nettstedet deres måtte jeg ha det. Jeg hadde ingen Ardunio -erfaring før dette, men jeg fulgte blindt eksemplene på nettstedet deres og lot disse fungere på omtrent en halv dag. Også - siden jeg blinket programmet til tenåringen, beholder det det og når du slår det på. Ardunio starter på omtrent 3 sekunder og lyser opp øynene. Så alt jeg måtte gjøre for å få øynene til å fungere var å koble til 12v til et av reléene og slå på tenårene og øynene, og det skjer magi!

Montering av LCD -skjermene i skallen var SUPER smertefullt. 7 små ledninger på hver LCD så 14 ledninger totalt og prøver å slipe ut skallen og få dem montert rett og ikke bryte en ledning - noe som skjer mye var veldig smertefullt. Så programmering moderate vanskeligheter - å montere hardt. Akkurat det motsatte av det jeg forventet. Teensy satt bak i øynene under MDF -platen som holder de to servoene.

Trinn 10: Tamburin

Tamburin
Tamburin
Tamburin
Tamburin

Jeg husker alltid hodet i krystallkulen i Haunted Mansion og tamburinen som fløt rundt og banket mens hun kontaktet ånder, så jeg måtte ha noe slikt for dette prosjektet. Siden skallen var fra en tidligere tankeleser/seer, må åndene gi beskjed til folk når de er til stede J. Jeg fant det største, kraftigste push pull -reléet jeg kunne finne. Så overspente den fra 12v til 24v med en ekstra bærbar lader jeg hadde. Jeg måtte lage et par forskjellige versjoner av mekanismen, men min tredje iterasjon fungerte best. Jeg måtte rote med spaklengde, justering osv. Min store feil var å gjøre alt dette med tre/MDF. Da jeg først satte dette sammen ved å kjøre på 24v, ville solenoiden slå tamburinen så hardt at den rev seg. (Ved 12v var det ikke sterkt nok) Over tid med å ha montert et treskaft i MDF og male ting, ble det hele vanskeligere / vanskeligere å bevege, noe som gjorde at solenoiden hadde vanskeligere å skyve ut når den var forandret OG en vanskeligere tid å komme tilbake. Så jeg måtte legge til en ekstra returfjær - som krever at solenoiden sløser med energi når den får strøm. Så det endte med at det slo på tamburinen på den sakte siden. Neste gang jeg bygger den delen av den i metall - bronseforinger, metallskaft, osv., Og unngå dette problemet.

Trinn 11: Plasmalampe

Plasmalampe
Plasmalampe
Plasmalampe
Plasmalampe

Siden jeg ikke hadde tenkt å bygge en Jacobs -stige eller en annen ond vitenskapsmann energikilde for prosjektet, trengte jeg en slags "energi" for å drive skallen. Jeg tok min gamle Samsung Galaxy S5, tilbakestilte fabrikken og lastet opp en energiball -app på den. Jeg måtte laste inn en annen app som ikke lot telefonen gå i skjermsparermodus for å holde den aktiv på appen.

Trinn 12: Hvordan lage 120v lysflimmer

Slik får du 120v lys til å flimre
Slik får du 120v lys til å flimre

ADVARSEL -

Dette roter med 120v vekselstrømkontakt i strømmen her. Hvis du ikke vet hva du gjør, ikke gjør det

ADVARSEL -

halloweenpropmaster.com/u-build-it3.htm

Dette nettstedet gir den beste forklaringen på hvordan du gjør dette. Prisen på starteren er super billig, og jeg slettet en ekstra skjøteledning jeg hadde. Jeg har et par av disse bygget og har brukt dem i løpet av Halloween -tiden, og de har fungert veldig bra, ingen sikringer har gått, ingen overoppheting osv. Jeg har kjørt dem i flere timer om gangen uten problemer. Så for dette prosjektet tok jeg en av skjøteledningene med startlinjen og koblet den til en av de fire reléene på brettet. Et par linjer med GPIO -kode slår den av og på. Det begynner også å fungere umiddelbart, ingen oppvarmingstid.

Trinn 13: Plattformen/tabellen

Plattformen/bordet
Plattformen/bordet
Plattformen/bordet
Plattformen/bordet

Jeg har sett ganske mange 'hodeskaller på et bord', 'Frankensteins hode på et bord' gale forskere, og jeg bestemte meg for at jeg ville gå den veien. Det ville gi meg en sjanse til å prøve mer enn bare den snakkende skallen. Jeg fant ut den grunnleggende bordstørrelsen og bygde den av ¼ MDF. Å bruke en bordsag gjør det ganske enkelt. Prosjektene mine er vanligvis metallting, så det var litt nytt for meg å bygge med tre. Jeg kuttet ut de grunnleggende delene og fikk mine fire sider av esken og en topp laget ganske raskt. Der jeg lærte en hard leksjon med, brukte jeg en limpistol for å montere dem. Det jeg fant ut er at - dette er ikke måten å gjøre det på. Alle brikkene gikk fra hverandre så snart jeg tok den jævla tingen! Så jeg kuttet noen ekstra stykker på 1”firkant for å forsterke hjørnene og tre limte/spikret det sammen. Lært en lekse. Jeg la litt trim mellom toppen og sidene av plattformen, limte og spikret den på plass. Spot sparklet for å fylle hullene, og den var klar til å ha resten av komponentene montert på den.

For resten fikk jeg inspirasjon fra bilder jeg har sett på nettet. For å ‘antikke’ skallen prøvde jeg å bruke en mørk flekk. Det fungerte ikke; den holdt seg ikke til plasten. Så jeg prøvde å male hodeskallen med en off -white og la deretter flekken på. Det fungerte mye bedre. Jeg vet at det er mange teknikker for å gjøre dette, og jeg er fornøyd med hvordan det ble. Kobberbånd jeg hadde liggende fra et annet prosjekt jeg brukte til hodeskallen og rundt kinnbenene. Jeg malte på flekken på resten av de ikke-svartmalte elementene for å gi det det gamle/gamle utseendet.

Resten av brikkene og boblene hadde jeg liggende fra andre prosjekter. Alle messingbitene er fra en lampebutikk. Jeg lagde kuttbryteren av noen skrapmaterialer, og knappen på enden er et annet lampestykke. Rørene fant jeg på et elektronisk overskuddssted sammen med isolatorene. Punk rocker pigger jeg hadde fra et annet post-apokalyptisk prosjekt. Stålplate og kobbertråd fra jernvarehandel og noe PVC -rør for ryggvirvlene.

For plakaten fant jeg et gammelt tryllekunstners plakatbilde på nettet og med litt Photo Shop -magi endret navnet.

Trinn 14: Resten

Resten
Resten
Resten
Resten
Resten
Resten
Resten
Resten

Jeg fikk inspirasjon fra bilder jeg har sett på nettet. For å ‘antikke’ skallen prøvde jeg å bruke en mørk flekk. Det fungerte ikke; den holdt seg ikke til plasten. Så jeg prøvde å male hodeskallen med en off -white og la deretter flekken på. Det fungerte mye bedre. Jeg vet at det er mange teknikker for å gjøre dette, og jeg er fornøyd med hvordan det ble. Kobberbånd jeg hadde liggende fra et annet prosjekt jeg brukte til hodeskallen og rundt kinnbenene. Jeg malte på flekken på resten av de ikke-svartmalte elementene for å gi det det gamle/gamle utseendet.

Resten av brikkene og boblene hadde jeg liggende fra andre prosjekter. Alle messingbitene er fra en lampebutikk. Jeg lagde kuttbryteren av noen skrapmaterialer, og knappen på enden er et annet lampestykke. Rørene fant jeg på et elektronisk overskuddssted sammen med isolatorene. Punk rocker pigger jeg hadde fra et annet post-apokalyptisk prosjekt. Stålplate og kobbertråd fra jernvarehandel og noe PVC -rør for ryggvirvlene.

Trinn 15: Montering/Tuning/Tweaking

Montering/Tuning/Tweaking
Montering/Tuning/Tweaking

Så her var min byggeprosess:

#1 Installer Jasper på en Pi og få den til å fungere.

#2 Kjøpte flere mikrofoner og juster til jeg har lykkes.

#3 På den andre Pi, installer Adafruit -hatten og forstå hvordan du flytter servoene. Få servoene inn i skallen og forstå verdiene jeg trengte å bruke for å flytte dem.

#4 Bygg en testbase for skallen slik at jeg kan jobbe med den på kontoret mitt. Tweak, re-tweak, tweak litt mer.

#5 Monter alle de elektriske komponentene på et plexiglasbrett. Paier, relékort, USB -strømforsyninger og relaterte ledninger.

#6 Bygg Adafruit -øynene. Bevis for meg selv at de bare trenger spenning for å få alt til å fungere. Jeg visste ikke dette da jeg begynte denne delen.

#7 Gjør et bevis på konseptet om å sende og motta serielle data mellom de to paiene. Skriv en loop -rutine for 2. Pi med kommandoene jeg trengte - snakk på/av osv. Test den med noen prøvekode på Pi#1. Ingen Jasper ennå.

#8 Legg til seriekoden i Jasper -koden - bevis at jeg kan få grunnleggende bevegelse når Jasper snakker.

#9 Begynn å rote med stafettbrettet. Legg til koden for å slå på øynene.

#10 Legg til kode for å slå på 120v. Bygg magnetventilen og tamburinen på en egen plattform for å finne ut hvordan det skal fungere.

#11 Få øynene montert i skallen.

#12 Bygg plattformen som alt skal monteres på. Monter alle brikkene på plattformen, lag stålbunnen av skallen for å holde den, legg til tamburinkomponentene.

#13 Prøv å få paiene og brettet fra i huset inn i garasjen og finn ut hvordan du får det på innsiden av plattformen.

#14 Start tuning. Mer tuning, fortsett å stille. Innse at jeg må lage Python-koden multi-threaded slik at alle handlingene kan fungere sammen.

#15 Bestem deg for å legge til energiballen under vakuumrørene. Finn ut at jeg kan gjøre dette med en gammel mobiltelefon. Fikk det til å fungere på mindre enn en dag.

#16 Fortsett å legge til detaljer. Pigger, kobbertråd, rør, antikk hodeskallen. Fortsett å stille og teste. Mal, ta på og fikse ting som stadig løsner, konstruer/forsterk ting som faller fra hverandre.

#17 Test og finpuss Gjør deg klar til å vise den til andre mennesker.

Anbefalt: