Loading...
  Show Posts
Pages: 1 [2] 3
16  International / Deutsch / Re: Welche Literatur ist sinnvoll? on: December 30, 2012, 07:11:04 am
Hab auch ein bisschen Erfahrung mit Programmierung und ein bisschen Erfahrung mit Elektronik gehabt und habe auch mit Bartmann angefangen und es nicht bereut:
http://www.amazon.de/OReillys-basics-elektronische-Arduino-entdecken/dp/3897213192
Unter seiner Seite http://www.erik-bartmann.de/ gibt´s unter Downloads noch ein paar Erweiterungen, lies die einmal, damit du siehst, ob du mit seinem Stil klar kommst!
Ansonsten: Arduino Cookbook (gibt´s das auch auf Deutsch?) http://shop.oreilly.com/product/0636920022244.do

LG
Matthias
17  International / Deutsch / Re: Schleifenzähler addiert nicht. on: December 30, 2012, 06:26:57 am
Probier mal die Bedingung if(voltage < 0.2 ) zu testen, d.h. mach ein Serial.print(voltage) im Loop, ob diese Bedingung erfüllt wird. Ansonsten: nur mit diesem Codeschnippsel ist eine Fehleranalyse unmöglich. (z.B. wann "messen" auf 1 gesetzt wird).
LG
Matthias
18  International / Deutsch / Re: Kondensatoren als Spannungsglättung bei Stepsequencer on: December 29, 2012, 06:38:34 am
Tolless Projekt muss ich sagen.
Übrigens, Porexpander für den I²C Bus gibts für 5,6€ in der Bucht inkl. Versand nach Österreich

http://www.ebay.de/itm/I2C-IIC-I-C-PCF8574-P-Portexpander-DiL-DIP-8-Bit-I-O-Exp-Philips-PCF8574P-16-/170889561528?pt=Bauteile&hash=item27c9cfc5b8#ht_1071wt_1159

Danke! Finde ich ein bisschen überteuert, hab meine jetzt bei Tayda (verlässlich und schnell für Asien) bestellt:
http://www.ebay.at/itm/281041873128?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649#ht_1273wt_915
19  International / Deutsch / Re: Kondensatoren als Spannungsglättung bei Stepsequencer on: December 29, 2012, 06:06:17 am
@udo: ok, theoretisch ist´s mir klar, müsste ich nur mal in die Praxis umsetzen, d.h. es wäre dann vom Materialaufwand her eine Diode + ein Widerstand / Schalter. Anscheinend kann man die SR auf mit nur einem Pin ansteuern: http://www.openmusiclabs.com/learning/digital/input-matrix-scanning/hacks/
Beim Stepsequencer möchte ich halt so wenig (v.a. rechenintensiven) Code, wie nur möglich verwenden, werd mal mit dem Breadboard verschiedene Lösungen testen. Wie meinst die die Anbindung der SR mittels I2C?
@komika: Äh, ja, das mit der kleinen Tochter kenne ich und meine Frau will auch noch Aufmerksamkeit smiley D.h. zum Löten od. Basteln komm ich gar nicht mehr wirklich... Würde dir echt nur dringend die Lösung mit dem TimerOne zwecks "Masterclock" ans Herz legen. Da wird immer nanosekundengenau bis 8 gezählt, egal, welche Aufgabe gerade erledigt wird. Hab auch eine Idee in meinem Hauptcode, wo ich quasi Prioritäten setze:
Ist im Moment nur theoretisch, den praktischen Nutzen hab ich noch nicht erprobt. Die Idee dahinter ist, dass ich im Loop alle "unwichtigen" Funktionen (wie Tasten- Potiabfragen) nur jeden x-ten (ich hab mal 8 genommen) Durchlauf aufrufe, die zeitkritischen Midifausgaben werden jedesmal abgefragt:

Code:
void loop() {
  lauflicht();
savecpu++;
if (savecpu >= 8) // timing vs handling check out best value
{
 matrixbuttons_read();
  menubuttons_read();
  potivalues_read();
savecpu =0;
}
// midi functions
}
Anbei noch meine Masterclock Funktion, die nur aus ein paar Zeilen besteht:
Der Trick ist, dass Play und Stop mit einem einfachen Funktionsaufruf machen kann:
Play: clockwork() ;
Stop: stop_seq();

Code:
void songtempo_calc() // calculate nanoseconds from BPM
{
  Encoderwert=bpm;
  songtempo=(15000000/bpm);
  //songtempo= 1000000;
}
// ------------------------------------------------------------------------------------------------------
void clockwork_setup()
{
  //Timer setup: value = 1 microsecond = 1000 millisecond
  songtempo_calc();
  patternstep = 0;
  Timer1.initialize(songtempo); // 16tel: 15000/bpm *1000
  Timer1.attachInterrupt(clockwork); // attach the service routine here  
}
// end Timer setup
// ------------------------------------------------------------------------------------------------------

void clockwork() // Masterclock, zählt von 0-7.
{
  if (patternstep <7) patternstep ++;
  else patternstep = 0;

  // Toggle LED  digitalWrite( 13, digitalRead( 13 ) ^ 1 );
}
// ------------------------------------------------------------------------------------------------------
void stop_seq()
{
  Timer1.stop();
  patternstep=0;
  midi_allnoteoff();
  // writepattern();
}
// *** end timer function ***
Liebe Grüße
Matthias
20  International / Deutsch / Re: Kondensatoren als Spannungsglättung bei Stepsequencer on: December 28, 2012, 05:09:50 pm
@uwe: Ja, das mit den FRAM hab ich auch schon gelesen, NACHDEM ich die EEproms verlötet hatte und alles auf die optimiert hatte smiley Leider sind die verhältnismäßig teuer!
@komika:
komisch, meine Encoder funktionieren tadellos, kann sein, dass ich sowieso welche verwendet hatte (jaja, immer brav den Schaltplan nachschreiben beim löten....)
So einen billigen Mega hab ich auch, wollte aber es einfach komplett "selbst" bauen. Die Pins sind nur beim 328er ein Problem, da wird es echt eng, beim 1280er nicht. Für die analogen Potis verwende ich CD4051er, mit ein paar Zeilen Code mehr. D.h. 8 Potis für 3 digitale + 1 analogen Pin (je mehr man zusammenhängt, umso "billiger" wirds). Für die Shiftregister verwende ich eine Library, wo ich mit zwei Befehlen jedes LED einzen ansteuern kann: http://bildr.org/2011/08/74hc595-breakout-arduino/
Wegen Midi: Softserial (d.h. tx/rx mit jedem Pin möglich auch mehrfach) Library wäre ein Zauberwort, hab aber noch keine Erfahrung damit, v.a. wegen Miditiming usw.. Arduino - SoftwareSerial

LG
Matthias

21  International / Deutsch / Re: Kondensatoren als Spannungsglättung bei Stepsequencer on: December 28, 2012, 04:45:08 pm
Ich lese mir gerade deine Beitrag bzgl. Encoder durch - wofür sind die 10k Widerstände? Ich bin "faul" und verwende eine Encoder Library, die funktioniert ganz ok, ich muss jedoch bei meinen alle Werte durch 4 dividieren.
http://www.pjrc.com/teensy/td_libs_Encoder.html
Du willst lt. Projektseite 8 Encoder verwenden - zwingst du den Atmel damit nicht vollkommen in die Knie?
Billiger als eine Selbstklebefolie ist ein A4 Fotopapier (schön dick!), mit Tinte ausgedruckt und mit Sprühkleber befestigt. Vielleicht sogar noch Sprühlack als letzte Schicht darauf. Damit spar ich mir auch die Buttons (siehe Foto des Hauptgeräts), die drück ich mit dem Fotopapier durch, erinnert ein bisschen an die alten DX7 oder Alpha Juno´s smiley
Mit dem 2560er hast du ein bisschen mehr RAM "Luft", aber auch nicht berauschend. Mein Tipp, den ich mir beim Beat707 Projekt abgeschaut habe, ist mit I2C EEproms zu arbeiten. (Am besten immer mittels Pagewrite und pro Patternseite). Schreiben ist eher langsam, lesen kein Problem, va.. beim Patternwechsel in Echtzeit.
Als Timer"herzstück" verwende ich die TimerOne Library mit Interrupt, wo im Subprogramm immer - zeitgenau - bis acht gezählt wird. Die Midifunktion hab ich bis jetzt noch nicht programmiert, die wird zuletzt kommen, ist aber das geringste Problem.
Weil du auch in deinem Blog schreibst bzgl. SMD Version: Ja, den 2560er gibt´s nur als SMD, leider bin ich zu spät auf den hier gestoßen: http://maniacbug.wordpress.com/2011/11/27/arduino-on-atmega1284p-4/ gibt´s für 6 Euro bei Reichelt! Hat 16kb Ram, 128kb Flash, 4kb EEprom und 32 I/O Pins und ist in PDIP Ausführung. Lt. Recherche auch mit der Arduino IDE zum Laufen zu bringen.
Die Taster schauen cool aus, dürften aber der Entprellwahnsinn sein...

Bin ja mal gespannt, wie sich unsere beiden Projekte entwickeln werden!
Leider ist mein Code noch nicht fertig und schlecht dokumentiert und tw. noch hirnrissig programmiert, falls du doch die ein oder andere Idee verwenden willst: https://docs.google.com/folder/d/0B3sgtwOcRTSUeE0wMEF0MGpMMnM/edit

PS: Halte mich gar nicht an Korg usw, sondern bau mir "meinen" Sequencer zusammen, irgendeinen Vorteil soll unsere Bastelei ja haben!

@Uwe: Kein Problem!
22  International / Deutsch / Re: Kondensatoren als Spannungsglättung bei Stepsequencer on: December 28, 2012, 03:36:53 pm
Verwendest du einen Bohrständer oder freestyle? smiley Hab mir jetzt extra einen zugelegt, weil ich mit der Hand nicht gerade bohren konnte
Buttons waren sicher teurer - sind die mit LED´s?
Zwecks interesse, was kann dein Stepsequencer?
Geb mal die Eckdaten von meinem her:
Keymatrix: 4x8 Steps (d.h. 4 Reihen)
Unterteilung in:

Pattern: klassischer Patternmodus bis zu 16 Parts pro Song
pro Pattern 5 Parts:, davon:
2x Drumparts: jeder Drumpart besteht aus 4x8 Steps, mit den Potis wird die Velocity eingestellt (Midichannel + note number frei definierbar)
3x "Melody"parts: Stepbuttons regeln 1-4 Notekeys, d.h. 4 fach polyphon pro Step. Potis können nach Reihen eingestellt werden, d.h. entweder: Velocity (für alle 4 Noten zusammen), Pitch, Length, 4x frei definierbare (d.h. pro Pattern) Controller

Song: (max 7 pro EEprom)
(fixe) Aneinanderreihung von Parts, Potis sind komplett frei (Midichannel, Typ)

Performance:
ähnlich wie Songmodus, nur kann mittels der Steptasten das nächste Pattern vorgewählt werden

Die größte Hürde war der kleine RAM Speicher von 2kb, da muss ich permanent in die I2C EEprom´s auslagern (immer pro Pattern, der Lebensdauer zuliebe)
Als Eingabe verwende ich 16 Menütasten + einen Encoder, sowie die analogen Potis.
Das Ding ist eigentlich ein gewachsener Prototyp, quasi überhaupt mein erstes Arduino Projekt, wollte wissen, was mit dem kleinen Käfer alles zu bewerkstelligen ist. Als  nächstes Projekt werden sicher 16 Steps kommen, dafür nur 1x16 Buttons (4x16 wäre ein Lötwahnsinn, v.a. auf Loch/streifenraster).

Kleiner Tipp: Sehe, dass du es mit Bleistift und Lineal die Bohrungen aufzeichnest, ich verwende ein einfaches Zeichenprogramm und drucke es auf Laserklarsichtfolie auf, Klebebandstreifen und fertig.
23  International / Deutsch / Re: Kondensatoren als Spannungsglättung bei Stepsequencer on: December 28, 2012, 02:39:14 pm
Lieber Uwe, meine Antwort bezog sich auf das Posting von Udo smiley
Hab mir mal 10 Stück von den MCP23017´s bestellt (1,5 Euro/Stk, Versandkostenfrei) smiley-wink Die kann ich immer brauchen. V.a. in diesem Projekt hab ich schon IC2 Eproms, d.h. ich gewinne sogar einen zusätzlichen Pin.
Wichtig ist mir, dass ich nicht das Gesamtkonzept verwerfen muss und das fertige Mainboard  ändere (Step Buttons sind glücklicherweise mit den LED´s auf einer anderen Platine)
Theoretisch, wenn ich als Inputs HC165 nehme, kann ich sicher von den vorhandenen 595er 1-2 Pins (Clock) "abzweigen" und dies programmtechnisch lösen. Sauberer wäre wohl der/die MCP23017

