Übungen/Projekte mit Mikrocontrollern/DSPs

  • Ersteller ian o field
  • Erstellt am
ian o field
ian o field
Registrierter Benutzer
Zuletzt hier
24.11.24
Registriert
16.08.12
Beiträge
475
Kekse
1.554
Hallo Elektronik- und Musik Freunde,


in meinem Studium (Mikrosystem- und Nanotechnologie) habe ich unter anderem Vorlesungen in Signalverarbeitung (Analog + Digital), Elektrotechnik, Elektronische Bauelemente, Systemdynamik und Mikrocontrollerprogrammierung.
Da ich gerne Beruf/Studium und Hobby verknüpfen möchte, kam ich auf die Idee, die theoretisch erlernten (bzw. zu erlernenden) Kenntnisse auch praktisch anwenden zu wollen. Als Übung oder evntl. sogar als tatsächlich funktionale Anwendung.

Die Idee die mir kam, ist das ganze z.B. über Mikrocontroller und Programmierung anzugehen. Nun wollte ich einfach mal so ins blaue Fragen und wissen, ob es noch andere hier im Forum gibt, die an so etwas Interesse - oder noch besser Erfahrung und Wissen - haben.
Dazu zuersteinmal die Frage, welche Möglichkeiten hat man da eigentlich, ohne dass man gleich Industrie-Standards und Produktionen fahren müsste um zu brauchbaren und als Student bezahlbaren Ergebnissen zu kommen?
Gibt es spezielle Übungen oder sollte man sich lieber ins kalte Wasser werfen in dem man sich einem evntl. hypothetischen Problem annimmt, die Theorie durchackert (sprich Signalverarbeitung und ähnliches) und sich dann an eine Programmierung + Zusammenstellung von Bauteilen begibt?
Sollte man sich lieber zurest mit Starter-Kits im DSP Bereich anfreunden oder kann man das auch funktionierend mit der Marke Eigenbau versuchen - sprich Platine, Bauelemente, Lötkolben?

Ich hoffe mal irgendjemanden hier ein paar antworten zu finden. In den gängigen Mikrocontroller-Foren und Informationsseiten finde ich nur sehr selten "Anfänger"-Möglichkeiten. Dort werden meist nur Semi-Pro bis Pro Probleme behandelt, was mir natürlich in keinster Weise weiterhilft.
Wäre es eventuell auch besser zuerst einmal per Hardware diverse Filter/EQs o.andere Anwendungen aufzubauen ohne mit Mikrocontrollern und Programmierungen zu arbeiten? Wobei ich mir denke, dass die Signalverarbeitung heute doch oftmals sowieso im Digitalen stattfindet.

Ich sah auf YouTube z.B. schon einige Mikrocontrollerschaltungen, die Pegelanzeigen per LEDs steuern oder auch einen Frequenzanalyser der die Frequenzen auf einem LCD-Display ausgibt.
Eventuell eben kleiner Anfangen, aber scheinbar gibt es da Anwendungen die auch zuhause zu lösen sind.

Wie erwähnt, mir geht es in erster Linie um die Übung in der Praxis. Ich möchte nicht zwangsläufig gleich industriell und kommerziell nutzbare Effekte bauen. Das wird in der Hobby-Preisklasse einfach nicht in der Qualität funktionieren.

In der Hoffnung auf Antworten

Cheers

Ian
 
Eigenschaft
 
Zuletzt bearbeitet:
Je nachdem was du machen möchtest, gibt es eine Vielzahl von Plattformen, aus denen du wählen kannst.
Ich sehe 2 grundsätzliche Szenarien:
1. Microcontroller
Z.B. einen nackten Controller verwenden und betreiben (da finde ich die Atmel ATmega Serie ganz nett). Du brauchst dafür nur z.B. einen ATmega88 fücr ca. 5 EUR Eventuell ein Steckbrettchen oder Fädelplatine und einen Programmer (ca 40 EUR). Das Atmel Studio kannst du kostenlos herunterladen. Für einfache Projekte nimmt es dir viel Arbeit ab.
Oder gleich fertige Systeme (Arduino, myAVR, Conrad C-Control ...)
Die Arduino Umgebung definiert schon recht viel vor und stellt einiges als fertige Funktionsbibliothek zur Verfügung. Außerdem gibt es eine recht gute Community.
Ich bevorzuge eher die direkte Programmierung, da man wirklich alle Funktionen des Controllers zur Verfügung hat, wenn man sie braucht. Beim Arduino sind einzelne Pins als Digitale Pins definiert, andere für analoge Zwecke.
(Man kann z.B. viele der Atmel basierenden Systeme auch mit dem Programmer direkt programmieren - ohne die spezielle Umgebung und hat dann wieder die volle Kontrolle aber schon eine fertige Platine, ohne die entwickeln und löten zu müssen)
Auf dem Microcontroller ist man immer der Chef und darf alles, man muss sich aber auch um alles kümmern.
Eine gute Informationsquelle ist https://www.mikrocontroller.net/forum/

2. Kleinrechner
Hierzu zähle ich in erster Linie den Raspberry Pi, weil er die mit Abstand größte Communitiy hat. Sucht man eine Lösung für ein bestimmtes Problem, so findet sich mit wenig Aufwand bei der Internetrecherche eine Webseite oder Forum, wo genau dieses Problem schon behandelt wurde.
Dabei hat man es mit einem richtigen Rechner mit Betriebssystem und Benutzerverwaltung zu tun. Man hat alle Vorteile (Netzwerkanbindung, User Interface, diverse Standard-Schnittstellen) aber auch den Nachteil, dass man sich mit dem Betriebssystem und Zugriffsrechten auseinander setzen muss. Außerdem ist es eine größere Herausforderung, wenn man Echtzeitanwendungen hat. UNIX ist von Haus aus kein Echtzeitbetriebssystem. Also muss man dann ein spzielles Betriebbystem verwenden - was zur Folge hat, dass dann der Vorteil der großen Community verpufft oder man stattet den Raspi mit einem Add-On Microcontroller aus, der die Echtzeitsachen erledigt - dann ist man wieder bei Fall 1.
Verwendet man einen anderen Klienrechner (Banana Pi und ähnliche), so sind die womöglich Leistungsfähiger, jedoch ist die Communiy nicht so groß.

DSP ist nochmals eine ganz andere Baustelle, denn da ist die Community verschwindend gering. Sowas machen meist Firmen, und die sind in der Regel gar nicht daran interessiert, ihr Know How zu verbreiten. Gelegentlich gibt es noch Artikel von fortgeschrittenen Bastlern oder Universitäten. Außerdem brauchst du schon etwas Wissen in digitaler Signalverarbeitung ... (Z-Transformation etc. ). Manche Firmen bieten Evaluation Boards an, die aber meist schon relativ teuer sind und drumherum auch noch etwas Infrastruktur brauchen. Die gibt es dann auch eher nicht bei Conrad oder Reichelt, sondern bei Distributoren oder Elektronikversendern, die gar nicht an Privatleute versenden. Ein Tipp: der http://hbe-shop.de/ vertreibt das Farnell Programm auch an Privatleute. Oder du kannst über deine Hochschule versuchen so was zu beziehen.

Wenn du bei Null anfängst, dann entscheide dich eher für eine der ersten beiden Möglichkeiten und arbeite dich dort ein. Oder programmiere auf dem PC. Die Hardware hast du schon. I/O ist in Form einer Soundkarte auch schon vorhanden.

Gruß
Christoph
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: 2 Benutzer
Ich würde mich dann doch lieber mit den 'nackten' Controllern auseinandersetzen.

Dazu gleich mehrere Fragen..

1. Mit nackt meinst du den reinen μController oder den inkl Platine, Schnittstellen etc? Oder meinst du, dass ich den Controller mit Platine und zusätzlichen Elementen, Schnittstellen evntl externe Takterzeuger verschalten und verlöten soll?

2. Ich lerne die Programmierung in C mit optimierenden Compilern. Das ist ja aber selbst im Anschluss nicht so optimiert was Laufzeiten angeht, wie wenn man über Assembler, die Taktzyklen beachtend, Programmiert oder verstehe ich da etwas falsch? Das führt göeich zu Punkt 3.

Für quasi Echtzeitanwendungen im Audiobereich bräuchte ich ja theoretisch eine Mindestabtastrate von 40kHz ( Standardisiert 44.1) und die Laufzeit darf eben auch nicht allzugroß werden, so wie die Ausgabe. Ist das überhaupt machbar mit diesen Geräten die nicht DSPs sind? Da dürfte doch theoretisch eine deutliche Latenz spürbar sein. Dazu kommt doch auch, dass diverse Operstionen und Funktionen so gar nicht integriert sind bzw aufwändig erarbeitet werden müssten (laut Prof. haben DSPs z.b. Faltungsoperationen in ihren Bibliotheken mit drin wenn ich ihn richtig verstanden habe.). Diverse Rechnungen im Frequenzbereich würden doch deutlich länger dauern oder hab ich da gerade eine komplett falsche Vorstellung?

Analoge und Digitale Signalverarbeitung sind nächstes Semester im Vertiefungsblock an der Reihe. Von Fourier-,Laplace (aus der Systemdynamik) und Z-Transformation habe ich schon gehört. Mit Laplace und Fourier haben wir im Analogen auch diverse Dinge berechnet. Hoch/Tief/Bandpass, Impulsantwort, Sprungantwort und solche Geschichten, jedoch nur im Analogen. Vom Digitalen habe ich leider noch nicht wirklich Ahnung. (Also noch weniger als von der Analogen. Haben da natürlich nur angekratzt :p ;) )
 
Zuletzt bearbeitet:
Hast du mal den Prof. gefragt, was in eurem Bereich an der Hochschule so eingesetzt wird? Vielleicht gibt es da was passendes für dich. Eventuell setzt ein Institut irgendein relativ erschwingliches Teil ein.

Für 44kHz Sampling rate ist ein ATmega 8 bit mit max. 20 MHz vermutlich relativ schnell am Ende.

Oder mir fällt noch was anderes ein. Da gab es mal ein selbst programmierbares Effektgerät mit DSP als Bodentreter (war glaube ich von Line6). Ich hab jetzt mal bei Thomann quer gesucht und es nicht gefunden. Es ist wohl aber sehr wahrscheinlich, dass die Produktion eingestellt wrude, denn die Anzahl der Interessenten dürfte eher überschaubar gewesen sein. Vielleicht ist das noch irgendwo aufzutreiben.

Gruß
Christoph
 
Als Übungscpntroller haben wir einen 8051er bekommen von Silicon Labs. Den sog. MCUniversity ToolStick. Müsste mich mal erkundigen ob ich damit etwas anfangen kann.

Ich habe gerade mal nach dem Arduino geschaut und sogar diverse Zusatzmodule gefunden, die man entsprechend an den eigntl Controller anschließen kann. Da war ein ectra Audio-Modul dabei, schien mir eine Art A/D Wandler und D/A Wandler zu sein mit Klinkenbuchsen oder Mic. Ich suche morgen mal etwas genauer, lese mich mal mehr ein in die Arduino-Sache und schau mal ob ich da was finde.
 
Das schau ich mir mal an. Ist ja bald Weihnachten, da könnte ich mir ja mal was gönnen (sonst wäre es vermutlich ein neues Becken geworden..)

Vielen Dank schonmal für die Infos! Hast du selbst irgendwie Erfahrung mit solchen Programmierungen, also könnte ich mich bei großen Probleme/Fragen an dich wenden?
 
Habe ebenfalls Erfahrungen in der MC-Programmierung (8-bit Atmel) und durch mein Elektrotechnikstudium auch schon von u.a. Signalverarbeitung gehört. ;)

Der Einstieg ist mit den 8-Bit ATmega oder ATtiny Controllern eigentlich keine große Hürde. Es gibt zahlreiche Entwicklungsboards und Programmmer, eine große Community und diverse offene Bibliotheken, Projekte und reichlich Dokumentation. Das sind DIE Bastel-MC schlecht hin. Für dein Ziel DSP-Programmierung würde ich dir von der Arduino-Plattform abraten, da es zu viel Wissen um den "nackten" Controller vor dir versteckt.

Damit kannst du gut einen Einstieg finden. Mit DSP-Projekten zu beginnen, dürfte schnell frustrierend werden. Ein 8-bit Atmel wird allerdings nicht viel an Signalverarbeitung (im Audiobereich) leisten können.
Du kannst dir im nächsten Schritt die STM32 Controller ansehen - die sind leistungsfähiger und es gibt ebenfalls günstige Eval-Boards dafür.
Danach sollte dann auch der Schritt in den DSP-Bereich möglich sein. Ich habe da allerdings keine Erfahrungen.
 
Für alle Fragen rund um Mikrocontroller kann ich nur die Artikel und Foren von http://www.mikrocontroller.net/ empfehlen. Fast jedes Problem bzw. jede Frage hat schonmal einer gehabt und da gestellt.
 
Fast jedes Problem bzw. jede Frage hat schonmal einer gehabt und da gestellt.
Ja, allerdings finde ich den eher respektlosen Umgangston und Klugscheißerfaktor in diesem Forum schon recht ruppig. Gerade mit Einsteigerfragen wird man da schon mal angepampt. Empfehlenswert sind allerdings die Wiki-Artikel. Mit dem AVR-GCC-Tutorial dort habe ich damals auch den Einstieg gemacht.
 
Diese Seite habe ich auch auf Anhieb ergoogelt. Jedoch fand ich sie auf den ersten Blick schon recht unübersichtlich.
 
Als Einstieg kann ich dir auch sehr empfehlen einen Arduino zu benutzen. Damit gibt es wunderbar nachvollziehbare Synthesizer. Kostet wirklich nicht die Welt, Du hast viel Potential auch für spätere Projekte, ist alles open source und sehr gut dokumentiert. Zudem gibt es quasi überall viel Hilfe.
Ich hatte das Thema auch sehr stiefmütterlich angefasst, aber dadurch habe ich einen guten Bezug herstellen können.
 
Ich habe aktuell eine Spice zur Verfügung, in der MCUs auch drin sind inkl. C - Programmierbarkeit und entsprechender Simulation. Jetzt habe ich mir gedacht dort eventuell auch meine ersten Versuche zu machen und sie dann später auch auf die Hardware ( aktuell die Übungshardware der Uni von Silicon Labs MC-University ToolStick Starter mit einem C8051F020)zu bringen. In der kann man ja viele Signale bzw. auch komplette Schaltungen simulieren und diese dann analysieren. Wäre eventuell zumindest für mich aktuell eine nette Idee um mich auch an die Hardware-Seite von µCs heranzutasten (Spannungsversorgung, I/O-Ports, Timer etc.).

Sobald ich etwas evntl. brauchbares auf die Reihe bekomme lasse ich es euch wissen. (Natürlich von Audiotechnischer Seite... ;) ist ja schließlich ein Musiker-Board und kein Elektronik/µC - Forum)
 

Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben