Forum: Mikrocontroller und Digitale Elektronik Welcher PIC/uC für Masterkeyboard?


von Hannes (Gast)


Lesenswert?

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...

von DK (Gast)


Lesenswert?

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 ;)

von Michael R. (mexman) Benutzerseite


Lesenswert?

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

von Hannes (Gast)


Lesenswert?

DK schrieb:
> STM32F4 Discovery 32bit 168MHz 1MB Ram, 0.5MB ROM, USB, USB-Host,
> integrierter Programmer, 10 Dollar. Günstiger geht nicht

ARM 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...

von Lothar (Gast)


Lesenswert?

Hannes schrieb:
> ein selbstgebautes Gerät mit einer selbst geschriebenen App zu steuern

Gibt es als Demo-Board mit Demo-APP und Schaltplan, und kann man dann 
als minimales Board selbst nachbauen:

http://www.embeddedartists.com/products/app/aoa_kit.php

von F. F. (foldi)


Lesenswert?

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?

von Hannes (Gast)


Lesenswert?

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.htm

Lothar 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!

von Andreas G. (beastyk)


Lesenswert?

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

von Klaus (Gast)


Lesenswert?

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

von Abdi (Gast)


Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von RomanK (Gast)


Lesenswert?

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

von Hannes (Gast)


Lesenswert?

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

von Lothar (Gast)


Lesenswert?

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 ...

von Andreas G. (beastyk)


Lesenswert?

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

von Maik W. (werner01)


Lesenswert?

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 ....

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
Noch kein Account? Hier anmelden.