Sommario:

Homunculus - l'indovino meccanico dell'oracolo mistico: 15 passaggi (con immagini)
Homunculus - l'indovino meccanico dell'oracolo mistico: 15 passaggi (con immagini)

Video: Homunculus - l'indovino meccanico dell'oracolo mistico: 15 passaggi (con immagini)

Video: Homunculus - l'indovino meccanico dell'oracolo mistico: 15 passaggi (con immagini)
Video: Арабский фильм Хамзы (многоязычный субтитры) 2024, Novembre
Anonim
Image
Image
Homunculus - l'indovino meccanico dell'oracolo mistico
Homunculus - l'indovino meccanico dell'oracolo mistico

Ok, quindi cosa dovrebbe essere questo… la storia di fondo che dico alla gente è che il teschio proviene da un mistico del 19° secolo la cui tomba è stata derubata e che il suo teschio è finito in uno spettacolo di carnevale all'inizio del 1900. L'ho trovato nel seminterrato di una casa vittoriana malandata e ho ricostruito il sostegno in un indovino del 21° secolo - 'chi può raggiungere l'etere di Internet, dirti la tua fortuna, chi sono i tuoi amici e nemici, dillo uno scherzo e leggere la mia e-mail e il calendario per il giorno'.

Che cos'è veramente - Beh, è il fantastico software Jasper in esecuzione su un Raspberry pi e ho realizzato un teschio Linburg parlante a 2 canali che sta parlando insieme a un sacco di campane e fischietti (e un tamburello) da aggiungere.

Questo era un progetto super ambizioso. Un sacco di diversi media con cui lavorare: torte multiple, lavorazione del legno, pittura, molti cablaggi, molti codici in python, codifica ardunio, molti piccoli cablaggi, cablaggio 120v, schede esterne pi 'hats', driver relè e relè, 24v alimentatori, facendo muovere le cose: un teschio con 2 assi e il tamburello che batte.

Non entrerò nei dettagli super dettagliati pezzo per pezzo per ogni parte, in particolare la codifica Python, ma cercherò di descrivere brevemente ciascun componente e includere immagini.

Inoltre, sugli esempi di Python - sì, avrei potuto essere molto più orientato agli oggetti sulla codifica, ma la mia esperienza con Python quando ho iniziato il progetto era piuttosto semplice e, naturalmente, è più facile da tagliare e incollare quando sei di fretta vs. interrompendo quello che stai facendo, riscrivilo correttamente e poi continua.

Passaggio 1: componenti principali: cose che dovevo trovare/acquistare/acquistare

Componenti principali: cose che dovevo trovare/acquistare/acquistare
Componenti principali: cose che dovevo trovare/acquistare/acquistare
Componenti principali: cose che dovevo trovare/acquistare/acquistare
Componenti principali: cose che dovevo trovare/acquistare/acquistare
Componenti principali: cose che dovevo trovare/acquistare/acquistare
Componenti principali: cose che dovevo trovare/acquistare/acquistare

Lampone Pi

Due di loro

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

Diaspro

“Jasper è una piattaforma open source per lo sviluppo di applicazioni sempre attive e a comando vocale”

jasperproject.github.io/

Gli "occhi" di Adafruit

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

Teensy – Cervello per gli occhi

www.adafruit.com/product/2756

Come creare gli "occhi usando teensy e i display tft a colori 1-44"

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

Cappello Serveo a 16 canali

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

Il classico teschio Lindberg

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

Scheda relè a 4 canali che funzionerà con un Raspberry Pi

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

Spingere solenoide

(Questo è disponibile da molti posti diversi)

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

Microfono USB

Questo è disponibile da molti posti diversi

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

Varie

Due servi che avevo in giro, le squadrette dei servo che ho trovato nel cestino da $ 1 al negozio di hobby. Cavi di prolunga servo, altoparlante USB/Bluetooth, bulloni dadi, MDF, colla a caldo, vecchi tubi a vuoto, vari pezzi di lampade e punte, un vecchio telefono cellulare Samsung S5, lamiera d'acciaio, filo di rame, nastro di rame, chiodi, colla normale, ecc. eccetera.

Passaggio 2: perché due torte di lamponi?

