LaLeLou Musikbox

Was ich gerne bauen würde!

Es ist volbracht und es fehlt nur noch die Rückwand, aber das sollte jetzt auch noch klappen.

An der Stelle erst mal ein DANKE an @Thorsten, @Stephan, @Christopher und alle die sonst bei meinen wirren Fragen geholfen haben!!!

Hier ein paar Bilder von der fertigen Box.

Im Herzen ist es ein Tonuino, aber ich habe doch ein paar Dinge geändert bis hin zu einer eigenen Platine, da ich Ausgänge umgelegt habe und alles bis auf A5 genutzt wird, auch der Speicher vom Nano ist voll mit 30718kb aber es gibt immer wege noch was raus zu holen.
Der Hörspielmodus ist wie gehabt lediglich drehen sich die LEDs Orange im Kreis.

Beim Albummodus wird mit den Vor/Zurück Tasten immer 8 Lieder weiter gesprungen,ein blaues Lauflicht im oder gegegn den Uhrzeigersin zeigt das an, und die Lieder liegen dann als Vorauswahl auf den Gelb/Blauen Tasten.
Leds sind Blau und das Aktuelle Lied wird durch eine grüne Led makiert.
Läuft Musik rotieren immer zwei gegenüberliegende LEDS, die die Aktuelle Anzeige der LEDs nur aufhellen beim rotieren.

Im Partymodus wird aus den Gelben/Blauen Tasten eine Lichtsteuerung mit verschiedenen Lauflichtern.
jede Taste ist Doppelt belegt.

Weiter können Lieblingslieder gespeichert werden. Wenn ein Lied läuft und gefällt, kann durch einen Langes drücken auf die Rote Taste das Lied auf eine Gelbe/Blaue Taste gelegt werdem. Alles wird mit LEDs farblich gestützt zur Orientierung,sowie eigene mp3 Nachrichten.
Ist das Blütenblatt gewählt, geht es wieder zurück in den gleichen Modus ans gleiche Lied und weiter.

Zu jedem Zeitpunkt kommt man durch einen kurzen druck auf die Rote Taste zu seinen Lieblingsliedern, dabei wird sich der Ausgangspunkt vor dem Roten Tastendruck gemerkt wenn es wieder raus geht.

Die Lautstärke kann innen über ein Poti limitiert werden, und auch ein Sleeptimer kann über die Blütenblätter gesetzt werden.

Zum Spaß habe ich noch einen Touchsensor im Gehäuse, genauer in der Gondel des Ballons versteckt,
Spielt gerade kein Lied, kann die Flamme im Heißluftballon gezündet werden :wink:

Das ganze habe ich auf der Master Version, die bei Git liegt gemacht. @Stephan hat mir zwar davon abgeraten wegen der Updatefähigkeit, aber die kommt leider in dem Fall nur aus meinen Fingerkuppen.

Und jetzt noch ein paar Bilder vom Innenleben und dem Ballon.






DANKE noch mal, wird wohl nicht die letzte Box gewesen sein :wink:
Vielleicht mache ich ja mal ein Video wie das so alles aussieht

9 „Gefällt mir“

Also ich muss sagen, ich war schon skeptisch als ich deinen Plan gelesen hatte und ich bin weiterhin nicht wirklich Fan von dieser doch recht komplexen Steuerung und der vielen Tasten. Trotzdem muß ich ehrlich Respekt zollen für diese Umsetzung und für die Tatsache, daß du es bis hierhin durchgezogen und vor allem fertig gestellt hast! Toll gemacht. Das zeigt ein weiteres Mal wie vielfältig ein TonUINO sein kann. Besonders gefällt mir die Idee mit dem Ballon! :slightly_smiling_face:

Finds auch mega komplex schon alleine beim Lesen und würde mir ein kleines Video wünschen, in dem Du das alles mal kurz zeigst.
Respekt auf jeden Fall.

@stephan kann ich das Video hier direkt hochladen, oder muss ich über Youtube gehen?

Videos kannst du hier nicht direkt hochladen, bitte nutze den Videohoster Deiner Wahl. :slight_smile:

Video von der Box, denkste machste mal schnell und schon ist das Video 7:30 lang

2 „Gefällt mir“

Danke für das Video! Vielleicht erlaubst du noch, daß es embedded abgespielt werden kann. Sonst kommt da nur:

Dieses Video auf YouTube ansehen. Die Wiedergabe auf anderen Websites wurde vom Videoinhaber deaktiviert.

PS: Ramukanji feier ich ja haha, dacht ich hör nich richtig. Delos Fan? :wink:

