Hej Leute. Da ich ja auch leidenschaftlicher Modellbauer bin, bin ich auf der Suche nach Sound Genaratoren die man z.b. in Flugzeugen einbauen kann auf das hier gestoßen: http://www.wettringer-modellbauforum.de/forum/index.php?page=Thread&postID=375568&highlight=sound+generator#post375568 Der Type der das Board entwickelt hat hat sehr viel dokumentiert und im Video demonstiert er auch sein kleinen Controller NUR was zum teufel ist das für ein Controller?? Das ding ist so klein und kann so viel?? Weiß da jemand eventuell wie der Controller heißen könnte? Auf der Suche danach habe bin ich auf die ATtinys gestoßen könnte das so einer sein?? LG Shabi
Schau mal hier. Mit so einem Attiny kann man noch mehr machen: http://elm-chan.org/works/sd8p/report.html sogar eine SD Karte mit entsprechenden Audiodateien kannst du dranhängen. Vielleicht magst du das ja mal nachbauen, Schaltplan und Software gibts alles bei dem Link.
Shabi N. schrieb: > NUR was zum teufel > ist das für ein Controller?? Das ist ein ATTiny85. Ich benutze den für Soundmodule für Gartenbahn-Loks, ich habe dafür Dampf-Software (Wassersieden, Überdruckventil, radsynchrone Kolbenschläge, Entwässerungsventile beim Anfahren, Glocke, Dampf-Pfeife) und Diesel-Software (Anlasser, drehzahlgesteuerter Dieselmotor, Glocke, Horn) entwickelt. Johannes Müller (der gute Mann aus dem ersten Link) hat meine Diesel-Software an seine Ansprüche angepasst und um die für ihn sinnvollen Betriebsmodi erweitert. Das Bild im Anhang zeigt meine Gartenbahn-Soundplatine, die als Sandwich auf die RC-Fahrtreglerplatine aufgesteckt ist. Am linken Anschluss hängt der Lautsprecher, am rechten Anschluss (den es nur in der Dampf-Version gibt) ist der Radsensor angeschlossen. Stromversorgung und Steuerung von Pfeife und Glocke erfolgt über einen Steckverbinder vom darunter befindlichen RC-Fahrtregler. Auf der Platine ist ein ATTiny85 und ein NF-Verstärker LM386 (beide DIL8) in SMD-Manier aufgelötet, dazu noch das nötige Hühnerfutter incl. Tiefpass und Lautstärkepoti. Bei der Diesel-Version wird statt des Radsensor-Anschlusses ein RC-Glied bestückt, das die PWM des Motor-FETs des Fahrtreglers glättet und dem ATTiny85 als Steuerspannung per ADC zuführt. Hier ein Video einer mit Dampfsound ausgestatteten Lok: http://youtu.be/K2xl77BLbaI Und hier noch ein Video von der Diesel-Ausführung: http://youtu.be/-D2MHoZgJso ...
Hallo, Einfach nur genial sowas würde mich richtig interessieren. Gibt es denn auch Tutorials wie man die ATTinys ansteuert und programmiert? Am liebsten mit C da ich mich hauptsächlich nur mit C beschäftige. LG Shabi
http://www.mikrocontroller.net/articles/AVR-Tutorial http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Hallo ich sollte meine Frage vielleicht anders formulieren. Der Typ der den Soundgenerator entwickelt hat gibt leider nicht genug preis um so etwas nach bauen zu können. Gibt es Tutorials wie man z.b. den Sound auf dem Controller bekommet und die Geschwindigkeit mit einem RC Empfänger steuern kann? Und was für ein Format muss die Sounddatei haben? Ich suche schon seit Tagen im Netz. Man findet so gut wie nichts brauch bares. Den ATTiny 85 hab ich auch schon hier brauch nur noch ein paar Tipps ;-) LG Shabi
Shabi schrieb: > Gibt es Tutorials wie man z.b. > den Sound auf dem Controller bekommet und die Geschwindigkeit mit einem > RC Empfänger steuern kann? Und was für ein Format muss die Sounddatei > haben? Sorry: Du kannst es drehen und wenden wie du willst, anfangen musst du mit den Grundlagen. Und die sind oben verlinkt. Ein Sound?-->PWM.
Shabi schrieb: > Der Typ der den Soundgenerator entwickelt hat Welcher, Johannes Müller oder ich? > gibt leider nicht genug > preis um so etwas nach bauen zu können. Nun, er hat mich per Mail gefragt und ich habe das preisgegeben, was zum Verständnis des Konzeptes nötig war. Dazu noch eine etwas veraltete Software, ein Diesel-Modul für Loks im Analog-Betrieb. > Gibt es Tutorials Braucht man für jeden Pups ein Tutorial? Wo bleibt die eigene Kreativität? > wie man z.b. > den Sound auf dem Controller bekommet Das ist ganz einfach, man überträgt ihn zusammen mit dem Programm zum Abspielen per ISP in den Flash des Tiny85. Andererseits ist es recht mühsam, die Sounds so aufzubereiten, dass sie als Loop ohne Knacken abgespielt werden können. Mit Copy&Paste ist das nicht getan. > und die Geschwindigkeit mit einem > RC Empfänger steuern kann? Dazu muss man die Impulsbreite des Fahrtreglersignals messen und danach die Wiedergabe-Rate variieren. > Und was für ein Format muss die Sounddatei > haben? Textformat, also Assembler-Quelltext-Format, wenn die Ausgaberoutine in Assembler programmiert wird (meine und Johannes Müller seine Programme sind in Assembler geschrieben). > > Ich suche schon seit Tagen im Netz. Man findet so gut wie nichts brauch > bares. Wenn wir alle nur im Netz suchen würden, gäbe es bald nix Neues mehr, denn wir würden alle nur noch voneinander abschreiben. Obwohl das Prinzip recht einfach ist, steckt in so einem Soundmodul eine Menge Arbeit. Stellt man das dann für Jedermann zugänglich ins Netz, dann bedienen sich nicht nur die Eigenbedarf-Nachbauer, sondern auch die, die es dann in Serie bauen und gegen Bares verticken. Also ist es doch verständlich, dass wir dafür kein Tutorial und keine Bauanleitung für Dummies schreiben, oder? > Den ATTiny 85 hab ich auch schon hier Der ist ja nun am Gesamtaufwand gemessen einer der kleinsten Posten. > brauch nur noch ein paar Tipps ;-) - Programmieren lernen. - Ausgaberoutine schreiben, die in veränderlichen Intervallen (über Timer0) ein Sound-Byte aus dem Flash holt und dem Timer1 als PWM-Tastgrad vorgibt. - Timer1 mit möglichst hoher PWM-Frequenz (hier 250 kHz) in Hardware- PWM als DAC laufen lassen. - Drehzahlsteuerung über ADC (Motorspannung aufbereiten und filtern) oder durch Messen der Steuerimpulse des Fahrtreglers realisieren. - Wenn das läuft, Gedanken darüber machen, wie man andere Sounds (mit fester Samplerate) nebenher aus dem Flash holt und mit dem Motorsound mischt. - Darüber nachdenken, wieviel Sound (Dauer) bei 8 kHz Samplerate in 8 kByte Flash passen und dabei berücksichtigen, dass das Programm auch noch ein paar Bytes Flash braucht. - Feststellen, dass da nur eine knappe Sekunde rein passt und dass man deshalb schon ganz schön zirkeln muss, das alles unterzubringen, was Johannes Müller oder ich da reingequetscht haben. - Plan verwerfen und zu Elm-Chans SD-Card-Player greifen. - Feststellen, dass dessen Samplerate fix ist, also keine variable Drehzahl möglich ist und dann noch feststellen, dass damit immer nur eine Sounddatei gleichzeitig ausgegeben werden kann. 8-( - Feststellen, dass man nicht Alles auf dem Silbertablett mundgerecht serviert bekommt und manchmal eben seinen eigenen Grips einschalten muss oder eben Industrieware kaufen muss... ...
Hallo Hannes Danke für die Aufklärung. Ich werde deine Tipps beherzigen denn das ist auf jedenfall mehr als ich bis jetzt bekommen habe. Ich hatte die Hoffnung schon aufgegeben. Ich will natürlich nicht einfach etwas nachbauen und COPY und PASTE betreiben denn das kann ja jeder. Mir ist wichtig das wenn ich etwas mache es auch verstehe und genau in die Richtung gehen deine Aussagen oben Ich habe mir die Daten vom Tiny85 schon angeschaut und denke ich werde damit beginnen einfach mal ein Ton zu speichern und mit nem Taster abzuspielen. Denke werde damit genug zutun haben. Eine Frage hätte ich noch und wäre für einen weiteren Tipp sehr Dankbar. Du hast oben geschrieben das man den sound zusammen mit dem Programm in den Flash überträgt. Heißt dass das ich dann eine Sounddatei habe und eine Programmdatei (z.b. im selben Ordner) und im programm ist dann auf die Sounddatei verwiesen? Wenn ja wie kann man denn beide dateien auf einmal übertragen?? Danke nochmals LG Shabi
Du hast keine Sounddatei, zumindest nicht so wie du das von deinem PC kennst (mp3 z.b.). Was du vorhast geht eher in Richtung MIDI.
Hallo ich muss doch erstmal eine Sounddatei haben die ich dann schneiden, kürzen, convertieren... muss. Oder verstehe ich das falsch. Wenn ich z.b. eine Sounddatei von einem Flugzeug habe. LG Shabi
Probier das: http://www.google.com/search?btnG=1&pws=0&q=midi+konvertieren+hex+c 2. Ergebnis, könnte in die Richtung gehen.
> Heißt dass das ich dann eine Sounddatei habe und eine Programmdatei > (z.b. im selben Ordner) und im programm ist dann auf die Sounddatei > verwiesen? So ähnlich. In deiner Sounddatei sind ja auch nur Bytes drinnen. In zb in C kann man ja ein Array von Bytes anlegen. Jetzt beide Konzepte miteinander verbinden, was kriegst du? Du musst deine 'Sounddatei' so aufbereiten, dass sie für den Compiler/Assmebler so aussieht, wie er eben ein Bytefeld haben möchte. Dann assembliert/compiliert er den Sound genauso ein, wie jedes andere Datenfeld auch.
Eumel schrieb: > Du hast keine Sounddatei, zumindest nicht so wie du das von deinem PC > kennst (mp3 z.b.). Was du vorhast geht eher in Richtung MIDI. Nööö, eher in Richtung WAV, aber ohne Header und nur 8-Bit-Mono mit mäßiger Samplerate. Shabi N. schrieb: > Eine Frage hätte ich noch und wäre für einen weiteren Tipp sehr Dankbar. Tipps ja, Fertiglösung aber nicht... Denn Du willst ja "verstehen"... > Du hast oben geschrieben das man den sound zusammen mit dem Programm in > den Flash überträgt. Jou... > Heißt dass das ich dann eine Sounddatei habe und > eine Programmdatei (z.b. im selben Ordner) und im programm ist dann auf > die Sounddatei verwiesen? Ja, auch wenn Du jetzt etwas Anderes meinst. Die Sounddateien werden PC-seitig als separate Assembler-Dateien vorbereitet und mittels .include in den Quelltext des Programms eingebunden. > Wenn ja wie kann man denn beide dateien auf > einmal übertragen?? Alle Quelltext-Dateien werden beim Assemblieren zu einer Hexdatei zusammengefasst. Sollte EEPROM benutzt werden, was bei meinem Soundmodul nicht der Fall ist, dann wird noch eine EEP-Datei erzeugt, also eine separate Hexdatei für das EEPROM. Ich hänge Dir mal eine als ASM-Quelltext aufbereitete Sounddatei von einem Dieselmotor (Schlepper, Einzylinder) an, mit der Du Deine ersten Experimente machen kannst. Shabi N. schrieb: > damit beginnen einfach mal ein Ton zu speichern und mit nem Taster > abzuspielen. Den "Ton" habe ich Dir angehängt, aber einen Befehl zum Abspielen eines Tons gibt es nunmal nicht, da musst Du schon selbst tätig werden und einfach nur zur richtigen Zeit das richtige Byte des Sound-Arrays an den DAC ausgeben. Das wäre dann z.B. in ASM: - zyklisch Taster entprellen bzw. Analogwert einlesen - Timer1 als ADC einrichten - mit Compare-Einheit des Timer0 Ausgabe-Intervall erzeugen - zum Start den Z-Pointer auf den Beginn des Sounds einstellen - Im Ausgabe-Interrupt mittels LPM ein Byte aus dem Sound-Array holen und in das Compare-Register des als DAC genutzten Timer1 schreiben - Auf Ende des Sound-Arrays testen und Ausgabe beenden oder von vorn beginnen - mit ADC Motorspannung (zum Test Poti) messen und danach Ausgabetempo variieren ...
Shabi N. schrieb: > ich muss doch erstmal eine Sounddatei haben die ich dann schneiden, > kürzen, convertieren... muss. Oder verstehe ich das falsch. Das ist schon richtig. Dabei solltest Du aber im Auge behalten, wieviel Speicherplatz Dir im Tiny85 für den Sound zur Verfügung steht. Mit im Multimediabereich üblichen PC-Soundbearbeitungsmethoden kommst Du da nicht allzu weit. > Wenn ich z.b. eine Sounddatei von einem Flugzeug habe. Dann musst Du den Sound im Vorfeld soweit reduzieren, dass nur wenige Kilobyte unkomprimierte Nutzdaten übrig bleiben. Im Flash des Tiny85 ist nunmal nur 8 Kilobyte Platz und das Programm (der Abspieler) belegt schließlich auch noch (je nach Komfort) ein paar (hundert) Bytes. Falls Du einen Sound ins ASM-Include-Format konvertiert haben willst, dann kannst Du ihn hier reinstellen. Es muss unkomprimiertes WAV-Format sein mit 8 Bit Mono und höchstens 8 kHz Samplerate. Ich konvertiere ihn Dir gerne ins ASM-Include-Format, aber zuschneiden und auf 8 Bit Mono konvertieren musst Du schon selbst, ebenso die Samplerate auf 8 kHz reduzieren. ...
Super danke an alle das sind mehr Tipps als ich mir erhoft habe. Ich glaube so langsam verstehe ich das Prinziep. Werde heute mich mal dran machen und mal schauen ob ich irgendwas hin bekomme. LG Shabi
Shabi N. schrieb: > Werde heute mich mal dran machen und mal schauen ob ich irgendwas hin > bekomme. Für erste Tests reicht es, wenn Du einen Lautsprecher (8 Ohm) über einen kleinen Elko (z.B. 1 µF) zwischen PWM-Ausgang und Masse schaltest. Es geht auch schon mit einem Kerko 100 nF, ist dann aber etwas leiser. ...
Hej leute Ich werkle und suche aber ich komme nicht aufm trichter. Ich habe jetzt die diesel1.inc datei. Die muss ich jetzt per include am anfang des programms festlegen. Wo muss denn die Datei selbst jetzt gespeichert sein damit mein Programm auch drauf zugreigfen kann. Und wenn ich jetzt einen Ausgang festlege wo ich z.b. einen Lautsprecher oder besser gesagt ne Entstufe anschließe, wie benutze ich denn die Datei die ich includet habe?? Ich hoffe ich gehe niemanden auf die Nerven. Ist halt sau interessant und gleich so komplitiert. LG Shabi
Shabi N. schrieb: > Hej leute > > Ich werkle und suche aber ich komme nicht aufm trichter. > Ich habe jetzt die diesel1.inc datei. Jou... > Die muss ich jetzt per include am anfang des programms festlegen. Nein! Am Anfang stehen Reset-Vektor und Interrupt-Vektoren. Das Sound-Include gehört an das Ende, also hinter Dein Ausgabeprogramm. > Wo muss denn die Datei selbst jetzt gespeichert sein Am besten im selben Ordner wie der Programm-Quelltext. > damit mein Programm auch drauf zugreigfen kann. Dein Programm greift nicht auf eine externe Datei zu, Dein Programm verschmilzt beim Assemblieren mit der Sound-Bitmap zu einem größeren Programm, das aus Instruktionen (Deinem Programm-Quelltext) und Daten (Sound-Quelltext) besteht. > Und wenn ich jetzt einen Ausgang festlege wo Du legst den Ausgang nicht fest, das hat Atmel bereits getan. Denn der Timer1, den man als PWM-DAC nutzen kann, hat nur zwei Compare-Einheiten, jede davon ist mit einem I/O-Pin fest verdrahtet (normal deaktiviert, kann aber durch Ändern der Bits im Steuerregister aktiviert werden). Du hast also nur 2 Pins zur Auswahl, indem Du entscheidest, welche Compare-Einheit Du nutzen willst. Informationen dazu findest Du im Datenblatt des ATTiny85. Aber bitte in der Vollversion für Programmierer nachsehen, nicht in der Werbe-Version für Marketing-Leute und BWLer... > ich z.b. einen Lautsprecher oder besser gesagt ne Entstufe anschließe, Vor die Endstufe aber bitte noch ein Tiefpass. > wie benutze ich denn die Datei die ich includet habe?? Habe ich Dir bereits geschrieben, Du gibst im Zeitraster der gewünschten Samplerate die einzelnen Bytes des includierten Datenbereiches nacheinander aus. > > Ich hoffe ich gehe niemanden auf die Nerven. Ist halt sau interessant > und gleich so komplitiert. Kann es sein, dass Du versuchst, den tausendsten Schritt vor dem ersten zu machen? Vielleicht solltest Du erstmal eine LED blinken lassen, dann zwei mit unterschiedlicher Frequenz... Deine Fragen klingen nämlich so, als hättest Du noch gar keine Erfahrung mit AVRs gemacht. Wenn das der Fall sein sollte, dann verhebst Du Dich an dem Projekt... > > > LG > Shabi ...
Hallo Hannes ich bin erst seit ein paar Wochen dabei. Mit LEDs habe ich schon sehr viel in der Zeit gemacht und auch mal Töne erzeugt die eine feste frequenz haben. Aber warscheinlich hast du Recht ich hab mir das etwas zu einfach vorgestellt. Du musst wissen ich bin leidenschaftlicher Modellflieger und mit so einem Soundmodul würde ich auf dem Flugplatz glänzen :-). Kaufen finde ich net so gut einmal sind die sau teuer und zweitens das kann ja jeder... Naja ich danke euch trotzdem für die hilfreichen Tipps werde am ball bleiden und erstmal weiter vom Soundmodul träumen :-). LG Shabi
Shabi N. schrieb: > Mit LEDs habe ich schon sehr viel in der Zeit gemacht Mit Timer? - Oder mit Warteschleifen? Hannes Lux schrieb: > Vielleicht solltest Du erstmal eine LED blinken lassen, dann > zwei mit unterschiedlicher Frequenz... Auch zwei mit unterschiedlicher Frequenz? (Das wäre z.B. die Basis zum Verständnis der Ausgabe mehrerer Sounds mit unterschiedlicher Samplerate gleichzeitig...) Shabi N. schrieb: > ich bin erst seit ein paar Wochen dabei. Naja, mit der Erfahrung von ein paar Wochen hätte ich das Soundmodul auch nicht hinbekommen, da musst Du schon noch etwas üben indem Du erstmal kleinere Brötchen bäckst. Shabi N. schrieb: > Kaufen finde ich net so gut einmal sind > die sau teuer und zweitens das kann ja jeder... Nein, kaufen kann nicht Jeder, dazu muss man ausreichend Kohle über haben. Ich bin schon oft genug an Leute geraten, die Bastelobjekte als billigen Ersatz für hochpreisige Markentechnik betrachten, gerade im Modellbau. Das ist z.B. auch ein Grund, warum ich nie versuche, Industrielösungen zu kopieren (nachzubauen), sondern immer eine eigene Lösung entwerfe, die es so nicht im Handel gibt. ...
Hallo hannes Hannes Lux schrieb: > Mit Timer? - Oder mit Warteschleifen? also bisher nur mit warteschleifen timer kommt als nächstes. Hannes Lux schrieb: > Naja, mit der Erfahrung von ein paar Wochen hätte ich das Soundmodul > auch nicht hinbekommen,... Meinst du mit unterschielichen Frequenzen z.b. die Delay zeit? Das eine LED länger als die andere leuchtet...? Wenn ja dann habe ich das schon gemacht. Ja das stimmt schon selber entwickeln ist immer schöner. Vor allem wenn man nach langer Entwicklungszeit auch mal resultate sieht... LG Shabi
Shabi N. schrieb: >> Mit Timer? - Oder mit Warteschleifen? > > also bisher nur mit warteschleifen timer kommt als nächstes. Dann stürz dich erst mal auf Timer. >> Naja, mit der Erfahrung von ein paar Wochen hätte ich das Soundmodul >> auch nicht hinbekommen,... > > Meinst du mit unterschielichen Frequenzen z.b. die Delay zeit? > Das eine LED länger als die andere leuchtet...? > Wenn ja dann habe ich das schon gemacht. Nicht länger. Die eine blinkt alle 2 Sekunden, die andere alle 3 Sekunden. Und zwar von einem Timer gesteuert.
Shabi N. schrieb: > also bisher nur mit warteschleifen timer kommt als nächstes. Damit machst Du Dir das (AVR-) Leben unnötig schwer... Ich begann auf dem AT90S1200, meine erste Bastelei bestand aus Tastaturmatrix 3x4, dreistelliger 7-Segment-Anzeige (Portpins mit Tastatur geteilt), einem Triggereingang und einem Ausgang mit 3 Zuständen (L, H und halbe Spannung über hochohmigen Ausgang und 2 Widerständen zwischen GND und Vcc). Dieses Teil sollte eine dreistellige Zahl als Sequenz von Servoimpulsen über einen Servokanal einer RC-Fernsteuerung zum Empfänger übertragen, um dort von weiteren AVRs decodiert zu werden und Zusatzfunktionen eines größeren Schiffsmodells zu schalten (Sound, Schaltausgänge). An meinem Eigenbau-Impulsteil mit AT90S4433 und später ATMega48 funktionierte das prächtig, an der (damals modernen) RC-Anlage des 350 km entfernt wohnenden Freundes funktionierte das aber nicht. Inzwischen kenne ich auch den Grund: Sein RC-Sender wird nicht mit Spannungen gesteuert, sondern wie vor 40 Jahren mit Widerständen in der Rückkopplung von Zeitgliedern. An der Planet T5 (2,4 GHz), die ich für Gartenbahn modifiziert habe (nur andere Bedienungselemente), funktioniert es natürlich wieder... Aber ich schweife ab. Mein erstes Programm nutzte bereits einen Timer, mit Warteschleifen wäre es sinnlos geworden. Auch das Decoder-Programm auf Empfängerseite (10 Schaltausgänge) nutzte natürlich den Timer. Und dabei war der Timer so primitiv, der hatte nichtmal Compare-Einheiten, da konnte man nur den Überlauf nutzen und musste ihn im Interrupt auf einen Startwert vorladen um eine bestimmte Zeit zu erreichen. Also ich nutze lange nicht alle Features der heutigen AVRs, aber (fast) jedes meiner Programme nutzt einen Timer. Das macht das Programmieren nunmal einfacher... Karl Heinz Buchegger schrieb: > Dann stürz dich erst mal auf Timer. Das sehe ich auch so... ...
Alles klar werde mich dann erstmal damit befassen. LG Shabi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.