Innehållsförteckning:

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

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

Video: Homunculus - the Mechanical Mystical Oracle Fortune Teller: 15 steg (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

Okej - så vad ska det här vara … den bakre historien om det här berättar jag för människor är att skallen är från en mystiker från 1800 -talet som gravades och att hans skalle som hamnade i någon karnevalsida visar sig tillbaka i början av 1900 -talet. Jag hittade den i en källare i ett nedgånget viktorianskt hus och byggde om rekvisitan till en spåkvinna från 2000-talet-'vem kan nå ut på internetets eter, berätta för dig om din förmögenhet, vilka dina vänner och fiender är, berätta ett skämt och läs min e -post och kalender för dagen '.

Vad är det egentligen - Det är den fantastiska Jasper -mjukvaran som körs på en hallonpi och jag har gjort en tvåkanals talande Linburgskalle som talar tillsammans med många klockor och visselpipor (och en tamburin) för att lägga till den.

Detta var ett superambitiöst projekt. Massor av olika medier att arbeta med - flera pajer, träbearbetning, målning, massor av ledningar, massor av kodning i python, ardunio -kodning, massor av små ledningar, 120v ledningar, pi 'hattar' externa kort, reläförare och reläer, 24v strömförsörjning, få saker att röra sig - en skalle med 2 axlar och tamburinen som slår.

Jag går inte in på superdetaljer för varje del för varje del, särskilt pythonkodningen, men jag ska försöka beskriva varje komponent kort och inkludera bilder.

På Python-exemplen-ja, jag kunde ha varit mycket mer objektorienterad på kodningen, men min Python-upplevelse när jag startade projektet var ganska grundläggande och det är naturligtvis lättare att klippa och klistra in när du har bråttom vs. stoppa det du gör, skriv om det korrekt och fortsätt sedan.

Steg 1: Huvudkomponenter - saker jag var tvungen att hitta/få/köpa

Stora komponenter - saker jag var tvungen att hitta/få/köpa
Stora komponenter - saker jag var tvungen att hitta/få/köpa
Huvudkomponenter - Saker jag måste hitta/få/köpa
Huvudkomponenter - Saker jag måste hitta/få/köpa
Huvudkomponenter - Saker jag måste hitta/få/köpa
Huvudkomponenter - Saker jag måste hitta/få/köpa

Raspberry Pi

Två av dem

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

Jaspis

"Jasper är en plattform för öppen källkod för att utveckla ständigt röststyrda applikationer"

jasperproject.github.io/

Adafruit "ögon"

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

Teensy - Hjärna för ögonen

www.adafruit.com/product/2756

Hur man skapar 'ögon med tonåriga och 1-44 färg tft-skärmar

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

16 -kanals servehatt

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

Den klassiska Lindbergskallen

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

4 -kanals reläkort som fungerar med en Raspberry Pi

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

Push Solenoid

(Den finns på många olika ställen)

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

USB -mikrofon

Detta finns på många olika ställen

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

Diverse

Två servon jag hade lagt runt, servohorn som jag hittade i $ 1 -korgen i hobbybutiken. Servoförlängningskablar, USB/Bluetooth -högtalare, muttrar, MDF, Hot Lim, gamla vakuumrör, olika lampdelar och bitar, en gammal Samsung S5 -mobiltelefon, stålplåt, koppartråd, koppartejp, spik, vanligt lim etc. etc.

Steg 2: Varför två hallonpajer?

Varför två hallonpajer?
Varför två hallonpajer?

Ursprungligen hade jag velat synkronisera skalle som talade med talet men efter att ha installerat Jasper och bestämt allt jag ville göra, allt som rörde mig, tänkte jag att det kan vara bättre att dela upp allt arbete i två pajer. Jag hade en deadline för att få detta gjort och jag ville inte behöva backa om jag hade någon typ av prestandaproblem. Nu när arbetet är klart tror jag att jag kunde göra det med en enda Pi, då tyckte jag att det var bäst att låta en pi hantera Jasper och en andra pi driva servon och reläer så att jag kunde ha en tydlig gränsdragning mellan arbete. Det var också lättare för utvecklingen. Jag kunde få allt rätt i att Jasper inte behövde oroa sig för servon och reläer. På den andra pi kunde jag fokusera på att köra servon, tidpunkten för saker - tända lampor, flytta servon, etc. och inte behöva oroa mig för några röst-/högtalare/mikrofonrelaterade problem.

Den negativa sidan med detta är att jag tappade förmågan att låta skallen synkronisera rör sig i käken med talet, men efter att ha tittat på Grant Imaharas arbete för The Late Late Show skapade jag 'Geoff' tänkte jag att saker skulle se bra ut.

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

Steg 3: Hur kommunicerar de två pajerna?

Hur kommunicerar de två pajerna?
Hur kommunicerar de två pajerna?
Hur kommunicerar de två pajerna?
Hur kommunicerar de två pajerna?

Det finns några olika sätt att göra detta. Jag gick på old school och bestämde mig för att gå med en seriell anslutning. Den behöver bara tre ledningar mellan de två pajerna (Tx, Rx & gnd) och en liten mängd kod för att öppna en seriell anslutning från Pi#1 till Pi#2 och skicka något över till den. Pi#2 öppnar en seriell anslutning för att läsa data och ställer in en tät slinga från dess seriella anslutning. När den tar emot lite text ser den om den matchar ett kommando (Talk, lights on, lights off, talk off, etc.) och gör vad den behöver göra. Den nedre sidan av den seriella anslutningen är att det är en liten fördröjning från när kommandot skickas och processen med kommandot. Pi#2 är i en loop med en liten fördröjning på läsningen. Så jag var tvungen att sätta fart på saker. Även för framtida multi-pi-projekt är det bra att veta att jag kan få två pajer att kommunicera och INTE behöver internet för att göra det.

Steg 4: Python -trådar

Python -trådar
Python -trådar

För att lägga till lite mer komplexitet till allt slutade jag med att behöva använda Python -trådar på Pi#2 så att jag kunde hantera flera förfrågningar och behandla dem samtidigt. Till exempel behövde jag kunna börja prata - flytta skallehuvudet till vänster/höger medan käken går upp och ner, men tänk om Pi#1 har ett fel av någon anledning och inte kan berätta för Pi#2 för att sluta prata skulle skallen tala för alltid. Så jag behövde låta skallen säga till sig själv att stänga av efter en viss tid. För att göra detta var det enklast att snurra av en tråd. Inuti trådrutinen för att prata finns det en kod som efter en max tid slutar prata, återställ huvudet och käken och avsluta. Samma för tamburinen, jag behövde den för att starta strax innan skallen slutade prata så jag snurrar en annan tråd för tamburinen och allt fungerar tillsammans och koden för huvudrörelsen är helt separat från tamburinen som slår - samma för att slå på lamporna och ögonen alla trådar kan alla köras samtidigt.

Mängden kod som behövs i Python för att använda trådar är ganska liten men det är stumt och tog lite tid att få huvudet runt det, men som det visar sig fungerar det mycket bra. Möjligheten att använda trådar är ett bra verktyg att ha i verktygslådan om du är en Raspberry Pi -utvecklare.

Steg 5: Jasper- och Jasper -modifieringar

Jasper -sajten är resursen för att få den installerad på en pi, vilken röståterställning som ska användas, hur man konfigurerar, skriver nya moduler, allt - och det är gratis! Det är dock ingen enkel installation. Massor av steg, massor av paket att installera och sedan konfigurera. Jag gör denna typ av arbete för att leva och det var fortfarande något jag skulle betrakta som en utmaning. När jag var klar med det här projektet kom jag ganska djupt in i Japer och gjorde många ändringar för att rymma det jag försökte göra.

Några ändringar jag gjorde:

Tog bort passivt lyssnande och använde en GPIO -port för att starta aktivt lyssnande med en hemlagad brytare. Detta gjorde mer till en "arkad" -typ jämfört med att använda passivt lyssnande.

Ändrade parametrarna efter behov för att fungera med min mikrofon - jag var tvungen att gå igenom tre olika USB -mikrofoner tills jag hittade en som skulle fungera korrekt för mig. Jag var också tvungen att justera några av tröskelvärdena i koden. Detta var den mest smärtsamma delen av att använda Jasper för mig personligen.

Lade till den seriella anslutningskoden i alla moduler för att öppna en seriell anslutning, berätta för slaven pi vad man ska göra "ögonen på", "prata", "bang tambourine"

Lade till modulerna "vem är mina vänner", "berätta för mig ett skämt", "läs mitt schema från min CRM -kalender", "berätta min förmögenhet". Vissa av dem krävde att REST -samtal ringde till molnbaserad programvara för att få data. Det finns många out -of -box -moduler som jag använde som exempel tillsammans med dokumentation på webbplatsen för att hjälpa mig att få det jag behövde gjort.

Steg 6: Lägga till två axlar till skallen

Lägga till två axlar till skallen
Lägga till två axlar till skallen
Lägga till två axlar till skallen
Lägga till två axlar till skallen
Lägga till två axlar till skallen
Lägga till två axlar till skallen

Jag började med den grundläggande Lindbergskallen. Jag hade ursprungligen tänkt på en 4/5 axel skalle men den tid det skulle ta att skriva pythonkoden för att koordinera rörelserna tillsammans med att bygga ut hårdvaran för rörelsen skulle överstiga den tid jag hade att slutföra resten av projektet. (Jag vet inte om det redan finns, men en mjukvara på en Pi eller Ardunio för att driva en fleraxlig skalle som skulle vara ett ganska coolt projekt i sig.) Så en axel-käken som rörde sig var för halt, så Jag lade till huvudrörelsen och med LCD -ögonen fungerande är jag nöjd med resultatet.

Så från att titta på arbete som andra har gjort med talande skalle kom jag på vad jag behövde göra, två servon och servohorn, en bit MDF, varmt lim, dragkedjor, prov och fel - jag hade den fysiska delen av detta på plats. Grundläggande Pi -programmering av rörelsen tog faktiskt längre tid. Jag var tvungen att räkna ut värdena för PWM för båda servon. Jag började med den grundläggande hela vägen öppen/stängd svänghuvud hela vägen till vänster/höger. Men det såg inte bra ut. Så jag gjorde mellanrörelser, käken helt öppen, fördröjning.1, käken delvis stängd, ingen fördröjning, burken delvis öppen, fördröjning, etc. osv. Samma för huvudrörelsen, smällde fram och tillbaka såg skit ut så mellanliggande rörelser och förseningar gör det ser bättre ut.

En olycklig sak som jag inte hade tid att arbeta igenom är att allt material jag lade på skallehatten - metallremsan, spikarna, kopparkronan och kablarna gjorde den övergripande skallen tyngre och ger servon en hård insida så det går långsammare och inte så långt. Ett servomoment med högre vridmoment skulle förmodligen hjälpa här men jag hade ont om tid och pengar …

Steg 7: Adaifruit Hat Servo Driver

Adaifruit Hat Servo Driver
Adaifruit Hat Servo Driver

Adafruit har bra exempel på hur man använder sina produkter. Det som var utmanande var att ta reda på vad värdena var för var och en av servona - mitt, längst till vänster och höger. Det är inte 0, 90, 180 som du skulle tro. Det var bara ett par rader långt pythonprogram, men det tog några timmar att finjustera för att komma igenom detta för båda servon.

Steg 8: Reläbräda

Relä styrelse
Relä styrelse

Jag tog upp det här på Amazon. Många webbplatser säljer vad som verkar vara exakt samma enhet. Det tog lite experimenterande här men att vända reläerna tar bara ett par rader kod och du har en NC och NO -anslutningar på reläerna vilket gör det ännu enklare. En annan utmaning här är att en GPIO -port/stift inte är en 1: 1 -matchning med stiftet ute på Pi. Det tog lite jobb att få huvudet runt det.

Steg 9: Teensy and the Eyes

Teensy and the Eyes
Teensy and the Eyes

Jag tog detta 100% från Adafruit -sajten. Ursprungligen hade jag några halta LED -upplysta pingisbollar som jag tänkte använda men när jag såg detta på deras webbplats var jag tvungen att ha det. Jag hade ingen Ardunio -erfarenhet före detta men jag följde blindt exemplen på deras webbplats och fick dem att fungera på ungefär en halv dag. Också - eftersom jag blinkade programmet till tonåringen behåller det det och när du slår på det. Ardunio startar på cirka 3 sekunder och lyser upp ögonen. Så allt jag behövde göra för att få ögonen att fungera var att ansluta 12v till ett av reläerna och slå på tonåringarna och ögonen och magi händer!

Att montera LCD -skärmarna i skallen var SUPER smärtsamt. 7 små trådar på varje LCD så 14 ledningar totalt och försökte slipa ut skallen och få dem monterade raka och inte bryta en tråd - vilket händer mycket var mycket smärtsamt. Så programmering måttlig svårighet - att montera hårt. Tvärtom vad jag förväntade mig. Teensy satt i baksidan av ögonen under MDF -plattan som rymmer de två servon.

Steg 10: Tamburin

Tamburin
Tamburin
Tamburin
Tamburin

Jag kommer alltid ihåg huvudet i kristallkulan i Haunted Mansion och tamburinen som svävade runt och bankade när hon kontaktade andarna så jag var tvungen att ha något sådant för det här projektet. Eftersom skallen var från en tidigare tankläsare/seare behöver andarna meddela folk när de är närvarande J. Jag hittade det största kraftfullaste push pull -reläet jag kunde hitta. Sedan överspänning den från dess 12v till 24v med en extra bärbar datorladdare jag hade. Jag var tvungen att göra ett par olika versioner av mekanismen men min tredje iteration fungerade bäst. Jag var tvungen att röra med spaklängd, inriktning etc. Mitt stora misstag var att göra allt detta med trä/MDF. När jag först satte ihop detta och körde på 24v skulle solenoiden slå tamburinen så hårt att det slet sönder sig. (Vid 12v var det inte tillräckligt starkt) Med tiden att ha ett träaxel monterat i MDF och måla saker blev det hela svårare / svårare att flytta vilket innebar att solenoiden hade svårare att trycka ut när det blev enEGERAT OCH svårare att återvända. Så jag var tvungen att lägga till en extra returfjäder - som kräver att solenoiden slösar bort energi när den är strömförande. Så det slutade med att det slog tamburinen på den långsamma sidan. Nästa gång bygger jag den delen av den i metall - bronsbussning, metallaxel, etc och undviker detta problem.

Steg 11: Plasmalampa

Plasmalampa
Plasmalampa
Plasmalampa
Plasmalampa

Eftersom jag inte tänkte bygga en Jacobs -stege eller någon annan elak vit forskare energikälla för projektet behövde jag någon typ av”energi” för att driva skallen. Jag tog min gamla Samsung Galaxy S5, gjorde en fabriksåterställning och laddade upp en energiboll -app på den. Jag var tvungen att ladda en annan app som inte skulle låta telefonen gå in i skärmsläckarläge för att hålla den aktiv i appen.

Steg 12: Hur man gör 120v ljusflimmer

Hur man gör 120v ljusflimmer
Hur man gör 120v ljusflimmer

VARNING -

Det här rör sig om 120v växelströmskontakt i väggströmmen här. Om du inte vet vad du gör, gör det inte

VARNING -

halloweenpropmaster.com/u-build-it3.htm

Denna webbplats ger den bästa förklaringen till hur du gör detta. Kostnaden för förrätten är superbillig och jag rensade en extra förlängningssladd jag hade. Jag har ett par av dessa byggda och har använt dem under Halloween -tiden och de har fungerat mycket bra, inga säkringar gått, ingen överhettning etc. Jag har kört dem i timmar i taget utan problem. Så för detta projekt tog jag en av förlängningssladdarna med startlinjen och kopplade den till en av de fyra reläer på kortet. Ett par rader med GPIO -kod stänger av och på den. Det börjar också fungera direkt, ingen uppvärmningstid.

Steg 13: Plattformen/bordet

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

Jag har sett en hel del”skalle på ett bord”,”Frankensteins huvud på ett bord” galna forskare typ rekvisita och jag bestämde mig för att jag ville gå den vägen. Det skulle ge mig en chans att testa mer än bara den talande skallen. Jag räknade ut den grundläggande bordstorleken och byggde den av ¼ MDF. Att använda en bordssåg gör det ganska enkelt. Mina projekt är vanligtvis metall saker så att bygga med trä var något nytt för mig. Jag skar ut grundbitarna och fick mina 4 sidor av lådan och en topp gjord ganska snabbt. Där jag lärt mig en hård läxa är att jag använde en limpistol för att montera dem. Vad jag fick reda på är att - det här är inte sättet att göra det. Alla bitar lossnade så snart jag tog upp den jävla grejen! Så jag klippte några extra bitar på 1”kvadrat för att förstärka hörnen och trä limmade/spikade ihop det. Lärdom. Jag lade lite trim mellan plattans överdel och sidor, limmade och spikade den på plats. Spot spacklade för att fylla luckorna och den var redo att ha resten av komponenterna monterade på den.

För resten fick jag inspiration från bilder jag sett på webben. För att”antika” skallen försökte jag använda en mörk fläck. Det fungerade inte; det fastnade inte på plasten. Så jag försökte måla skallen med en vit och la sedan fläcken på. Det fungerade mycket bättre. Jag vet att det finns många tekniker för att göra detta och jag är nöjd med hur det blev. Koppartejp hade jag om från ett annat projekt som jag använde för skallehatten och runt kindbenen. Jag målade på fläcken på resten av de icke-svartmålade föremålen för att ge det det gamla/gamla utseendet.

Resten av bitarna och bubblorna hade jag som låg från andra projekt. Alla mässingsstycken är från en lampbutik. Jag gjorde skärbrytaren av några skrotmaterial och vredet på änden är en annan lampdel. Rören fann jag på ett elektroniskt överskott tillsammans med isolatorerna. Punk rocker spikes jag hade från ett annat post-apokalyptiskt projekt. Plåt och koppartråd från järnaffären och lite PVC -rör för kotorna.

För affischen hittade jag en gammal trollkarls affischbild på webben och med lite Photo Shop -magi ändrade namnet.

Steg 14: Resten

Resten
Resten
Resten
Resten
Resten
Resten
Resten
Resten

Jag fick inspiration från bilder jag sett på webben. För att”antika” skallen försökte jag använda en mörk fläck. Det fungerade inte; det fastnade inte på plasten. Så jag försökte måla skallen med en vit och la sedan fläcken på. Det fungerade mycket bättre. Jag vet att det finns många tekniker för att göra detta och jag är nöjd med hur det blev. Koppartejp hade jag om från ett annat projekt som jag använde för skallehatten och runt kindbenen. Jag målade på fläcken på resten av de icke-svartmålade föremålen för att ge det det föråldrade/gamla utseendet.

Resten av bitarna och bubblorna hade jag som låg från andra projekt. Alla mässingsstycken är från en lampbutik. Jag gjorde skärbrytaren av några skrotmaterial och vredet på änden är en annan lampdel. Rören fann jag på ett elektroniskt överskott tillsammans med isolatorerna. Punk rocker spikes jag hade från ett annat post-apokalyptiskt projekt. Plåt och koppartråd från järnaffären och lite PVC -rör för kotorna.

Steg 15: Montering/Tuning/Tweaking

Montering/Tuning/Tweaking
Montering/Tuning/Tweaking

Så här var min byggprocess:

#1 Installera Jasper på en Pi och få det att fungera.

#2 Köpte flera mikrofoner och tweak tills jag har lyckats.

#3 På den andra Pi, installera Adafruit -hatten och förstå hur du flyttar servon. Ta in servon i skallen och förstå de värden jag behövde använda för att flytta dem.

#4 Bygg en testbas för skallen så att jag kan arbeta med den på mitt kontor. Tweak, re-tweak, tweak lite mer.

#5 Montera alla elektriska komponenter på en plexiglasplatta. Pajer, reläkort, USB -nätaggregat och relaterade ledningar.

#6 Bygg Adafruit -ögonen. Bevisa för mig själv att de bara behöver spänning för att allt ska fungera. Jag visste inte detta när jag började denna del.

#7 Gör ett bevis på konceptet att skicka och ta emot seriell data mellan de två pajerna. Skriv en loop -rutin för 2: a Pi med de kommandon jag behövde - prata på/av osv. Testa den med lite exempelkod på Pi#1. Ingen Jasper än.

#8 Lägg till seriekoden till Jasper -koden - bevisa att jag kan få grundläggande rörelse när Jasper pratar.

#9 Börja bråka med reläkortet. Lägg till koden för att slå på ögonen.

#10 Lägg till kod för att slå på 120v. Bygg solenoiden och tamburinen på en separat plattform för att ta reda på hur det ska fungera.

#11 Få ögonen monterade i skallen.

#12 Bygg plattformen som allt ska monteras på. Montera alla bitarna på plattformen, gör stålskallen i skallen för att hålla den, lägg till tamburinkomponenterna.

#13 Försök att få pajerna och brädan från huset in i garaget och ta reda på hur du får det inuti plattformen.

#14 Börja ställa in. Mer tuning, fortsätt att ställa in. Inse att jag måste göra Python-koden multi-threaded så att alla åtgärder kan fungera tillsammans.

#15 Besluta att lägga till energikulan under vakuumrören. Ta reda på att jag kan göra det här med en gammal mobiltelefon. Fick det att fungera på mindre än en dag.

#16 Fortsätt att lägga till detaljer. Spikar, koppartråd, rör, antik skalle. Fortsätt tuna och testa. Måla, rör på och fixa saker som fortsätter att lossna, konstruera om/förstärka saker som faller sönder.

#17 Testa och justera Gör dig redo att visa det för andra människor.

Rekommenderad: