Hallihallo!
Nach einigen Probierereien und Basteleien möchte ich mein erstes großes
Elektro- / Informatikprojekt angehen (bin selber IuK-Student, also ein
Mix aus E-Technik und Inf).
Mein Ziel ist es, ein Masterkeyboard selber zu bauen. Ein Masterkeyboard
ist ein Keyboard, (also Musikinstrument, keine PC-Tastatur ;) ) dass
keine Klangerzeugung besitzt, sondern nur Steuersignale (genannt MIDI)
an andere Klangerzeuger, wie zB Synthesizer, PCs oder andere Keyboards
sendet.
Die Vorteile beim Selbstbau sind neben dem Hobbyfaktor v.a. Kosten,
Funktionsumfang und die Möglichkeit, die Tastatur selber auszusuchen.
Weiterhin sind folgende Besonderheiten geplant:
-Ein USB-OTG-Host, der es dem Keyboard erlaubt, USB-MIDI nicht nur am
PC, sondern auch zwischen verschiedenen Keyboards/Synthies einzusetzen.
-Steuerung über eine App vom Handy/Tablet (evtl auch Netbook o.ä.), die
mir nicht nur massig Hardware (allem voran das Display) spart, sondern
auch Funktionen, wie Datensicherung und -verwaltung (evtl auch
Speicherung), Software-Updates etc. relativ einfach umsetzen kann und
ganz nebenbei über das Touchpad auch noch einen MIDI-Controller
darstellen kann. Wird wohl auch auf USB-OTG hinauslaufen.
Als allererstes bin ich auf der Suche nach dem passenden
Mikrocontroller. Bisher habe ich nur Erfahrungen mit AVRs, aber für
dieses Projekt zieht es mich eher zu den PICs. Warum PIC? Die größeren
AVRs in Richtung AVR32, AT91, etc. sind nicht mehr ISP-kompatibel,
während sich alle PICs über das gleiche Interface programmieren lassen.
Da mein Studenten-Budget recht begrenzt ist, bin ich ganz froh, wenn ich
nicht jedes Projekt mit einem neuen Programmer/Entwicklungsboard
beginnen muss. Also: Einen ICSP-Programmer anschaffen und in Zukunft
alle PICs und 8bit AVRs proggen können, das klingt für mich ziemlich
gut.
Außerdem hat PIC auch zB 16bitter im Angebot, die schon verdammt viel
können und ziemlich günstig sind und was ich so gelesen hab bieten die
auch gute Frameworks und so Zeugs an.
Also, genug blahblah, was muss der uC können?
- ein bisschen Standard-Krimskrams, wie I2C, SPI natürlich
- möglichst viel (10+) ADC für Potis, Pedale, Fader...
- genügend Ressourcen, um Latenzfrei 88 Tasten (SPI) + ca. 15
Steuereingänge abzufragen, mit dem Handy zu kommunizieren und MIDI-Daten
zu empfangen, verarbeiten und verschicken
- USB-OTG für MIDI-Übertragung und App-Steuerung (ist hierfür überhaupt
OTG nötig?)
- vorzugsweise beim blauen R erhältlich ;)
Folgende Controller hab ich bisher in Betracht gezogen:
16bit, viele Anschlusspins, allerdings nur 8kB RAM (zu wenig?)
http://www.reichelt.de/PIC-24-Controller/24FJ64GA306-IPT/3/index.html?;ACTION=3;LA=3;ARTICLE=121640;GROUPID=4085
Sind 32bit schon mit Kanonen auf Spatzen geschossen? Der hier ist etwas
kleiner, dafür nochmal deutlich leistungsfähiger. Wie siehts hier mit
RAM aus? Ich kapier das mit dem Memory-Mapping nicht so ganz. Hat der
überhaupt was auf dem Chip?
http://www.reichelt.de/PIC-32-Controller/32MX150F128D-IPT/3/index.html?;ACTION=3;LA=2;ARTICLE=121324;GROUPID=4509;artnr=32MX150F128D-IPT
Wie es aussieht brauche ich ja 2 USB-OTG Anschlussmöglichkeiten. Ist es
möglich, im Controller einen Hub zu implementieren oder wäre es das
einfachste, vors Handy noch einen zweiten kleinen Vielbeiner als
Schnittstelle zu platzieren?
Was sagt ihr zu denen? Oder fallen Euch passendere Controller ein? Muss
ja nicht unbedingt PIC sein, wäre aber schon am praktischsten, denke
ich.
Ich bin auch noch nicht voll in der Materie drin, gerade, was USB und so
betrifft. Ich werde mir dann als erstes mal ein kleines Bastel-Brett für
den Controller erstellen und mich damit in die Feinheiten einarbeiten.
So, das wars nun erstmal ;)
Viele Grüße,
Hannes
P.S.: Schon wieder so eine Text-Wand, ich muss mal lernen, mich kürzer
zu fassen...
STM32F4 Discovery 32bit 168MHz 1MB Ram, 0.5MB ROM, USB, USB-Host,
integrierter Programmer, 10 Dollar. Günstiger geht nicht
Hannes schrieb:> Also, genug blahblah, was muss der uC können?> - ein bisschen Standard-Krimskrams, wie I2C, SPI natürlich
Ich glaube der STM32F407VG der auf dem STM32F4 Discovery verbaut ist hat
8 Module davon
> - möglichst viel (10+) ADC für Potis, Pedale, Fader...
Ja
> - genügend Ressourcen, um Latenzfrei 88 Tasten (SPI) + ca. 15
168MHz und externe Interrupts für jeden Pin sollten reichen
> Steuereingänge abzufragen, mit dem Handy zu kommunizieren und MIDI-Daten> zu empfangen, verarbeiten und verschicken
Pippifax
> - USB-OTG für MIDI-Übertragung und App-Steuerung (ist hierfür überhaupt> OTG nötig?)
OTG = Host = wohl nicht nötig
> - vorzugsweise beim blauen R erhältlich ;)
Nö
Hallo Hannes,
>P.S.: ich muss mal lernen, mich kürzer
zu fassen...
Du müsstest folgendes lernen:
1. .....wann man "dass" und wann man "das" schreibt.
2. .....dass es hier recht kontraproduktiv ist, nach "welchen
Mikrocontroller" zu fragen...das wirst Du sehr schnell merken. Reine
Glaubensfrage.
3. .....Dass Du für den Preis des komfortabelsten Midi-Masterkeyboeard
was es käuflich zu erwerben gibt, VIELLEICHT gerade mal das Starterkit
bekommst und ein passendes Netzteil dazu.
So genau ist mir noch nicht klar geworden, welchen ANteil das Handy
dabei haben soll.
Ist das ganze erst mal ein "IchWill" oder hast Du irgendeine praktische
Anwendung dazu?
Gruss
Michael
DK schrieb:> STM32F4 Discovery 32bit 168MHz 1MB Ram, 0.5MB ROM, USB, USB-Host,> integrierter Programmer, 10 Dollar. Günstiger geht nichtARM lässt (mal wieder) grüßen :)
Nicht schlecht, der Vorschlag! Hast Du schon Erfahrungen damit
gesammelt? Taugt das Board auch für spätere (evtl viel kleinere)
Projekte? An sich scheint mir der Controller ganz schön
überdimensioniert, wobei das bei dem preis ja eigentlich ziemlich egal
wäre^^
DK schrieb:> OTG = Host = wohl nicht nötig
Meinst Du für den Anschluss ans Handy? Kann das den Host auch selber
übernehmen?
Michael Roek schrieb:> 1. .....wann man "dass" und wann man "das" schreibt.
Hm, also wenn ich nix übersehen habe, erkenne ich oben genau einen
dass-das-Fehler. Entschuldige vielmals! ;)
Michael Roek schrieb:> 3. .....Dass Du für den Preis des komfortabelsten Midi-Masterkeyboeard> was es käuflich zu erwerben gibt, VIELLEICHT gerade mal das Starterkit> bekommst und ein passendes Netzteil dazu.
Puh, du kaufst aber teure Starter-Kits :D
Michael Roek schrieb:> So genau ist mir noch nicht klar geworden, welchen ANteil das Handy> dabei haben soll.> Ist das ganze erst mal ein "IchWill" oder hast Du irgendeine praktische> Anwendung dazu?
Zusätzlich zu dem, was oben steht, will ich es auch einfach schaffen,
ein selbstgebautes Gerät mit einer selbst geschriebenen App zu steuern.
Das ist ja allgemein betrachtet auch nicht gerade unsinnig und lässt
sich sicher auch auf andere Sachen anwenden.
Generell geht es mir bei dem Projekt neben dem Selbstbau-Aspekt auch
darum, mich generell mit solchen Dingen, wie digitaler Übertragung,
Kommunikation zwischen Geräten, schreiben von Apps etc. zu beschäftigen
und einzuarbeiten. Immerhin ist das alles genau das, was ich auch
studiere. Natürlich kann ich gewisse ich-will- und Coolness-Effekte
nicht abstreiten, aber darum geht es imho eben auch, wenn man sich
irgendwas bastelt. ;)
Zum praktischen Nutzen: Ein Live-taugliches Masterkeyboard, dass mein
Equipment um eine Klavier-Tastatur erweitert und im besten Fall die
Steuerung für sämtliche anderen Geräte übernehmen kann.
Hoffe trotz Glaubensfrage trotzdem noch auf ein paar schöne Vorschläge
:) Ich will ja keine Grundsatzdiskussion anzetteln...
Michael Roek schrieb:> Hallo Hannes,>> 3. .....Dass Du für den Preis des komfortabelsten Midi-Masterkeyboeard> was es käuflich zu erwerben gibt, VIELLEICHT gerade mal das Starterkit> bekommst und ein passendes Netzteil dazu.>> Gruss> Michael
Gab es nicht schon Midi Keyboards ab 50 Euro?
Die gibts auch für 30, aber das erfüllt dann doch nicht ganz meine
Ansprüche :D
http://www.thomann.de/de/korg_nanokey_2_black.htmLothar schrieb:> Gibt es als Demo-Board mit Demo-APP und Schaltplan, und kann man dann> als minimales Board selbst nachbauen
Das sieht auch äußerst interessant aus, danke!
Hallo Hannes,
ich denke das du mit den PICs nicht verkehrt liegst (das kriegste aber
auch mit Atmel Chips hin).
Was mich total interessiert, weil ich auch etwas Musikzeugs habe, woher
bekommst du denn die Tasten für das Keyboard, sollen doch welche mit
Hammermechanik und so sein, kenne dafür keine günstigen Anbieter.
Wenn du dazu vielleicht ein paar Links hast würden sich bestimmt auch
andere freuen!
Gruß
dat Beast
Hannes schrieb:> Einen ICSP-Programmer anschaffen und in Zukunft> alle PICs und 8bit AVRs proggen können, das klingt für mich ziemlich> gut.
Um das "proggen" kommt man nicht herum, viel wichtiger ist für mich
das Debuggen. Kann ich mit einem Tool möglichst viele Prozessoren single
steppen, Breakpoints setzen und Variable anschauen. Ob es da etwas gibt,
das sowohl für PICs und AVRs gleichgut funktioniert ?
MfG Klaus
Hallo Hannes
Ich würde eine PIC32 dafür nehmen, aber das ist natürlich
Geschmacksache. Es gibt halt ziemlich leistungsfähige Typen im DIP-28
Gehäuse und alle lassen sich mit einem günstigen PicKIT 3 programmieren
und debuggen.
USB-MIDI:
Für die Verbindung vom Masterkeyboard zum PC (Sequencer Programm)
brauchst du einen USB-Device.
Für die Verbindung zu einem Synth Module über USB brauchst du einen
USB-Host. Falls nicht beides gleichzeitig gebraucht wird muss der
Controller also einen USB-OTG Port haben, sonst je einen Host und einen
Device-Port.
TABLET:
Manche Tablets haben einen USB Host Anschluss, aber meistens wird zur
Kommunikation der USB Device Anschluss benutzt, das hat den Vorteil dass
man darüber das Tablet auch gleich mit Strom versorgen kann. Google mal
nach IOIO, aber auch Microchip hat da fertige Lösungen für PICs.
Ich finde es allerdings einfacher über Bluetooth zu gehen, mit einem
kleinen Bluetooth Modul kriegst du eine einfache serielle Schnittstelle.
Der Controller im Masterkeyboard braucht dann nur einen UART statt eines
zweiten USB Ports. Und du kannst das Tablet auch mal von etwas weiter
weg als Fernsteuerung benutzen.
Ich denke das schwierigste an deinem Projekt ist die Programmierung des
USB-MIDI Treibers sowohl als Host wie auch als Device.
Informationen über das Protokoll findet man nicht viel im Netz. Und
fertige Software Module, wie für andere USB Protokolle schon gar nicht.
Falls du da schon gute Informationen hast, würden mich die auch
interessieren.
Gruss Andi
Im Prinzip ist der verwendete Controller egal, ich würde vermutlich
einen STM32 nehmen, z.B. in Form eines Discovery Boards wg. des
günstigen Preises, der vielen Ports und der zahlreichen ADC Kanäle,
sowie dem Verzicht auf spezielle Programmer.
Eines der Hauptprobleme wird sein, die unterstützende Hardware zum
Scannen der Tasten zu planen. Egal, wieviele Ports der MC besitzt, es
sind zu wenige, um direkt für jede Taste einen Portpin zu spendieren
(Solange du nicht ein Nanokeyboard oder Casio SK-1 bauen willst :-) ).
Da du vermutlich auch Velocity unterstützen möchtest, kann die richtige,
übersprecharme Hardware den Prozessor da gut unterstützen.
Abdi schrieb:> Ich finde es allerdings einfacher über Bluetooth zu gehen, mit einem> kleinen Bluetooth Modul kriegst du eine einfache serielle Schnittstelle.
Allerdings ist Latenz hier mögl. ein Problem. Wenn das mehr als 2-5ms
sind, ist das beim Spielen schon spürbar.
Hallo Hannes,
nach wie vor mein absoluter Favorit ist :
www.ucapps.de
Basis ist der LPC1768 mit einer umfangreichen Peripherie. Hier ist das
Modul Midibox-KB wohl für dich interessant.
Gruss
RomanK
Danke fürs Feedback schonmal soweit! :)
Andreas G. schrieb:> Was mich total interessiert, weil ich auch etwas Musikzeugs habe, woher> bekommst du denn die Tasten für das Keyboard, sollen doch welche mit> Hammermechanik und so sein, kenne dafür keine günstigen Anbieter
Günstig ist natürlich die Frage, die Tastatur wird auf jeden Fall mit
Abstand das teuerste am Keyboard. Viele Hersteller (z.B. Doepfer,
Studiologic, Clavia,...) beziehen ihre Tastaturen von Fatar
(http://www.fatar.com/Pages/Intro_production.htm). Inwiefern diese
Tastaturen einzeln beschaffbar sind, ist die Frage. Doepfer
(http://www.doepfer.de/home_d.htm) bietet z.B. ein Modell zum Verkauf
an, evtl. können die auch andere Liefern. Habe auch schon gelesen, dass
sich jemand direkt bei Fatar eine TP40W (so ziemlich das Beste, was es
derzeit gibt, zB im Studiologic Numa Nero verbaut) für 650€ bestellt
hat. Hier muss man wohl ein bisschen rum fragen.
Klaus schrieb:> Kann ich mit einem Tool möglichst viele Prozessoren single> steppen, Breakpoints setzen und Variable anschauen. Ob es da etwas gibt,> das sowohl für PICs und AVRs gleichgut funktioniert ?Abdi schrieb:> ...und alle lassen sich mit einem günstigen PicKIT 3 programmieren> und debuggen
Ein Brett für AVRs habe ich ja schon, nur passt das ja nicht für die
größerren Kaliber. Mit einem weiteren PicKit würde ich dann in Zukunft
halt schon einen großen Pool an uCs abdecken, das spricht für den
Einsatz eines PICs. Verfügbarkeit von DIP-Gehäuse(n?) ist mir hingegen
relativ schnuppe, da ich sowieso eine SMD Version einsetzen werde.
Abdi schrieb:> meistens wird zur> Kommunikation der USB Device Anschluss benutzt, das hat den Vorteil dass> man darüber das Tablet auch gleich mit Strom versorgen kann
Touché! Dann brauch ich also einen zweiten Host.
Bluetooth und kabellose Übertragungen sind mir da nicht ganz geheuer,
zumal sich mit einem USB-Kabel das Teil auch ausreichend "fernsteuern"
ließe.
Abdi schrieb:> Ich denke das schwierigste an deinem Projekt ist die Programmierung des> USB-MIDI Treibers sowohl als Host wie auch als Device.> Informationen über das Protokoll findet man nicht viel im Netz.
Also für die OTG-Funktionen werde ich das On-Chip-OTG verwenden und eine
Device-Anbindung lässt sich auch über andere Schnittstellen
implementieren, so viel weiß ich bisher. Für den zweiten OTG-Host werde
ich dann wohl noch einen zweiten Controller reinsetzen, der die
Steuerdaten vom Handy/Tablet über I2C weitergibt.
Was die USB-Feinheiten betrifft, ist es vielleicht das schlaueste, sich
irgendwo mal passende Literatur anzuschaffen.
Matthias Sch. schrieb:> Eines der Hauptprobleme wird sein, die unterstützende Hardware zum> Scannen der Tasten zu planen. Egal, wieviele Ports der MC besitzt, es> sind zu wenige, um direkt für jede Taste einen Portpin zu spendieren> [...].> Da du vermutlich auch Velocity unterstützen möchtest, kann die richtige,> übersprecharme Hardware den Prozessor da gut unterstützen.
Wenn ich dich richtig verstanden habe, gehst Du bei der Tastatur von 88
Analog-Anschlüssen aus? Die braucht es nicht. Die Tastatur kann man
einfach digital über Schieberegister+SPI auslesen. Die Tasten senden
entweder einen Ein-Impuls oder betätigen zwei verschiedene Schalter. Aus
dem zeitlichen Abstand ergibt sich dann der Anschlag.
Also das mit den verschiedenen Controllern ist schon eine schwierige
Sache...
STM32 + Discovery am günstigsten
PIC24/32 + PicKit 3 am vielseitigsten für zukünftige Projekte
LPC mit Midibox und AOAA-Kit wohl am passendsten für dieses Projekt
Schwierig! :D
Hannes schrieb:> LPC mit Midibox und AOAA-Kit wohl am passendsten für dieses Projekt
Bei der Midibox:
http://www.ucapps.de/mbhp_core_lpc17.html
ist das Einstecken eines LPCXPRESSO vorgesehen. Du kannst aber
stattdessen auch das AOAA direkt damit verbinden. Oder Du kannst das
LPCXPRESSO nehmen und dort die AOAA Demo drauf laden, die ist frei d.h.
Du musst das AOAA nicht kaufen. Dann musst Du allerdings für das
LPCXPRESSO eine kleine Zusatzplatine mit USB-Host Stecker und
LM3526-Power-Switch machen. Dafür den AOAA Schaltplan nutzen.
> PIC24/32 + PicKit 3 am vielseitigsten für zukünftige Projekte
After 10 years of using the PIC as microcontroller for the MIDIbox
Hardware Platform, and living with all the limitations ...
Danke Hannes für den Wink mit Fatar, wenn man so ein Projekt machen
möchte dann scheint mir die Anlaufstelle sinnvoll, außer man hat die
Chance ein kaputtes Keyboard auszuschlachten, wenn es denn eine gute
Tastatur besitzt.
Hab mir mal die MidiBox angesehen und muß sagen das dort natürlich schon
ein richtig gutes Projekt vorliegt!
Sowas müßte man erstmal von A-Z bei den anderen Chips auf die Beine
stellen.
Bei der MidiBox kann man sich schon am geschrieben Code orientieren, das
ist eine riesige Hilfe...
Und dann nen ARM-Cortex, joar, das hat was.
Gruß
Beast
Nimm einen PIC24 mit 64 k Rom...Die sind eher viel zu schnell für das
bischen
Midi, sind gut verfügbar, relativ einfach zu beherschen und haben wie
schon gesagt 40 mips und neue E Typen haben 70 mips. Also hau rein und
gebe Bescheid beim Fertigstellen deines Projektes ...C ist kostenlos
samt MPLAB..
also los ....