This commit is contained in:
Alexander Alber 2022-11-23 22:51:51 +01:00
parent 1928593710
commit aa05eb3ba6
9 changed files with 6340 additions and 19 deletions

23
make_artikel/anleitung.md Normal file
View File

@ -0,0 +1,23 @@
# Anleitung
0) Organisiere dir an deinem lokalen makerspace folgende Fertigungsmöglichkeiten: Ein 3D-Drucker mit mindestens 25cm Bauraumhöhe. Ein Lasercutter oder eine andere Möglichkeit, um 3mm dickes Sperrholz zuzuschneiden. Ein Lötkolben.
1) Baue an deinem 3D-Drucker eine 0.8mm-Düse ein.
2) Drucke Boden und Deckel mit normalen Druckeinstellungen mit hellem PLA, support ist nicht nötig. Drucke die Kralle in einer anderen Farbe, support ist ebenfalls nicht nötig.
3) Drucke das mittlere Teil im Vasenmodus mit hellem PLA.
4) Schneide die Holzteile zurecht.
5) Presse die Muttern in die kleinen Ringe und klebe die kleinen Ringe mit Muttern an die großen Ringe. Beachte die Bilder, um die richtige Seite zu treffen.
6) Montiere die Holzteile innerhalb der Vase zusammen und verklebe die Holz-Holz-Kontakte mit Holzleim.
7) Stecke das LED-Band in einen Kanal, und schneide es so ab, dass es oben noch 10mm heraus schaut. Ziehe es wieder heraus und schneide für die weiteren Kanäle LED-Streifen mit der selben Länge ab.
8) Löte 3-polige Steckverbinder an das obere Ende der LED-Streifen. Das obere Ende erkennt man so, dass die aufgedruckten Pfeile vom oberen Ende wegschauen.
9) Ziehe die LED-Streifen in die Kanäle ein.
10) Schraube den Boden am Mittelteil fest.
11) Verlöte Mikrofon, ESP, Beschleunigungssensor, Spannungsversorgung und die Anschlussleitungen für die LEDs gemäß der Darstellung (Todo).
12) Montiere die gelöteten Teile auf dem gelochten Holzbrett, z.B. mit Hilfe von dünnen Kabelbindern und Heißkleber.
13) Schraube die Kralle an den Boden.
14) Stecke das Holzbrett in die dafür vorgesehene Aussparung im Inneren des Bodens.
15) Verbinde die Steckverbinder der LEDs.
16) Schließe den Deckel und schraube ihn fest.
17) Erinnere dich daran, dass du den Akku nicht geladen hast.
18) Wiederhole Schritte 14 bis 16.
19) Stecke die Kralle auf den Stab.

View File

@ -19,25 +19,12 @@ Fusion Zauberstab
- Lasercutter (Bild Lasercutter)
- Verschraubung Boden und Deckel (Bild einpressen Einschlagmutter)
# Elektronik
- (Übersichtszeichnung (Fritzing))
- (Bild Elektronikschlitten)
- ESP32
- Mikrofon
- Beschleunigungssensor
- Akku
- WS2812
# Platformio (streichen?)
# Software-Struktur
- Verwendete Bibliotheken
- FastLED
- ADXL345 Bibliothek
- Aufbau des Projekts
- Apps
# Bedienung (Teil von Software?)
- Double tap
- Verwendung von Interrupts
- ESP32 Deep Sleep
@ -51,6 +38,11 @@ Fusion Zauberstab
- "Seeding" mit Sound
- (Blockdiagramm)
# Anleitung
- hardware
- software
- plattformIO
# Praxistest
- (Fusion Bilder)
- beaterkennung funktioniert je nach musik, fackel immer

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 1.6 MiB

View File

@ -3,7 +3,7 @@ import matplotlib.pyplot as plt
import numpy as np
n_plots = 5
n_plots = 8
endtime = 4
size = 1000
@ -11,11 +11,23 @@ time = np.linspace(0,endtime,size)
audio = 1023*np.random.random(size=(size))
audio = 512+(audio-512)*(0.2)*np.sin(np.linspace(0,endtime*2*3.14*2, size))+(audio-512)*0.3
fig, axs = plt.subplots(n_plots, 1)
#fig, axs = plt.subplots(n_plots, 1, sharex=True)
fig = plt.figure(figsize=(10,10))
gs = fig.add_gridspec(n_plots, hspace=0)
axs = gs.subplots(sharex=True)
axs[0].set_xlim((-0,4))
titlex = 0.5
titley = 0.5
axs[0].plot(time,audio)
axs[0].set_ylabel("Mikrofon\n-signal", x=titlex, y=titley)
audio_norm = audio-512
axs[1].plot(time,audio_norm)
axs[1].set_ylabel("Mikrofon\n-signal\nnormiert", x=titlex, y=titley)
spc = size/endtime
@ -25,6 +37,7 @@ audio_norm = np.array(audio_norm)
audio_squared = np.square(audio_norm)
axs[2].plot(time, audio_squared)
axs[2].set_ylabel("Signal\n-energie", x=titlex, y=titley)
spc = int(size/endtime/40)
@ -42,8 +55,93 @@ for sample, timepoint in zip(audio_squared, time):
energy = 0
axs[3].plot(chunktimes, chunks)
axs[3].set_ylabel("Signale\n-nergie\nchunks", x=titlex, y=titley)
n_BP = 5
SAMPLING_FREQUENCY_BP = 40
import math
filter_outputs = list()
angles = list()
angles2 = list()
delayed = list()
for i in range(n_BP):
filter_output = list()
Q = 10
frequency = 2.2 + i * 0.2
w0 = 2. * 3.1415 * frequency / SAMPLING_FREQUENCY_BP
a = math.sin(w0 / (2. * Q))
b0 = a
b1 = 0.
b2 = -a
a0 = 1. + a
a1 = -2. * math.cos(w0)
a2 = 1. - a
x, xn1, xn2, yn1, yn2 = 0,0,0,0,0
yn3, yn4, yn5 = 0,0,0
angle2 = 0
for chunk in chunks:
y = b0 * chunk + b1 * xn1 + b2 * xn2 - yn1 * a1 - yn2 * a2
xn2 = xn1
xn1 = x
yn5 = yn4
yn4 = yn3
yn3 = yn2
yn2 = yn1
yn1 = y
if i==1:
angle = math.atan2(yn5, y)
angles.append(angle)
delayed.append(yn5)
PI = 3.141592
if (PI < abs(angle - angle2) and abs(angle - angle2) < 3 * PI):
angle2 = angle + 2 * PI
else:
angle2 = angle
angles2.append(angle2)
filter_output.append(y)
axs[4].plot(chunktimes, filter_output, color="#1f77b4" if i == 1 else "grey")
if i == 1:
axs[5].plot(chunktimes, filter_output)
filter_outputs.append(filter_output)
axs[4].set_ylabel("Band\n-pässe", x=titlex, y=titley)
axs[5].plot(chunktimes, delayed, color="grey")
axs[5].set_ylabel("Delay", x=titlex, y=titley)
axs[6].plot(chunktimes, angles)
axs[6].set_ylabel("Geschätzter\nPhasen\nwinkel", x=titlex, y=titley)
axs[7].plot(chunktimes, angles2)
axs[7].set_ylabel("Halbierte\nFrequenz", x=titlex, y=titley)
for i in range(n_plots):
axs[i].set_yticks(())
plt.savefig("beaterkennung.svg")
plt.savefig("beaterkennung.png", dpi=500)
plt.show()

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 152 KiB