you like it i like it a lot :joy: Denke das kennst du dann auch

habe ich geändert, sollte jetzt auch auf der Seite laufen. Danke für den Hinweis. Hab nach dem video auch gerade noch zwei sachen geändert die mir aufgefallen sind.

1 „Gefällt mir“

Ist auf jeden Fall mega gut geworden, meinen Respekt hast du auch! Du wolltest einfach nur eine Programmierherausforderung, gib’s zu :wink:
Für mich persönlich, bzw meine Kids wäre es von der Steuerung her auch zu komplex, aber darum geht’s ja nicht.

Über einen TonUINO ohne Knöpfe habe ich auch kurz nachgedacht - man kann ja auch mit Karten steuern. Die Anpassung sollten sogar relativ gering sein, nur die erste Karte muss dann anderweitig angelernt werden. Hab es dann aber verworfen, weil es meiner Meinung nach von der Bedienung her zu viel Kartengehampel (also zu umständlich) wird.

Ist auch meine Meinung. Die 3 Tasten Lösung is immer noch Perfekt für mich (und meiner Meinung auch für die Zielgruppe). Aber das is ja das auch das schöne am Projekt. Jeder kann es so ummodeln wie er möchte. :slight_smile:

Echt gut geworden.
Du hast einzelne WS2812er LEDs für den Ring genommen wie es aussieht?
Wieso nicht gleich einen kleinen fertigen Ring?

Welche Library verwendest Du da?

@barni
Die fertigen Ringe mit WS2812B passen optisch nicht, bei dem 8er Ring geht der Knopf nicht rein, und 12er währen ja zu viel.

Die Library war das größte Problem, die FastLed.h ist zwar als LED Steuerung super, aber zum einen wegen der Interrupts in dem Projekt nicht zu gebrauchen, zum anderen frist sie Speicher ohne ende bevor da was passiert.

ich habe die Standart Neopixel verwendet. #include <Adafruit_NeoPixel.h>

Die kleine Funktion LED_Master() ,siehe Unten, nehme ich um Animationen zu steuern, geht bestimmt noch besser, aber was Umsetzungdgeschwiindigkeit und Platz angeht bin ich erst mal zufrieden.
Wichtig ich verwende auch keine Interrupts, damit die Taster und sonst alles noch im Betrieb bleiben, da bei längeren Animationen der Nano nur noch LEDs im Kopf hat :wink:
wenn z.B.der Regenbogen läuft. Regenbogen liegt mit 24 Werten in einem Array, nutze aber nur 8.

Ich hab einen LED_Refrech_Timer der alle 250ms den LED_cnt++, kleinere Zeiten machen die Bedienung unmöglich. Glaube das nennt man Polling.
//LED Refresh setzt einen Counter -> LED_cnt von 0-8 (Rotiert) im void loop()
// Jeden vollen Zyklus LED_cnt werden Random R,G,B Werte gesetzt
if(LED_cnt>=8) { R=random(0,random(0,255)); G=random(0,random(0,255)); B=random(0,random(0,255)); LED_cnt =0; }

void LED_Master(int R,int G, int B, int HellR, int HellG, int HellB, int Position, int Anfang, int Ende, int Step){

  for (int i=Anfang ; i<Ende ; i=i+Step){
    if (Position!=10) i=Position;
      pixels.setPixelColor(i, pixels.Color( R/HellR , G/HellG , B/HellB ));
  }
}

Position habe ich momentan nicht in Benutzt damit wollte ich Random Position von 0-7 Übergeben um einzelne LEDs weis oder aus zu schalten. Sieht auch gut aus.

Aber das Thema LED ist die Baustelle mit dem gröten Programmspeichereinsparpotential, da bin ich noch nicht mit fertig.
Wenn jemand bessere Ideen für die Umsetzung hat, gerne her damit. Bei mir läuft es, aber mit einsparpotenzial was den Speicher angeht, und von der Bedinung kommt es an FastLed.h nicht ran.

@nanos und @stephan

Danke für einen Weiteren Tip :wink: an die Karte habe ich nicht gedacht zum steuern aber Play Pause werde ich bestimmt damit einbauen :wink:
Ansonsten gibt es ja noch viele Sensoren die keine Hardware Taster sind ein Touch der Unsichtbar ist für Laut, Leise
Beschleunigung für vor zurück.
Alles Ideen die erst mal Sacken müssen.

und ja irgendwie hatte ich Bock nach 20 Jahren noch mal zu programieren auf Kaffee,Pizza und lange Nächte bis zum Sonnenaufgang :wink: