Покажи участието

От тук може да видиш всички публикации на този потребител.


Публикации - vranjastena

Страници: [1] 2
1
Ардуино (Arduino) / Arduino+IR Sensor
« -: Юли 09, 2013, 12:57:54 pm »
Здравейте.Имам следният въпрос.Използвам gp2y0a41sk0f-4см-30см и Ардуино Уно. Искам да ми изкарва данните в сантиметри.Използвам следната програма #define numberOfSensors 2
int ir1 = A1;  
 
void setup() {
  Serial.begin(38400);                            
}
void loop() {
  float volts = analogRead(ir1)*0.0032226;
  float distance = 20.3*pow(volts, -1.10);  
  Serial.print(distance);
 
  delay(250);                                    
}
.Стойностите,който получавам имат голяма грешка,около 2 см.Опитах да променям коефициентите,който са взети от характеристиките на сензора,но грешката не се променя.Тя е от порядъка на 2 см.Някакви предложения или идеи?

Благодаря.

2
Ардуино (Arduino) / Arduino+Proccesing
« -: Юли 08, 2013, 05:27:22 pm »
Здравейте.Не съм много добър по програмирането.Използвам следната програма за чертаене на графика Proccesing и този сорс код.:

import processing.serial.*;
 
int maxNumberOfSensors = 6;       // Arduino has 6 analog inputs, so I chose 6
boolean fontInitialized = false;  // whether the font's been initialized
Serial myPort;                    // The serial port
 
float[] previousValue = new float[maxNumberOfSensors];  // array of previous values
int xpos = 0;                     // x position of the graph
PFont myFont;                     // font for writing text to the window
 
void setup () {
  // set up the window to whatever size you want:
  size(1500, 600);        
  // List all the available serial ports:
  println(Serial.list());
  // I know that the first port in the serial list on my mac
  // is always my  Arduino or Wiring module, so I open Serial.list()[0].
  // Open whatever port is the one you're using.
  String portName = Serial.list()[0];
  myPort = new Serial(this, portName, 38400);
  myPort.clear();
  // don't generate a serialEvent() until you get a newline (\n) byte:
  myPort.bufferUntil('\n');
  // create a font with the fourth font available to the system:
  myFont = createFont(PFont.list()[3], 14);
  textFont(myFont);
  fontInitialized = true;
  // set inital background:
  background(0);
  // turn on antialiasing:
  smooth();
}
 
void draw () {
  // nothing happens in the draw loop,
  // but it's needed to keep the program running
}
 
void serialEvent (Serial myPort) {
  // get the ASCII string:
  String inString = myPort.readStringUntil('\n');
 
  // if it's not empty:
  if (inString != null) {
    // trim off any whitespace:
    inString = trim(inString);
 
    // convert to an array of ints:
    int incomingValues[] = int(split(inString, ","));
 
    // print out the values
    //  print("length: " + incomingValues.length + " values.\t");
    if (incomingValues.length <= maxNumberOfSensors && incomingValues.length > 0) {
      for (int i = 0; i < incomingValues.length; i++) {
 
        // map the incoming values (0 to  1023) to an appropriate
        // graphing range (0 to window height/number of values):
        float ypos = map(incomingValues, 0, 1023, 0, height/incomingValues.length);
 
        // figure out the y position for this particular graph:
        float graphBottom = i * height/incomingValues.length;
        ypos = ypos + graphBottom;
 
        // make a black block to erase the previous text:
        noStroke();
        fill(0);
        rect(10, graphBottom+1, 110, 20);
 
        // print the sensor numbers to the screen:
        fill(255);
        int textPos = int(graphBottom) + 14;
        // sometimes serialEvent() can happen before setup() is done.
        // so you need to make sure the font is initialized before
        // you text():
        if (fontInitialized) {
          text("Sensor " + i + ":" + incomingValues, 10, textPos);
        }
        // draw a line at the bottom of each graph:
        stroke(127);
        line(0, graphBottom, width, graphBottom);
        // change colors to draw the graph line:
        stroke(64*i, 32*i, 255);
        line(xpos, previousValue, xpos+1, ypos);
        // save the current value to be the next time's previous value:
        previousValue = ypos;
      }
    }
    // if you've drawn to the edge of the window, start at the beginning again:
    if (xpos >= width) {
      xpos = 0;
      background(0);
    }
    else {
      xpos++;
    }
  }
}


Данните идват от Arduino посредством Bluetooth. Въпроса ми е ,някой може ли да ми каже има ли начин,по който да ми излизат по X ,Y някакви цифрови означения,за да мога от графиката да виждам стойността.
Благодаря предварително.

3
Благодаря на всички,най-накрая стана,сложих бод 38400 и bluetooth servises от настроиките на модула никога си ги държа пуснати на монитора,иначе се губи комуникацията.Единствеото което е чепроцесинг не може да ми намери порта и съответно не се чертаят графики на бял кахър.Още венъж Благодаря!  :)

4
С който и сериен монитор да гледам,все ми казва че порта или не съществува или се използва вече.Поскоро е второто ама незнам от какво точно се използва този порт,някакви предложения?

5
много интересно,когато отворя команд мод и серииен порт ми позволява да пускам АТ команди,но изведнъж спира и дава error(0) или въобще не иска да изпрати командата.Вече почвам да се чудя дали не е от самата платка

6
да,аз ги върнах и настройките в фабричен режим,отварят ми се два порта,обаче не всеки път а с процесинг нищо не става не иска да прочете данните и тва си е.Иначе джъпмерите сам и Tx-D0 и Rx-D1

7
не разбирам тези АТ команди къде трябва да се пишат

9
Това ли ?
Serial module PINs:
1. PIO8 connects with LED. When the module is power on, LED will flicker. And the
flicker style will indicate which work mode is in using since different mode has
different flicker time interval.
2. PIO9 connects with LED. It indicates whether the connection is built or not. When
the Bluetooth serial is paired, the LED will be turned on. It means the connection is
built successfully.
3. PIO11 is the work mode switch. When this PIN port is input high level, the work
mode will become order-response work mode. While this PIN port is input low level or
suspended in air, the work mode will become automatic connection work mode.
4. The module can be reset if it is re-powered since there is a reset circuit at the module :oops:  :oops:  :oops:  :oops:

10
http://erelement.com/arduino/bluetooth-shield

#define numberOfSensors 2
 
void setup() {
  // initialize the serial port:
  Serial.begin(9600);
}
 
void loop() {
  // loop over the sensors:
  for (int thisSensor = 0; thisSensor < numberOfSensors; thisSensor++) {
    // read each sensor
    int sensorReading = analogRead(thisSensor);
    // print its value out as an ASCII numeric string
    Serial.print(sensorReading, DEC);
    // if this isn't the last sensor to read,
    // then print a comma after it
    if (thisSensor < numberOfSensors -1) {
      Serial.print(",");
    }
  }
  // after all the sensors have been read,
  // print a newline and carriage return
  Serial.println();
}

имам закачен сензор на А0. С USB  си работи всичко точно.

11
кофигуриран е.Някаква друга идея  :?

12
Проверени са,а дали няма някаква връзка в това че шийла е конфигуриран като слейд? вече не знам къде да търся причината направо се отчаях

13
да точно така го правя,proccesing следи точно този порт който използвам просто никакви данни не идват,пробвах и с други програми,който следят портовете и пак така порта го има данни няма.Възможно ли е да има някакъв проблем с bluetooh USBто,защото на единият лаптоп дори не го разпознава?

14
еми аз използвам Proccessing за да видя данните от аналоговите сензори,обаче когато съм на блутуут няма никой,изписва ми портовете който се отварят ,обаче нищо не се случва,а като съм на USB си работи всичко перфектно.От къде може да идва проблема? до сега не съм работил с блутуут и ми е тъмна Индия.

15
а може ли някой да ми помогне, с това как се отваря порта за предаване на данни чрез блуутут.Тоест трябва ли някакъв допълнителен сорс код или само Serial.begin(baud rate) ?

Благодаря!

Страници: [1] 2