mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Sound to Light in Bascom Programieren


Autor: Andreas Wessel (Firma: Lichtpunkt-LED) (andy01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leidensgenossen.. ;-)

Ich möchte mir gerne eine Sound to Light steuerung bauen.

Ich wollte eine Microphonvorstufe an einem Atmega8 anschließen an den 
A/D eingängen.
Dann einige Lauflichter Programieren und diese dann über die Impulse des 
Mikrophonverstärkers komplett beeinflussen.
Die Empfindlichkeit des Mikrophones, die Laufgeschwindigkeit und einen 
Farbwechsler für RGB LED´s ebenfalls steuern können.
Zum einen die Laufgeschwindigkeit per taster sowie auch den Farbwechsel 
mit direktanwahl mit Tastern und dann die Lauflichter und Farbwechsel 
etc per tastendruck dem eingang des Mikrophones zuordnen.
Das die Steuerung sehr Komfortabel wird.
Allerdings reichen meine Programierkenntnisse NOCH nicht dafür aus, um 
alles komplett selbst zu erstellen.
Zumindest die Mikrophonabfrage bekomme ich nicht selbst hin.
Wäre nett, wenn mir jemand zumindest dabei helfen könnte den A/D eingang 
eines AVR´s so zu Programieren, sodass ich damit zumindest Programmteile 
beeinflussen könnte...den Rest würde ich bestimmt schon dann irgendwie 
hinbekommen.
Übrigens ich Programiere mit BASCOM... in C und anderen Compillern habe 
ich null ahnung.

Danke schonmal im Vorraus.

Autor: Jack Braun (jackbraun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Allerdings reichen meine Programierkenntnisse NOCH nicht dafür aus, um
>alles komplett selbst zu erstellen.

Dann vergiß es einfach. Oder Du nimmst das "NOCH" ernst und lernst dazu.

Autor: Andreas Wessel (Firma: Lichtpunkt-LED) (andy01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Das NOCH bezieht sich dadrauf, das ich nicht weiß, wie der Code aussehen 
muß um die Daten des Mikrophones auszuwerten, um damit dann die 
Programmierung und Programmabfolge zu beeinflussen.

Lauflichter oder Tastenabfragen und kleinere Programme sind kein Problem 
für mich.

Aber ich Dachte eigentlich, das dieses Forum explizit für solche Fragen 
konzipiert wurde.
Denn wenn ich keinerlei Fragen etc. hätte und alles selbst könnte, dan 
bräuchte ich das Forum ja eigentlich nicht.
Oder ?

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutlich ist das nicht ganz so einfach, was Du da vorhast. Man könnte 
einen Tiefpass nehmen und einen Trigger dahinter schalten, mit dem Du 
dann einen digitalen Eingang Deines µCs steuert. Dann hättest Du quasi 
eine Art Beat-Signal. Wenn Du aber eine Lichtorgel haben möchtest (also 
Licht abhängig von der Frequenz steuern), dann solltest Du vielleicht 
doch komplett auf eine andere Technologie umsteigen.

Autor: Andreas Wessel (Firma: Lichtpunkt-LED) (andy01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine Antwort.

Ich habe mir gedacht, da das Signal durch den A/D Wandler ja nun 256 
Schritte haben wird (War mir zumindest so) das ich diese Schritte dann 
gewissen Frequenzen zuordne, die dann eventuell noch Leistungsabhängig 
sind.
Dann bei einer gewissen Signalstärke und einer bestimmten Frequenz dann 
bestimmte Lauflichteffekte oder gewisse Flashfunktionen ausführen lasse.
Wobei dann, wenn andere Frequenzen in anderen Signalstärken vorhanden 
sind, das dann eine art Peaklevel an den Ausgängen liegen.

Dazu müßte ich dann gewisse Vorraussetzungen vorab in den Speicher 
schreiben, die dann immer abgerufen werden, falls diese dann mit den 
Istwerten übereinstimmen.
Sofern ich mich da jetzt nicht total verhaspelt habe.

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht ganz. Die ADC-Stufen entsprächen eher der Lautstärke (auch wenn 
das doch noch ein wenig komplizierter ist), die Frequenz ergäbe sich 
erst, wenn man mehrere Abtastwerte pro Zeiteinheit (Stichwort Sampling) 
hätte und auch dann erst durch etwas aufwändigere Berechnungen, die 
sicher mit dem Controller so nicht zu realisieren sind.

Du könntest z.B. einen Teil einer konventionellen Lichtorgel verwenden, 
d.h. das Signal rein analog in Frequenzanteile (mittels Bandpässen o.ä.) 
aufteilen und diese Signale, wenn sie dann eine bestimmte Schwelle (im 
Prinzip Lautstärke) überschreiten als digitales 'Beat'-Signal in den 
Controller jagen.

Autor: Andreas Wessel (Firma: Lichtpunkt-LED) (andy01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit den Frequenzen und der Intensität lässt sich ja ohne weiteres 
Extern beschalten...ok.
einfache Hoch , Tief und Bandpässe sind kein Problem für mich (bin 
Elektroniker)
Nur das mit der Umsetzung in Bascom, das dann die Signale 
dementsprechend ausgewertet werden können, macht mir kleinere Probleme.

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit Bascom kenne ich mich leider auch nicht aus, so dass ich hier nicht 
von großer Hilfe bin. Ich persönliche arbeite lieber mit C oder 
Assembler.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
falls die Signal vieleich schon digital vorlägen ginge das vieleicht mit 
dem AVR soviel ich weiß gab es hier im forum schonmal einen der ne FET 
mit ordentlicher updatefrquenz mit dem AVR geschafft hat.
Gruß
Peter

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man könnte auch IIR-Filter bzw. Biquads für die Bandpässe nehmen aber 
vermutlich ist die Abtastfrequenz des ADCs nicht hoch genug, habe aber 
das Datenblatt gerade nicht zur Hand.

Autor: Andreas Lang (andi84)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das gabs schonmal. (Beitrag "Re: Drei Frequenzbereiche mit FFT bestimmen")
In C hab ich mal irgendwann sowas anefangen. Basiert auf der FFT 
Bibliothek von Chan. Mit BASCOM wird das wohl eher bäh. Einfacher wäre 
es z.B. 4 Bandpässe zu nehmen und die dann auf ADC-Eingänge zu legen. 
Falls man nur den Beat erkennen will, kann man sich mal die Schaltung 
vom ELV Beatcounter angucken (auf deren Website erhältlich). Die ist 
allerdings nicht gerade eine Offenbahrung. Erkennt mal was und dann 
wieder nix. Oder macht mal vier impulse für eine Beat. Also eher mäßig 
und nur mit nachgeschaltetem Programm brauchbar. Allerdings würde ich 
die Beats dann eher mit Stochastischen Methoden verarbeiten. Könnte man 
eventuell mit einem Poissonprozess modellieren und die Varianz 
verwenden, um zu erkennen, ob das, was da reinkommt, brauchbar ist.
Der AVR-ADC kann durchaus recht hohe Sampleraten erreichen (>22kS/sec), 
allerdings geht irgendwann die Auflösung flöten und man hat vielleicht 
noch 6 Bits, die nicht einfach nur rauschen.

Autor: Carsten Pietsch (papa_of_t)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier hast Du ein Beispiel samt Fehlervermeidung zum Abfragen der ADCs in 
BASCOM. Ich würde aber auch mit externen Hoch- und Tiefpässen arbeiten 
(schon um Lautstärke und Frequenz einfach auseinanderzuhalten)

Beitrag "Re: Mega8 ADC Meßproblem"

Autor: Andreas Wessel (Firma: Lichtpunkt-LED) (andy01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Antworten.
Ich werde es nachher gleich mal ausprobieren.
Mal sehen, ob dann alles so läuft, wie ich es mir Denke, bin da doch 
guter Dinge.
Werde dann ersteinmal die Externen Filter aufbauen (Hoch , Tief und 
Bandpässe)
Und mich dann an die Programierung setzen.
Ergebnisse werde ich dann hier kundtun.

Fals jemand doch noch die eine oder andere Idee haben sollte, wie man 
das ganze dann eventuell etwas einfacher machen könnte, einfach posten.

Autor: Marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hinter die Pässe dann trigger. Die Trigger dann
auf Ports des AVR und diese dann zyklisch abfragen währ
mal n brauchbarer anfang

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.