Show Posts
Pages: 1 ... 3 4 [5] 6 7 8
61  International / Deutsch / Ascii value to char on: June 05, 2011, 11:59:22 am
Hallo,

Weiß jemand von euch wie ich zufällig einen Ascii value in einen char parsen kann?
Angenommen ich habe eine 109 und möchte diese gerne in ein "m" parsen.

Serial.print gibt mir leider nur die 109 aus und nicht das m was ich benötige.

Vielen Dank schonmal
Stefan
62  International / Deutsch / Re: Wireless LAN (WLAN) Shield in Verbindung mit iOS (iPhone, iPad, iPod touch, etc) on: May 15, 2011, 12:50:39 pm
So hier mal ein stückchen Code von mir um eine Teleskopmontierung mit dem Arduino und Redfly shield zu steuern.
Benutzen tue ich dafür im Moment HTML Formulare.

Code:
/*
  Web Server
 
 This sketch acts as a server
 using an Arduino RedFly-Shield.
 */

#include <RedFly.h>
#include <WProgram.h>
#include <soft_merlin_mount.h>

#define LED_Merlin_Connected 12
#define LED_Merlin_Move      13
#define LED_WLAN_Connected   11

byte ip[]      = {
  192,168,001,230}; //ip from shield (server)
//byte ip[]      = {192,168,1,101};
byte netmask[] = {
  255,255,255,0  }; //netmask

uint8_t   http=0xFF;   //socket handle
uint16_t  http_len=0; //receive len
char http_buf[64];   //receive buffer
char substring[32];

byte LED_on = 0;
byte TimerCounter = 0;

long pos_pitch = 0;
long pos_yaw = 0;

long startpoint_pitch = 0;
long startpoint_yaw = 0;
long endpoint_pitch = 0;
long endpoint_yaw = 0;

String readString = "";

uint8_t sock = 0, buf[32];

char* Button_Start  = "<form method=get><input type=submit name=MERLIN value=";
char* Ende   = "></form>";
char* Textbox_Start = "<form method=get><input type=text name=value size=25><input type=submit name=MERLIN value=";

void debugout(char *s)  {
  RedFly.disable();
  Serial.print(s);
  RedFly.enable();
}
void debugoutln(char *s){
  RedFly.disable();
  Serial.println(s);
  RedFly.enable();
}



void setup()
{
  uint8_t ret;

  pinMode(LED_Merlin_Connected, OUTPUT);
  pinMode(LED_Merlin_Move, OUTPUT);
  pinMode(LED_WLAN_Connected, OUTPUT);

  // Connect Merlin
  Merlin_Connect();
 
  //init the WiFi module on the shield
  //ret = RedFly.init(HIGH_POWER); //LOW_POWER MED_POWER HIGH_POWER
  ret = RedFly.init(115200, HIGH_POWER);
  if(ret)
  {
    //debugoutln("INIT ERR");
  }
  else
  {
    //scan for wireless networks (must be run before join command)
    RedFly.scan();

    //join network
    ret = RedFly.join("ABC", "***", INFRASTRUCTURE);
    if(ret)
    {
      //debugoutln("JOIN ERR");
    }
    else
    {
      ret = RedFly.begin(ip, 0, netmask);
      if(ret)
      {
        //debugoutln("BEGIN ERR");
        RedFly.disconnect();
      }
      else
      {
        http = RedFly.socketListen(PROTO_TCP, 80); //start listening on port 80
        if(http == 0xFF)
        {
          //debugoutln("SOCKET ERR");
          RedFly.disconnect();
        }
        else
        {
          //WLAN connected
          //debugoutln("connected");
          digitalWrite(LED_WLAN_Connected, HIGH);
        }
      }
    }
  }

  delay(500);
 
  digitalWrite(LED_WLAN_Connected, LOW);
  delay(500);
  digitalWrite(LED_WLAN_Connected, HIGH);
}


void loop()
{
  Webserver();
}


void Merlin_Connect()
{
  merlin.init();

  pos_pitch = merlin.readAxisPosition(AXIS_PITCH);
  pos_yaw = merlin.readAxisPosition(AXIS_YAW);

  if(pos_pitch > 0 && pos_yaw > 0) digitalWrite(LED_Merlin_Connected, HIGH);
}

void Merlin_Move(long degree, int move_direction)
{
  if(move_direction==0)
  {
    pos_yaw = pos_yaw + merlin.fromAngle(degree);
  }
  else
  {
    pos_pitch = pos_pitch + merlin.fromAngle(degree);
  }

  Merlin_Goto(pos_pitch, pos_yaw);
}

void Merlin_Goto(long pitch, long yaw)
{
  digitalWrite(LED_Merlin_Move, HIGH);
  merlin.driveToPositionBothAxis(yaw, pitch, SYNC_SYNCHRONY);
  digitalWrite(LED_Merlin_Move, LOW);

  pos_pitch = pitch;
  pos_yaw = yaw;
}

