Show Posts
Pages: 1 [2] 3
16  International / Deutsch / Re: homecontrol4me - Zeitplan einrichten on: January 08, 2013, 03:47:17 pm
Hast du evtl. einen passenden Link? Ich habe nur den Thread gefunden, wo sowas geplant wird, aber noch nicht umgesetzt wurde.

Ab V2(Ende des Jahres) soll wohl die Funktion standardmäßig enthalten sein.
17  Using Arduino / Motors, Mechanics, and Power / Re: Fast stepper library for 6 steppers at same time with controler (Step/Dir) on: January 05, 2013, 11:08:18 am
Hi,
did you find any library which suits your requirements?

I´am also searching for a library with the requirements above.
18  International / Deutsch / homecontrol4me - Zeitplan einrichten on: January 05, 2013, 07:18:22 am
Hallo,
ich benutze HC4M:
http://www.homecontrol4.me/de/

um meine Lampen, PC etc. per Androidphone zu steuern.

Nun würde ich gern einen Zeitplan einrichten, sodass die Lampen zu einer bestimmten Uhrzeit ein- und ausgeschaltet werden. Eine DS1307 RTC ist bereits vorhanden.

Mein größtes Problem ist nun, wie ich in der Weboberfläche die entsprechenden Buttons hinzufüge und mit der RTC so verknüpfe, dass entsprechend geschaltet wird.

Ich habe mir zwar schon die Codes angeschaut, blick jedoch überhaupt nicht durch, welcher Teil für was ist. Im HC4M-Forum gibt es leider auch keine Lösung für meine gewünschte Funktion.

Hat sich jmd. schon mal mit der Thematik beschäftigt?
19  International / Deutsch / Re: AH_Pololu - on: January 04, 2013, 10:11:41 am
Ok, ich habe vor bis zu 5 Schrittmotoren gleichzeitig anzusteuern.

Welche Library eignet sich da am besten?

Ich hatte mir AccelStepper angeschaut, blick da jedoch überhaupt nicht durch.
Ziel  ist eine Steuerung für Timlapse-Aufnahmen, also Bewegung-->Pause-->Bewegung.

Da ich "Kurven fahren" möchte, brauche ich für jede Bewegung eine andere Anzahl an Schritten. Diese Schritte sind in einer txt-Datei gespeichert und sollen bei jedem Durchlauf ausgelesen und durchgeführt werden.

Die Library soll einfach nur eine konstante Geschwindigkeit liefern und mir die Möglichkeit bieten eine bestimmte Anzahl von Schritten zu fahren. Bei AccelStepper habe ich das irgendwie nicht hinbekommen, die Beschreibung auf deren Seite ist ziemlich unverständlich für Anfänger, auch mit dem Beispielen konnte ich mein Ziel nicht erreichen,
20  International / Deutsch / Pololu A4988 - mehrere Stepper ohne Delay ansteuern on: January 04, 2013, 05:46:47 am
Hallo,

ich benutze den Pololu A4988 und habe folgende Library gefunden:
http://arduino.alhin.de/index.php?n=48

Für mich ist es nicht ganz ersichtlich, ob die Library den Code an irgendeiner Stelle block/pausiert, oder ob alles gleichzeitig ausgeführt wird.

Zumindest habe ich kein delay() in der Library gefunden.

Da ich u.a. ein LCD-Display benutze, muss der Code so sein, dass es nicht blockt.
21  Using Arduino / Programming Questions / Re: SplinesMaster Library - How the add additional graphes? on: December 30, 2012, 12:25:57 pm
I dont want 6 dimensions, I need 5 2D graphes.
It should look like the graph in the picture
22  Using Arduino / Programming Questions / Re: SplinesMaster Library - How the add additional graphes? on: December 30, 2012, 08:22:35 am
Calculating the values and storing it to the SD works fine, but I´ve only tried with one graph, as in the catmull-example. Now I want to calculate 4 other graphes at the same time.

Here is the original example:

Code:
  float x[7] = {-1,0,1,2,3,4, 5};
  float y[7] = { 0,0,8,5,2,10,10};
  tempCurve.setPoints(x,y,7);
  tempCurve.setDegree( Catmull );
 
  for( float i = 0; i <= 4; i+= .1 ) {
    float temp = tempCurve.value(i);
    Serial.print(i);
    for(float j=0; j<= temp; j += .2) {
      Serial.print( "*" );
    }
    Serial.print( "   " );
    Serial.println(temp);
  }

The function in the for-loop only calculates the values for x and y.

Now I want to have a working code which looks like this:

Code:

float u[7] = {-1,0,1,2,3,4, 5};
float v[7] = { 0,0,8,5,2,10,10};
float w[7] = { 0,0,8,5,2,10,10};
float x[7] = {-1,0,1,2,3,4, 5};
float y[7] = { 0,0,8,5,2,10,10};
float z[7] = { 0,0,8,5,2,10,10};
  tempCurve.setPoints(u,v,w,x,y,z,7);
  tempCurve.setDegree( Catmull );
 
  for( float i = 0; i <= 4; i+= .1 ) {
    float temp = tempCurve.value(i);
    Serial.print(i);
    Serial.print( "   " );
    Serial.println(temp);

And temp should output the values for u,v,w,y and z. Now my problem ist, that I don´t know which parts of the  main code I have to modify to add additional graphes.
23  Using Arduino / Programming Questions / SplinesMaster Library - How the add additional graphes? on: December 30, 2012, 03:59:53 am
Hi,
I am using the SplinesMaster Library to control stepper motors:
https://github.com/kerinin/arduino-splines

It works fine with one motor, but now i want to use up to five motors. To get better performance from the arduino, I want to calculate the values in advance, save them in a txt-file on a SD-card and read them when its necessary.

It should look like this:

X U V W Y Z
-------------
0 0 0 0 0 0
1 2 3 4 5 6
2 4 8 10 12 16
3 1 2 2 3 4
...
1200 1000 500 200 800 300

U,V,W,Y and Z depend on X, which is the current position from the stepper.

Now I need your help:

What is the easiest way to add additional graphes(U,V,W and Z) and save them as mentioned above?

I want to use 9 points (incl. the both Catmull points at the ends).
24  International / Deutsch / in txt-Datei schreiben und lesen on: December 28, 2012, 08:23:26 am
Hallo,
ich plane grad ein Projekt, bei dem ich bis zu 5 Schrittmotoren verwende. Da ich Wegpunkte abfahren möchte, benutze ich zusätzlich die Arduino Splines-Library (https://github.com/kerinin/arduino-splines).

Da jeder Punkt von der Splines-Library berechnet werden muss, ist diese ziemlich rechenintensiv. Vor allem, wenn alle 5 Schrittmotoren verwende.

Ich kann mir nicht vorstellen, dass die Berechnung von einem Arduino Uno / Mega 2560 so schnell stattfindet, dass ich annährend Echtzeit bekomme.

Nun hab ich die Idee, die ganzen Punkte in folgendem Format vorher berechnen zu lassen, in einer txt-Datei zu speichern und später einfach abzurufen:

Code:
X U V W Y Z
-------------
0 0 0 0 0 0
1 2 3 4 5 6
2 4 8 10 12 16
3 1 2 2 3 4
...
1200 1000 500 200 800 300

Wie rechenintensiv ist es für den Arduino aus einer solchen Datei die Werte auszulesen?
Ich schätz mal um ein SD-Karten Modul komme ich nicht herum, oder? Eine Beispieldatei hatte ca. 50 KB.
25  International / Deutsch / 3 Schrittmotoren gleichzeitig ansteuern (Unterschiedliche Geschwindigkeiten) on: December 16, 2012, 12:14:36 pm
Hallo,
ich plane grad eine Vorrichtung, mit der automatische Kamerafahrten möglich sind. Dazu habe ich eine Schiene(Translation) und einen Panoramakopf (Drehung horizontal und Schwenken nach oben/unten).

Zum einen soll es für Timelapse verwendet werden und zum anderen für normale Videos.

Definition Timelapse:
Kamera löst aus --> Wenn das Bild fertig ist, erfolgt die Bewegung mit der Vorrichtung --> Kurze Wartezeit um Schwingungen abzuschwächen --> Kamera löst aus --> ...

Bei normalen Videos ist es einfach eine kontinuierliche Bewegung.

Ich bin Arduino-Anfänger, daher noch nicht mit allen Funktionen bzw. 100% mit der Programmierung vertraut.

So nun zum meinem Problem, bei dem ich überhaupt nicht weiß, wie man es am einfachsten umsetzen kann. Hier mal mein Ansatz:
Ich möchte vor der Aufnahme die Start-, Zwischen- und Endposition festlegen. D.h. über die manuelle Ansteuerung an die entsprechende Position fahren. Im Anhang ist ein Bild zur Verdeutlichung.

Position 0: Alle Achsen sind ausgerichtet --> Zähler für Schritte der Motoren werden auf 0 gesetzt.
Position 1: Nun werden die Achsen per Joystick oder Tasten auf die Zwischenposition gefahren. Der Joystick/Tasten verstellen dabei die Zähler für die Schritte. Wenn die Position erreicht ist, werden die 3 Werte gespeichert.
Position 2: das gleiche wie bei Position 1

Der Arduino hat also nun die Werte, die in der Tabelle stehen. Mein größtes Problem ist nun, wie ich diese Werte so verarbeite, dass eine "schöne Kurve" entsteht, also entsprechend dem Diagramm. Gibt es da schon eine fertige Library oder wie löse ich das am einfachsten?
26  International / Deutsch / Klatschsensor - Auslösen erst nach bestimmter Anzahl von Geräuschen on: October 05, 2012, 05:32:50 pm
Hallo,

ich habe mir einen Klatschschalter nach folgendem Vorbild gebaut:
http://itp.nyu.edu/physcomp/sensors/Reports/CondenserMicrophones

Funktioniert auch alles soweit, jedoch möchte ich die Funktion etwas abändern: und zwar soll beim ersten Geräusch ein Ausgang auf HIGH geschaltet werden, und beim 2. Geräusch ein zweiter Ausgang.

Hier mal der Code, wie er momentan funktioniert.

Code:
   
const int mikroIN = A4;     // Mikrofon
int mikroValue = 0; 
mikroValue = analogRead(mikroIN);

 lcd.setCursor(13,0);
    lcd.print(mikroValue);
   
    lcd.setCursor(0,1);
    lcd.print("[ms]:");
    lcd.setCursor(7,1);
    lcd.print(soundverzoegerung);
    lcd.setCursor(13,1);
    lcd.print(schwelle);

    if(mikroValue >= schwelle)
    {
      delay(soundverzoegerung);
      lcd.setCursor(3,0);
      lcd.print("--SOUND--");
      if (einaus == 1)
      {
        digitalWrite(optoflash, HIGH);
        delay(100);
        digitalWrite(optoflash,LOW);
        delay(5000);
      }
      else
      {
        digitalWrite(optoflash,LOW);
        delay(1000);
      }
      lcd.clear();
    }
    else
    {
      digitalWrite(optoflash,LOW);
      lcd.setCursor(5,0);
      lcd.print("READY");
    }

Nun habe ich folgendes ergänzt/probiert:

Code:
int count = 0;

    if(mikroValue >= schwelle)

{
count++;
}

switch(count)
{
case 0:
//Ready-Anzeige auf dem LCD
break;

case 1:
digitalWrite(Ausgang1,HIGH);
delay(100);
digitalWrite(Ausgang1,LOW);
break;


case 2:
//Code der bereits oben steht
count=0;
break;

}

}

Irgendwie will das aber nicht. Ich hatte auch probiert mir den aktuellen Zustand von Count auf dem LCD anzeigen zu lassen, jedoch hat es nie übereingestimmt. Habe ich was mit count++ falsch gemacht, oder wieso will er zwischen den 3 Fällen bei jedem Klatschen nicht wechseln?

27  International / Deutsch / Re: Endschalter programmieren on: September 30, 2012, 06:06:09 am
Von der Siemens LOGO-Steuerung kenne ich eine Funktion die sich "Flankengetriggertes Wischrelais" bzw. Impulsausgabe nennt.

Also genau das, was ich brauche:
Kommt ein Signal an und wird gehalten(wie es bei meinem Endschalter der Fall ist), wird von der Funktion ein Impuls einer definierten Länge ausgegeben und so ein Taster simuliert.

Die Funktion, die ich für die Richtungswechseltaste benutze:

Code:
case btnRICHTUNG:
    {
      einaus = 0;
      digitalWrite(rechtslauf,LOW);
      digitalWrite(linkslauf,LOW);
      analogWrite(motoreinaus,0);
      delay(300);

      switch (richtung)
      {
      case 0:
        {
          lcd.clear();
          richtung=1;
          delay(300);
          break;
        }
      case 1:
        {
          lcd.clear();
          richtung=0;
          delay(300);
          break;
        }
      }
      break;
    }

Wie kann ich dafür sorgen, dass diese Funktion nur 1x ausgeführt wird, wenn der Endschalter betätigt ist?
28  International / Deutsch / Re: Endschalter programmieren on: September 29, 2012, 10:07:24 am
Die beiden Endschalter gehen zum gleichen Eingang, es wird also nicht zwischen den beiden Schaltern unterschieden. Solang ein Richtungswechsel erfolgt, spielt das ja auch keine Rolle.
29  International / Deutsch / Endschalter programmieren on: September 29, 2012, 08:36:20 am
Hallo,
irgendwie stehe ich grad auf dem Schlauch bei einer eigentlich ganz einfachen Aufgabe.

Und zwar habe eine Schiene, einen Schlitten und je einen Endschalter am Ende. Wenn der Schlitten den Endschalter erreicht, soll der Motor ausgehen. Wenn ich den Einschalter drücke, soll der Motor wieder in die andere Richtung fahren.

Was ich bisher benutzt habe (Ein-/Ausschalten per Tastendruck, Richtungswechsel manuell über andere Taste):

Code:
    if (einaus ==0)   // Motor ausschalten,  wenn Einschalter auf Aus ist
    {
      digitalWrite(rechtslauf,LOW);
      digitalWrite(linkslauf,LOW);
      analogWrite(motoreinaus, 0);
    }
    else
    {

      if( richtung == 0)  // Rechtslauf einschalten
      {
        digitalWrite(linkslauf,LOW);
        digitalWrite(rechtslauf,HIGH);
        analogWrite(motoreinaus, pwmMotor);
      }
      else   // Linkslauf einschalten
      {
        digitalWrite(rechtslauf,LOW);
        digitalWrite(linkslauf,HIGH);
        analogWrite(motoreinaus, pwmMotor);
      }
    }

Code:
  case btnRICHTUNG:  // Taste für Richtungswechsel
    {

      switch (richtung)
      {
      case 0:
        {
          lcd.clear();
          richtung=1;
          delay(300);
          break;
        }
      case 1:
        {
          lcd.clear();
          richtung=0;
          delay(300);
          break;
        }
      }
      break;
    }

Ich hatte schon probiert über eine Oder-Bedingung (Einschalter aus oder Endlage ein) das Problem zu lösen. Der Motor geht zwar dann aus, wie ich ihn aber wieder anbekomme, fällt mir bei besten Willen nicht ein.

Meine Idee war es eine Variable zu erstellen, die 1 ist, sobald die Endlage erreicht ist und durch den Einschalter wieder auf 0 resettet wird. Da es sich ja um einen Schalter handelt, wird ja permanent ein Signal gesendet, die Variable ist also immer 1, egal was ich mache. Ich bräuchte irgendwie ein "Tasterverhalten".

Das mit dem Richtungswechsel wäre dann nämlich auch zu realisieren, da ja die Aktion nur einmal ausgeführt wird.
30  International / Deutsch / Re: LCD-Display "stürzt ab", sobald Motor anläuft on: September 27, 2012, 11:48:23 am
Ich hab nun einen 100 mikroF Elko in der Nähe der 12V-Zuleitung für den L293 eingebaut. Seitdem tritt der Fehler nicht mehr auf.

Zusätzlich habe je einen 100nF Kondensator an die Motoranschlüsse des L293 eingebaut.

Lohnt es sich noch irgendwo Kondensatoren zur "Bereinigung" einzubauen?
Pages: 1 [2] 3