View File

@ -1,8 +1,8 @@
# Holzskelett
Um dem Ei trotz der dünnen Schalt ausreichend Steifigkeit zu verleihen, wird es innen durch ein Holzskelett verstärkt.
Dieses ist so konstruiert, dass es sich im Inneren des Vasenteils zusammen bauen und verkleben lässt und es so von innen aussteift.
Um dem Ei trotz der dünnen Schale ausreichend Steifigkeit zu verleihen, wird es innen durch ein Holzskelett verstärkt.
Dieses ist so konstruiert, dass es sich im Inneren des Vasenteils zusammenbauen und verkleben lässt und es so von innen aussteift.
Gleichzeitig sind alle Teile des Holzskelett prismatisch, lassen sich also im Lasercutter herstellen. Das ist hier dargestellt:
![holzskelett](grafiken/cad/zusammenbau4.png "Holzskelett")

View File

@ -1,9 +1,9 @@
# Konzept
Der weiße Teil des Eis besteht aus drei vertikal gestapelten Teilen, die jeweils 3D-gedruckt sind. Das mittlere dieser Teile ist für schnellen Druck im Vasenmodus ausgeführt - mehr dazu später.
Die Hülle des Eis besteht aus drei vertikal gestapelten 3D-Druckteilen. Die mittlere Komponente ist für schnellen Druck im Vasenmodus ausgeführt - mehr dazu später.
Im Inneren der Vase befindet sich zur Stabilisierung ein geklebtes Skelett aus lasergeschnittenem Holz. Dieses ist formschlüssig mit der Vase verbunden und mit den anderen beiden weißen Teilen verschraubt.
Im Inneren der Vase befindet sich zur Stabilisierung ein geklebtes Skelett aus lasergeschnittenem Holz. Dieses ist formschlüssig mit der Vase verbunden und mit dem Boden und Deckel verschraubt.
Im Inneren des Holzskeletts ist eine Holzplatte eingespannt, welche als Träger der Elektronik fungiert.
@ -15,6 +15,8 @@ Das Ei sitzt verschraubt auf einem gedruckten Sockel. Dieser enthält einen krei
Im Inneren befindet sich ein ESP32 Mikrocontroller, ein Mikrofon, ein Beschleunigungssensor, ein 10Ah Reiseakku und drei WS2812 LED-Bänder.
(DSC07978.JPG)
Auf dem ESP32 läuft ein in C++ geschriebenes Programm, welches zwischen verschiedenen Animationen umschaltet. Die Umschaltung erfolgt durch den Beschleunigungssensor - ein doppeltes Aufstampfen des Stabes auf dem Boden wird hier als Umschaltsignal interpretiert.
Auf dem Festival hatten wir zwei verschiedene Animationen implementiert, die wir hier "Beaterkennung" und "Fackel" nennen. Die Beaterkennung lässt auf jeden zweiten Beat eine Lichtwelle über das Ei laufen, die Fackel bildet ein Feuer nach, welches durch hohe Lautstärke angefacht wird. Nach den beiden Animationen geht das Ei in einen deep sleep, ein weiteres Doppelstampfen bringt es dann wieder auf die erste Animation.

7
make_artikel/todo.md Normal file
View File

@ -0,0 +1,7 @@
1) ringe in die lasercutter-pdf und in die explosionszeichung
2) fotos machen beim aufbau
3) explosionszeichnung labeln
4) fritzing
5) komponentenliste (stab (20mm außen, 17mm innen), schrauben (TODO), akkupack, steckverbinder, esp, mikro, beschleunigungssensor, litzen, schrumpfschläuche, sperrholz, 2 sorten pla, einpressmuttern 4x4), dünne lange kabelbinder
6) (optional) obere 3 verbindungen zwischen kralle und ei weg