unsigned long ParseValueFromString(String string)
{
  unsigned long value = 0;
  int index = string.indexOf("value=");

  if(index >= 0)
  {
    for(int i = 0; i < 3; i++)
    {
      substring[i] = http_buf[index + 6 + i];
    }

    value = atol(substring);

    return value;
  }
  else
  {
    return 0;
  }
}


void Webserver()
{
  uint16_t rd, len;

  if(http == 0xFF) //no socket open
  {
    return;
  }

  sock = 0xff; //return data from all open sockets
  rd = RedFly.socketRead(&sock, &len, 0, 0, buf, sizeof(buf));

  if(sock == http)
  {
    if((rd != 0) && (rd != 0xffff))
    {
      if((http_len+rd) > sizeof(http_buf))
      {
        rd = sizeof(http_buf)-http_len;
      }
      memcpy(&http_buf[http_len], buf, rd);
      http_len += rd;
    }

    if((rd == 0xffff)  || (len == 0)) //connection closed or all data received
    {
      //debug request message from iPod
      //debugoutln("Request: ");
      //debugoutln(http_buf);

      readString = http_buf;

      if(readString.indexOf("GET / HTTP") >= 0)
      {
      }
      else if(readString.indexOf("UP") >= 0)
      {
        Merlin_Move(ParseValueFromString(readString),1);
      }
      else if(readString.indexOf("DOWN") >=0)
      {
        Merlin_Move(-1 * ParseValueFromString(readString),1);
      }
      else if(readString.indexOf("LEFT") >=0)
      {
        Merlin_Move(-1 * ParseValueFromString(readString),0);
      }
      else if(readString.indexOf("RIGHT") >=0)
      {
        Merlin_Move(ParseValueFromString(readString),0);
      }
      else if(readString.indexOf("Set_Start") >=0)
      {
        startpoint_yaw = pos_yaw;
        startpoint_pitch = pos_pitch;
      }
      else if(readString.indexOf("Set_End") >=0)
      {
        endpoint_yaw = pos_yaw;
        endpoint_pitch = pos_pitch;
      }
      else if(readString.indexOf("Goto_Start") >=0)
      {
        Merlin_Goto(startpoint_pitch, startpoint_yaw);
      }
      else if(readString.indexOf("Goto_End") >=0)
      {
        Merlin_Goto(endpoint_pitch, endpoint_yaw);
      }
      else
      {
      }

      Send_Main();

      //reset input buffer
      http_buf[0] = 0;
      http_len    = 0;
      readString = "";

      //close connection
      RedFly.socketClose(sock);

      //restart listening
      http = RedFly.socketListen(PROTO_TCP, 80);
    }
  }
}

void Send_Main()
{
  //HTML header
  RedFly.socketSend(sock, PSTR("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"), 46); //Content-Length: xx\r\n

  // Write Merlin position
  sprintf((char*)buf, "<br /> yaw: %lu ", pos_yaw);
  RedFly.socketSend(sock, (char*)buf);
  sprintf((char*)buf, "<br /> pitch: %lu ", pos_pitch);
  RedFly.socketSend(sock, (char*)buf);
  sprintf((char*)buf, "<br /> start_yaw: %lu ", startpoint_yaw);
  RedFly.socketSend(sock, (char*)buf);
  sprintf((char*)buf, "<br /> start_pitch: %lu ", startpoint_pitch);
  RedFly.socketSend(sock, (char*)buf);
  sprintf((char*)buf, "<br /> end_yaw: %lu ", endpoint_yaw);
  RedFly.socketSend(sock, (char*)buf);
  sprintf((char*)buf, "<br /> end_pitch: %lu ", endpoint_pitch);
  RedFly.socketSend(sock, (char*)buf);

  RedFly.socketSend(sock, "<br />");

  Send_Textbox("DOWN");
  Send_Textbox("UP");
  Send_Textbox("RIGHT");
  Send_Textbox("LEFT");

  Send_Button("Set_Start");
  Send_Button("Set_End");
  Send_Button("Goto_Start");
  Send_Button("Goto_End");
}

void Send_Textbox(char* Buttonname)
{
  RedFly.socketSend(sock, Textbox_Start);
  RedFly.socketSend(sock, Buttonname);
  RedFly.socketSend(sock, Ende);
}

void Send_Button(char* Buttonname)
{
  RedFly.socketSend(sock, Button_Start);
  RedFly.socketSend(sock, Buttonname);
  RedFly.socketSend(sock, Ende);
}




63  International / Deutsch / Re: Wireless LAN (WLAN) Shield in Verbindung mit iOS (iPhone, iPad, iPod touch, etc) on: May 10, 2011, 03:11:47 am
Also ich habe das RedFly erfolgreich mit Airport Extreme in Betrieb und als Ad-Hoc Modus mit einem iPod oder iPad.

Ich kann heute Abend gerne Sample Code bereitstellen wenn bedarf besteht.
64  Development / Other Hardware Development / Re: RedFly-Shield (WiFi/WLAN) on: May 08, 2011, 05:56:54 am
Hello,

Is there a possibility for you to provide a Sample for usage of the adhoc Mode of redfly shield?

Many thanks
Stefan
65  International / Deutsch / Re: Interrupt on: May 07, 2011, 12:03:56 pm
Danke Uwe, das hilft mir doch schon um einiges weiter, da ich keinen Interrupt per Pin auslösen möchte und es eigentlich ohne zusätzliche Hardware realisieren wollte.
66  International / Deutsch / Interrupt on: May 07, 2011, 10:11:41 am
Hallo

Kann mir zufällig jemand kurz erklären wie man Interrupts beim arduino nutzt? Ich habe eine Aktion, die ich unabhängig vom restlichen Code alle 500 ms ausführen möchte.

67  International / Deutsch / Zahl aus String parsen on: May 06, 2011, 02:58:19 pm
Hallo Leute,

ich würde gerne eine Zahl aus einem String herausparsen nur irgendwie will es nicht so recht klappen.

Der String hat folgendes Format: GET /?value=123&MERLIN=DOWN HTTP/1.1

und ich habs mit folgendem Code versucht:
Code:
int index = readString.indexOf("value=");
       
        if(index >= 0)
        {
          for(int i = 5; i < 4; i++)
          {
            substring[i] = http_buf[index + 6 + i];
          }

          unsigned long value = atol(substring);
        }


Könnt ihr mir sagen, was ich falsch mache?
68  International / Deutsch / LED Schalten mittels Webserver on: May 04, 2011, 03:14:16 pm
Hallo,

Weiß einer von euch zufällig wie ich mittels Webserver auf dem Arduino eine LED schalten kann oder der gleichen?

Ich habe hier eine einem Arduino Uno einen Webserver laufen, der mir Eingangswerte als Webseite an einen iPod liefert. Jetzt würde ich gerne noch eine LED schalten wenn es geht weiß aber absolut keinen Ansatzpunkt im Moment und würde mich über einen Codeschnipsel freuen.

Vielen Dank
Stefan
69  International / Deutsch / Re: Wireless LAN (WLAN) Shield in Verbindung mit iOS (iPhone, iPad, iPod touch, etc) on: May 04, 2011, 12:34:05 pm
So das RedFly shield ist heute angekommen und das fertig löten der Pins und das aufspielen der Sample sketches ging ohne Probleme. Mal schauen wies weiter geht. Ich werde berichten
70  Development / Other Hardware Development / Re: RedFly-Shield (WiFi/WLAN) on: May 04, 2011, 12:27:55 pm
If have just received the board from you and everything seems fine. do you have any code example like a simple turn on/off of an LED with the use as a WebServer?
71  International / Deutsch / Re: Wireless LAN (WLAN) Shield in Verbindung mit iOS (iPhone, iPad, iPod touch, etc) on: May 04, 2011, 09:02:58 am
Such mal nach dem RedFly Shield von Watterott, das habe ich mir heute schicken lassen und habe genau das selbe vor wie du, nämlich die Steuerung des Arduino über einen iPod Touch mittels WLAN und Webinterface auf dem Arduino.

Ansonsten bin ich auch sehr erfreut wenn jemand Ideen für einen Datenaustausch zwischen beiden Geräten hat.
72  International / Deutsch / Re: Bibliothek für das Touch Display MI0283QT-2 von Watterott on: May 01, 2011, 07:58:29 am
Also ich würde mich sehr über Beispielcode freuen.
73  International / Deutsch / Re: GEOGPS - Projektvorstellung on: April 25, 2011, 12:47:40 pm
Sieht sehr gut aus. Kannst du sagen was das Gelbe da auf dem Joystick vom Shield ist?
74  International / Deutsch / Re: Bibliothek für das Touch Display MI0283QT-2 von Watterott on: April 23, 2011, 03:47:00 am
Seh ich das richtig, das ich das Touch-Display auch ohne das mSD shield betreiben kann?
75  International / Deutsch / Re: Bibliothek für das Touch Display MI0283QT-2 von Watterott on: April 23, 2011, 03:39:48 am
Weißt du ob man an das Display auch Stiftleisten anlöten kann für die Kabelverbindungen oder sind dort an der Stelle keine Löcher? Ist leider auf dem Bild nicht wirklich erkennbar.
Pages: 1 ... 3 4 [5] 6 7 8