Perché due torte di lamponi?
Perché due torte di lamponi?

Inizialmente volevo sincronizzare i teschi parlando con il discorso, ma dopo aver installato Jasper e determinato tutto ciò che volevo fare, tutte le cose che si muovevano, ho pensato che sarebbe stato meglio suddividere tutto il lavoro in due torte. Avevo una scadenza per farlo e non volevo tornare indietro se avessi avuto qualche tipo di problema di prestazioni. Ora che il lavoro è finito, credo che avrei potuto farlo con un singolo pi greco, al momento ho pensato che fosse meglio lasciare che un pi greco gestisse Jasper e un secondo pi pilotasse i servi e i relè in modo da poter avere una chiara demarcazione tra il opera. Era anche più facile per lo sviluppo. Potrei ottenere tutto corretto in Jasper senza dovermi preoccupare di servi e relè. Dall'altro, potrei concentrarmi sulla guida dei servi, sui tempi delle cose: accendere le luci, spostare i servi, ecc. E non dovermi preoccupare di eventuali problemi relativi a voce/altoparlante/microfono.

Il lato negativo di questo è che ho perso la capacità di far sincronizzare il cranio muovendo la mascella con il discorso, ma dopo aver guardato il lavoro di Grant Imahara per il The Late Late Show creando "Geoff" ho pensato che le cose sarebbero andate abbastanza bene.

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

Passaggio 3: come comunicano le due torte?

Come comunicano le due torte?
Come comunicano le due torte?
Come comunicano le due torte?
Come comunicano le due torte?

Ci sono diversi modi per farlo. Sono andato alla vecchia maniera e ho deciso di utilizzare una connessione seriale. Sono necessari solo tre fili tra le due Pie (Tx, Rx e gnd) e una piccola quantità di codice per aprire una connessione seriale da Pi#1 a Pi#2 e inviargli qualcosa. Pi#2 apre una connessione seriale per leggere i dati e imposta una lettura a ciclo stretto dalla sua connessione seriale. Quando riceve del testo, vede se corrisponde a un comando (Parla, luci accese, luci spente, parla spento, ecc.) e fa ciò che deve fare. Il lato negativo della connessione seriale è che c'è un leggero ritardo tra l'invio del comando e il processo del comando. Pi#2 è in loop con un piccolo ritardo nella lettura. Quindi ho dovuto calibrare le cose. Anche per futuri progetti multi-pi è bene sapere che posso far comunicare due Pie e NON ho bisogno di Internet per farlo.

Passaggio 4: Thread Python

Fili di pitone
Fili di pitone

Per aggiungere ulteriore complessità a tutto, alla fine ho dovuto utilizzare i thread Python su Pi#2 in modo da poter gestire più richieste ed elaborarle contemporaneamente. Ad esempio, avevo bisogno di essere in grado di iniziare a parlare, muovendo la testa dei teschi a sinistra/destra mentre la mascella va su e giù, ma cosa succede se Pi#1 ha un errore per qualche motivo e non è in grado di dirlo a Pi#2 per smettere di parlare, il teschio parlerebbe per sempre. Quindi avevo bisogno che il teschio dicesse a se stesso di spegnersi dopo un po' di tempo. Per fare questo è stato più facile staccare un thread. All'interno della routine del thread per parlare c'è del codice che dopo un po' di tempo massimo, smette di parlare, resetta la testa e la mascella ed esce. Lo stesso per il tamburello, avevo bisogno che iniziasse appena prima che il teschio smettesse di parlare, quindi giro un altro filo per il tamburello e tutto funziona insieme e il codice per il movimento della testa è totalmente separato dal battito del tamburello - lo stesso per accendere le luci e gli occhi tutti i fili possono correre tutti contemporaneamente.

La quantità di codice necessaria in Python per usare i thread è piuttosto piccola ma è ottusa e ci è voluto del tempo per capirlo, ma a quanto pare funziona molto bene. La capacità di utilizzare i thread è un ottimo strumento da avere nella casella degli strumenti se sei uno sviluppatore Raspberry Pi.

Passaggio 5: Modifiche di Jasper e Jasper