Zwecks besserer Beschreibung, kurz meine Auflistung der Pins:
Pin A0= analoge Potis (durch Multiplexer)
Pin A1= Seq Buttons (würde frei werden)
Pin A2= Control Buttons (die funktionieren mittels Spannungsteiler ohne Probleme = 16 Stk, sind auch 1% Widerstände)
Pin A3= free
Pin A4=Eeprom I (I2C)
Pin A5=Eeprom II (I2C)
Pin D0=RX (Midi)
Pin D1=TX (Midi)
Pin D2= DS (shift register)
Pin D3= ST_CP (shift register)
Pin D4= SH_CP (shift register)
Pin D5 = Encoder I
Pin D6 = Encoder II
Pin D7 = LCD I ( LiquidCrystal595 Lib)
Pin D8 = LCD II ( LiquidCrystal595 Lib)
Pin D9 = LCD III ( LiquidCrystal595 Lib)
Pin D10 = Multiplexer I
Pin D11 = Multiplexer II
Pin D12 = Multiplexer III
Pin D13 = free (maybe control LED)

Liebe Grüße
Matthias
24  International / Deutsch / Re: Kondensatoren als Spannungsglättung bei Stepsequencer on: December 28, 2012, 11:34:58 am
yep, das hab ich auch bemerkt, dass 32 Buttons mittels Spannungsteiler ein Quirks sind.
Du meinst mittels 74HC165 + Matrix? Wie kommst du auf 2 Pins? (Ich komme auf 3)
Hab mir auch überlegt, es mit 74C922N Key Encoder zu lösen, finde aber so schnell keine Schaltpläne...
Die dritte Lösung, die mir noch einfiel, fällt leider flach: Ich hab eine alte serielle Tastatur ausgeschlachtet, nur wird meine serielle Schnittstelle schon für Mididaten verwendet und diese haben höchste Priorität.

LG
matthias
25  International / Deutsch / Re: Kondensatoren als Spannungsglättung bei Stepsequencer on: December 28, 2012, 09:30:54 am
Kannst du ja mal auf Vorrat kaufen smiley
Bestell gut 80% meiner Elektronikartikel (Widerstände, Kondensatoren, IC Sockel, Stecker, Schalter, Arduino Erweiterungen, IC´s, EEproms, usw..) über Ebay, immer mit "Versandkostenfrei", da hab ich keine bösen Überraschungen. Hab schon gut 40 Pakete erhalten, nur eines nicht (LED´s um 2 Euro). Kostenersparnis zu Conrad/Reichelt etc.. gut 80-95%!!!
26  International / Deutsch / Re: Kondensatoren als Spannungsglättung bei Stepsequencer on: December 28, 2012, 07:30:10 am
Ebay.
Gib einfach bei Ebay ein:
"Tact Switches" und wähle "kostenlose Lieferung" aus, da kommen massig Seiten aus Fernost.
Tipp: nimm immer gleich die Switches mit Button gemeinsam!

Die, die ich jetzt bestellt hab (nicht auf dem Foto), haben gute Qualität und kosten einen Spottpreis (versandkostenfrei)
Lieferzeiten sind jedoch zwischen 3 und 6 Wochen!
http://www.ebay.at/itm/330811317953?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649#ht_1935wt_962
http://www.ebay.at/itm/330811318671?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649#ht_2053wt_962
http://www.ebay.at/itm/330811319152?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649#ht_2039wt_962 (blau mit LED!)

Starte mal einfach hier:
http://stores.ebay.at/jumbo4u/_i.html?_nkw=tact+switch&submit=Finden&_sid=1043007519

LG
Matthias
27  International / Deutsch / Re: Kondensatoren als Spannungsglättung bei Stepsequencer on: December 27, 2012, 06:25:50 pm
Wie gesagt, beim R2/R Netzwerk les ich mich noch besser ein!
Ja, in AT/DE hat man bei vielen Elektronikversandhändlern das Problem, dass man Geschäftskunde sein muss und es wird auch  nachgeprüft (Ust ID), RS verschickt definitiv nicht nach AT... Eine gute, fast perfekte,  Liste ist unter http://www.mikrocontroller.net/articles/Elektronikversender zu finden.

LG
Matthias
28  International / Deutsch / Re: Kondensatoren als Spannungsglättung bei Stepsequencer on: December 27, 2012, 05:59:42 pm
Danke noch einmal für die rasche Antwort!

- Prinzipiell brauch ich überhaupt keine Mehrfachbetätigung

- Bezüglich R/2R Netzwerk: werde ich mir einfach einlesen, bevor ist unnötige Fragen stelle smiley nur bei Einzeltasterbetätigung wären es doch 1024 Werte oder?

- Distrelec + RS schickten, soweit ich mich erinnern konnte, nicht an Privatkunden...distrelec jetzt anscheinend schon lt HP

- Mit den Wertebereich hast du natürlich recht, hab gut 500 als unterste Schwelle genommen, die gar nicht notwendig ist...muss sowieso die ganze Matrix überdenken, hab jetzt auch bessere Tact switches zuhause liegen...nur bis ich das alle neu aufgebaut habe (v.a. in Betracht ziehend, dass sowieso eine 16 Button/Poti Reihe sinnvoller wäre, war halt mein erstes Arduino Projekt, wo ich eher blöd darauf los gebastelt habe u.v.a. dass meine 5 Monate alte Tochter mir eh keine Freizeit gönnt), vergehen sicher etliche Wochen smiley

Liebe Grüße

Matthias
29  International / Deutsch / Re: Kondensatoren als Spannungsglättung bei Stepsequencer on: December 27, 2012, 04:58:43 pm
Das mit der Ref-Spannung wäre eine Idee!
Ein I2C Port Expander hab ich mir auch schon überlegt, aber ich wollte die Kosten minimiert, v.a. sind die Port Expander schwer(er) erhältlich und nach Österreich zahl ich immer Phantasieversandkosten (10-15 Euro). Schade, weil am A4/A5 hängen eh schon zwei I2C EEproms.
Den gesamten Wertebereich wollte ich nicht ausschöpfen, da die Tact-Switches, die ich verwendet habe, eher ungenau sind und somit hab ich einen höheren Treshold Wert, dazu mein "Aha-Erlebnis gerade eben:
Hab die Buttons mittels einfachem Spannungsteilerprinzip realisiert (Schema: Anhang), R/2R Netzwerk klingt da  interessanter, wären halt 64 Widerstände. Welchen Vorteil würde das R/2R ergeben, v.a. punkto Genauigkeit, bzw. Entprellen?


Danke u. LG
Matthias
30  International / Deutsch / Re: Kondensatoren als Spannungsglättung bei Stepsequencer on: December 27, 2012, 03:46:45 pm
Super! 1000 Dank für eure Antworten!
Das DSE-FAQ war genau, wonach ich suchte. Denk einmal, dass ich das Layout noch leicht verbessern muss. Kritisch dürfte es nicht sein, wenn ich´s sogar mit einem langsamen Elko "ausgeglichen" hab. Gesamtverbrauch muss ich mir erst ausrechnen, spendiere den 3mm LED´s jedoch wenig Strom (d.h. höherer Widerstandswert, da ich sie nicht an der Leistungsgrenze hell haben will).

Leider ist mir beim Durchtesten noch eine Frage gekommen, die betrifft die Buttons (32), die ich, mangels I/O Pins, mittels Spannungsteiler realisiert habe:
Je mehr LED´s leuchten, d.h. je höher der Stromverbrauch, desto gravierender werden die Werteänderungen, jedoch leider nicht gleich, Beispiel:
Ich hab folgende Fixwerte errechnet (wenn alle LED´s aus sind):
const prog_uint16_t buttonmapping[]PROGMEM= {
  1017,992,964,938,912,889,866,843,823,805,787,769,752,735,721,705,692,678,665,652,640,628,616,605,594,584,576,566,557,548,538,530};

D.h. 1017 als höchsten Spannungsteilerwert, 530 als niedrigsten.
Sobald alle LED´s leuchten, ist der höchste Wert 1012, der niedrigste 542, d.h. sie verhalten sich antiproportional.
Die einzige Lösung, die mir einfällt ist, dass ich mehrere Wertetabelle erstelle, und in Abhängigkeit der leuchtenden LED´s verwende. Ideal ist dies natürlich nicht.
PS: Hab mal als Anhang zwei kleine Fotos des Prototypen gemacht!

Danke!

Liebe Grüße
Matthias
Pages: 1 [2] 3