Il sito Jasper è LA risorsa per installarlo su un pi, quale voice reco usare, come configurare, scrivere nuovi moduli, tutto - ed è gratuito! Tuttavia, non è una semplice installazione. Tanti passaggi, tanti pacchetti da installare e poi configurare. Faccio questo tipo di lavoro per vivere ed era ancora qualcosa che considererei una sfida. Quando ho finito con questo progetto, mi sono immerso abbastanza in Japer e ho apportato molte modifiche per adattarsi a ciò che stavo cercando di fare.

Alcune modifiche che ho apportato:

Rimosso l'ascolto passivo e utilizzato una porta GPIO per dare il via all'ascolto attivo con un interruttore di taglio fatto in casa. Questo ha reso più un tipo di cosa "arcade" rispetto all'uso dell'ascolto passivo.

Ho modificato i parametri secondo necessità per lavorare con il mio microfono: ho dovuto passare attraverso tre diversi microfoni USB finché non ne ho trovato uno che avrebbe funzionato correttamente per me. Ho anche dovuto regolare alcuni dei valori di soglia nel codice. Questa è stata la parte più dolorosa dell'uso di Jasper per me personalmente.

Aggiunto il codice di connessione seriale in tutti i moduli per aprire una connessione seriale, dire allo slave pi cosa fare "eyes on", "talk", "bang tamburello"

Aggiunti i moduli "chi sono i miei amici", "dimmi una barzelletta", "leggi il mio programma dal mio calendario CRM", "dimmi la mia fortuna". Alcuni dei quali richiedevano l'esecuzione di chiamate REST a software basato su cloud per ottenere dati. Ci sono molti moduli fuori dagli schemi che ho sfruttato come esempi insieme alla documentazione sul sito per aiutarmi a ottenere ciò di cui avevo bisogno.

Passaggio 6: aggiunta di due assi al teschio

Aggiunta di due assi al teschio
Aggiunta di due assi al teschio
Aggiungere due assi al teschio
Aggiungere due assi al teschio
Aggiungere due assi al teschio
Aggiungere due assi al teschio

Ho iniziato con il teschio di Lindberg di base. Inizialmente avevo pensato a un teschio a 4/5 assi, ma il tempo necessario per scrivere il codice Python per coordinare i movimenti e costruire l'hardware per il movimento avrebbe superato il tempo necessario per completare il resto del progetto. (Non so se esiste già, ma un pezzo di software su un Pi o un Ardunio per guidare un teschio multiasse che sarebbe di per sé un progetto piuttosto interessante.) Quindi un asse: il movimento della mascella era troppo zoppo, quindi Ho aggiunto il movimento della testa e con gli occhi LCD funzionanti, sono contento dei risultati.

Quindi, osservando il lavoro che altri hanno fatto con i teschi parlanti, ho capito cosa dovevo fare, due servi e le squadrette dei servi, un pezzo di MDF, colla a caldo, fascette, prove ed errori - avevo la parte fisica a posto. La programmazione Pi di base del movimento in realtà ha richiesto più tempo. Ho dovuto calcolare i valori per il PWM per entrambi i servi. Ho iniziato con la base completamente aperta/chiusa, girando la testa completamente a sinistra/destra. Ma non sembrava buono. Quindi ho fatto movimenti intermedi, mascella completamente aperta, ritardo.1, mascella parzialmente chiusa, nessun ritardo, vaso parzialmente aperto, ritardo, ecc., ecc. Lo stesso per il movimento della testa, sbattere avanti e indietro sembrava schifoso, quindi i movimenti intermedi e i ritardi fanno sembra migliore.

Una cosa sfortunata che non ho avuto il tempo di elaborare è che tutto il materiale che ho messo sulla calotta cranica: la striscia di metallo, le punte, la corona di rame e il cablaggio hanno reso il cranio più pesante e dà al servo un momento difficile, quindi si sta muovendo più lentamente e non così lontano. Un servo di coppia più alto probabilmente aiuterebbe qui, ma ero fuori tempo e denaro …

Passaggio 7: servo driver per cappello Adaifruit

Adaifruit Hat Servo Driver
Adaifruit Hat Servo Driver

Adafruit ha ottimi esempi di come utilizzare i propri prodotti. Ciò che è stato difficile è stato capire quali fossero esattamente i valori per ciascuno dei servi: centro, estrema sinistra e destra. Non è 0, 90, 180 come penseresti. Era solo un programma Python lungo un paio di righe, ma ci sono volute alcune ore di tweaking per farlo per entrambi i servi.

Passaggio 8: Scheda relè

Scheda relè
Scheda relè

L'ho preso su Amazon. Molti siti web vendono quella che sembra essere esattamente la stessa unità. Ci sono voluti alcuni esperimenti qui, ma capovolgere i relè richiede solo un paio di righe di codice e hai connessioni NC e NO sui relè che lo rendono ancora più semplice. Un'altra sfida qui è che una porta/pin GPIO non è una corrispondenza 1:1 con il pin out sul Pi. Ci è voluto un po' di lavoro per farmi girare la testa.

Passaggio 9: Teensy e gli occhi

Teensy e gli occhi
Teensy e gli occhi

L'ho preso al 100% dal sito di Adafruit. Originariamente avevo delle palline da ping pong illuminate a LED che stavo per usare, ma una volta che l'ho visto sul loro sito ho dovuto averlo. Non avevo alcuna esperienza con Ardunio prima di questo, ma ho seguito ciecamente gli esempi sul loro sito e li ho fatti funzionare in circa ½ di un giorno. Inoltre, dal momento che ho eseguito il flashing del programma sul piccolo, lo mantiene e quando lo accendi. L'Ardunio si avvia in circa 3 secondi e illumina gli occhi. Quindi, tutto quello che dovevo fare per far funzionare gli occhi era collegare 12v a uno dei relè e accendere il teensy & eyes e la magia accade!

Montare gli schermi LCD nel cranio è stato SUPER doloroso. 7 piccoli fili su ogni LCD quindi 14 fili in totale e cercare di macinare il cranio e farli montare dritto e non rompere un filo, cosa che accade spesso è stato molto doloroso. Quindi programmazione di difficoltà moderata - montaggio difficile. Proprio l'opposto di quello che mi aspettavo. Il Teensy si trova dietro gli occhi sotto la piastra MDF che contiene i due servi.

Passaggio 10: Tamburello

Tamburello
Tamburello
Tamburello
Tamburello

Beh, ricordo sempre la testa nella sfera di cristallo nella Haunted Mansion e il tamburello che fluttuava intorno mentre stava contattando gli spiriti, quindi dovevo avere qualcosa del genere per questo progetto. Dal momento che il teschio proveniva da un ex lettore/veggente della mente, gli spiriti hanno bisogno di far sapere alle persone quando sono presenti J. Ho trovato il più grande e più potente relè push pull che ho trovato. Poi l'ho voltato da 12v a 24v con un caricabatterie per laptop di riserva che avevo. Ho dovuto realizzare un paio di versioni diverse del meccanismo, ma la mia terza iterazione ha funzionato al meglio. Ho dovuto pasticciare con la lunghezza della leva, l'allineamento, ecc. Il mio grosso errore è stato fare tutto questo con legno/MDF. Quando l'ho messo insieme per la prima volta a 24v, il solenoide avrebbe sbattuto il tamburello così forte che si stava lacerando. (A 12v non era abbastanza forte) Nel tempo avendo un albero di legno montato in MDF e verniciando le cose, l'intera cosa è diventata più difficile / più difficile da spostare, il che significava che il solenoide aveva più difficoltà a spingersi fuori quando era eccitato E un tempo più difficile a tornare. Quindi ho dovuto aggiungere un'ulteriore molla di ritorno, che richiede al solenoide di sprecare energia quando è eccitato. Quindi ha finito per battere il tamburello sul lato lento. La prossima volta che costruisco quella parte in metallo - boccola in bronzo, albero in metallo, ecc. ed evito questo problema.

Passaggio 11: lampada al plasma

Lampada al plasma
Lampada al plasma
Lampada al plasma
Lampada al plasma

Dal momento che non avevo intenzione di costruire una scala Jacobs o qualche altra fonte di energia da scienziato pazzo malvagio per il progetto, avevo bisogno di un qualche tipo di "energia" per guidare il teschio. Ho preso il mio vecchio Samsung Galaxy S5, ho ripristinato le impostazioni di fabbrica e ho caricato un'app Energy Ball su di esso. Ho dovuto caricare un'altra app che non permettesse al telefono di entrare in modalità screen saver per mantenerlo attivo sull'app.

Passaggio 12: come rendere lo sfarfallio della luce 120v

Come far sfarfallare la luce a 120 V
Come far sfarfallare la luce a 120 V

AVVERTIMENTO -

Questo è un problema con la spina CA da 120 V nell'alimentazione a muro qui. Se non sai cosa stai facendo, non farlo

AVVERTIMENTO -

halloweenpropmaster.com/u-build-it3.htm

Questo sito fornisce la migliore spiegazione su come farlo. Il costo dell'antipasto è super economico e ho sventrato una prolunga di riserva che avevo. Ne ho costruiti un paio e li ho usati durante il periodo di Halloween e hanno funzionato molto bene, nessun fusibile bruciato, nessun surriscaldamento, ecc. Li ho usati per ore alla volta senza problemi. Quindi per questo progetto ho preso una delle prolunghe con lo starter in linea e l'ho collegata a uno dei quattro relè sulla scheda. Un paio di righe di codice GPIO lo spegneranno e riaccenderanno. Inoltre inizia a funzionare immediatamente, nessun tempo di riscaldamento.

Passaggio 13: La piattaforma/tavolo

La piattaforma/tavolo
La piattaforma/tavolo
La piattaforma/tavolo
La piattaforma/tavolo

Ho visto un bel po' di "teschio su un tavolo", "testa di Frankenstein su un tavolo" di tipo da scienziato pazzo e ho deciso che volevo seguire quella strada. Mi darebbe la possibilità di provare qualcosa di più del semplice teschio parlante. Ho calcolato le dimensioni di base del tavolo e l'ho costruito con ¼ MDF. L'uso di una sega da tavolo lo rende abbastanza facile. I miei progetti sono tipicamente cose in metallo, quindi costruire con il legno era un po' nuovo per me. Ho ritagliato i pezzi di base e ho realizzato i miei 4 lati della scatola e una parte superiore abbastanza rapidamente. Dove ho imparato una dura lezione è che ho usato una pistola per colla per assemblarli. Quello che ho scoperto è che - questo non è il modo per farlo. Tutti i pezzi si sono staccati non appena ho raccolto quella dannata cosa! Quindi ho tagliato alcuni pezzi extra di 1 "quadrato per rinforzare gli angoli e il legno li ho incollati/inchiodati insieme. Lezione imparata. Ho posizionato dei bordi tra la parte superiore e i lati della piattaforma, l'ho incollata e inchiodata in posizione. Spot stuccato per colmare le lacune ed era pronto per avere il resto dei componenti montati su di esso.

Per il resto ho preso spunto dalle immagini che ho visto sul web. Per "anticare" il teschio ho provato a usare una macchia scura. Non ha funzionato; non si è attaccato alla plastica. Quindi ho provato a dipingere il teschio con un bianco sporco e poi ho steso la macchia. Ha funzionato molto meglio. So che ci sono molte tecniche per farlo e sono contento di come è venuto fuori. Nastro di rame che avevo in giro da un altro progetto che ho usato per la calotta cranica e intorno agli zigomi. Ho dipinto sulla macchia sul resto degli oggetti verniciati non neri per dargli quell'aspetto anticato/vecchio.

Il resto dei pezzi e dei bobble che avevo in giro da altri progetti. Tutti i pezzi di ottone provengono da un negozio di lampade. Ho realizzato l'interruttore tagliato con alcuni materiali di scarto e la manopola all'estremità è un altro pezzo di lampada. I tubi li ho trovati in un posto in eccedenza elettronica insieme agli isolatori. Punk rocker che ho avuto da un altro progetto post-apocalittico. Lamiera d'acciaio e filo di rame dal ferramenta e qualche tubo in pvc per le sue vertebre.

Per il poster, ho trovato una vecchia foto del poster del mago sul web e con un po' di magia di Photo Shop ho cambiato il nome.

Passaggio 14: il resto

Il riposo
Il riposo
Il riposo
Il riposo
Il riposo
Il riposo
Il riposo
Il riposo

Ho preso ispirazione dalle immagini che ho visto sul web. Per "anticare" il teschio ho provato a usare una macchia scura. Non ha funzionato; non si è attaccato alla plastica. Quindi ho provato a dipingere il teschio con un bianco sporco e poi ho steso la macchia. Ha funzionato molto meglio. So che ci sono molte tecniche per farlo e sono contento di come è venuto fuori. Nastro di rame che avevo in giro da un altro progetto che ho usato per la calotta cranica e intorno agli zigomi. Ho dipinto sulla macchia sul resto degli oggetti verniciati non neri per dargli quell'aspetto anticato/vecchio.

Il resto dei pezzi e dei bobble che avevo in giro da altri progetti. Tutti i pezzi di ottone provengono da un negozio di lampade. Ho realizzato l'interruttore tagliato con alcuni materiali di scarto e la manopola all'estremità è un altro pezzo di lampada. I tubi li ho trovati in un posto in eccedenza elettronica insieme agli isolatori. Punk rocker che ho avuto da un altro progetto post-apocalittico. Lamiera d'acciaio e filo di rame dal ferramenta e qualche tubo in pvc per le sue vertebre.

Passaggio 15: Assemblaggio/Regolazione/Regolazione

Assemblaggio/Regolazione/Regolazione
Assemblaggio/Regolazione/Regolazione

Quindi ecco il mio processo di compilazione:

# 1 Installa Jasper su un Pi e fallo funzionare.

# 2 Ho acquistato più microfoni e ho modificato fino a quando non ho avuto un certo successo.

#3 Sul 2° Pi, installa il cappello Adafruit e capisci come spostare i servi. Inserisci i servi nel cranio e comprendi i valori che dovevo usare per spostarli.

# 4 Costruisci una base di prova per il cranio in modo che possa lavorarci nel mio ufficio. Modifica, modifica nuovamente, modifica ancora un po'.

#5 Montare tutti i componenti elettrici su una lastra in plexiglas. Torte, scheda relè, alimentatori USB e relativi cavi.

# 6 Costruisci gli occhi di Adafruit. Dimostra a me stesso che hanno solo bisogno di tensione applicata per far funzionare tutto. Non lo sapevo quando è iniziata questa parte.

# 7 Fai una prova del concetto di invio e ricezione di dati seriali tra le due torte. Scrivere una routine di ciclo per il 2° Pi con i comandi di cui avevo bisogno: parlare on/off, ecc. Provalo con del codice di esempio su Pi#1. Ancora niente Jasper.

# 8 Aggiungi il codice seriale al codice Jasper: dimostra che posso ottenere un movimento di base quando Jasper sta parlando.

# 9 Inizia a scherzare con la scheda relè. Aggiungi il codice per accendere gli occhi.

# 10 Aggiungi il codice per accendere il 120v. Costruisci il solenoide e il tamburello su una piattaforma separata per capire come dovrebbe funzionare.

# 11 Ottieni gli occhi montati nel cranio.

# 12 Costruisci la piattaforma su cui verrà assemblato tutto. Assemblare tutti i pezzi sulla piattaforma, realizzare la base in acciaio del teschio per sostenerlo, aggiungere i componenti del tamburello.

# 13 Prova a portare le torte e la tavola da casa nel garage e scopri come ottenerla all'interno della piattaforma.

# 14 Inizia a sintonizzare. Più sintonizzazione, continua a sintonizzare. Renditi conto che ho bisogno di rendere il codice Python multi-thread in modo che tutte le azioni possano funzionare insieme.

# 15 Decidi di aggiungere la sfera energetica sotto i tubi a vuoto. Capisco che posso farlo con un vecchio telefono cellulare. Ha funzionato in meno di un giorno.

# 16 Continua ad aggiungere dettagli. Punte, filo di rame, tubi, anticato il teschio. Continua a mettere a punto e testare. Dipingi, ritocca e aggiusta le cose che continuano a staccarsi, riprogetta/rinforza le cose che stanno cadendo a pezzi.

# 17 Prova e modifica Preparati a mostrarlo ad altre persone.

Consigliato: