ses kontrollü dc motor
  • merhabalar...
    ben arduino r3 uno ve ona ilave olarak EasyVR Shield - Voice Recognition Shield ile 2 adet dc motor kontrolü yapmak istiyorum. bu konuda kod vs. konusunda yardımcı olabilicek var mı ?
  • uygulamanızda takıldığınız bir yer var mı?
  • hocam arduino üzerine EasyVR shield onunda üzerine motor sürücü devresini eklesem . yani üç katlı bir devre olsa burada motorların kontrolünü nasıl saglayabilirim . mevcut kod var mıdır ?
  • ömer hocam verdiğiniz linkleri inceliyorum faydalı linkler .
  • öncelikle bir arduino ve robotistandan başlangıç seti ile coşkunun kitabını alıp örnekleri çalışmanız daha iyi olacaktır... hayalinizdeki kod hiç bir zaman hazır olarak pişip ağızınıza düşmeyecek ve bulamayacaksınız, umarım bir an evvel bir programlama dili ve arduino sistemini öğrenerek düşündüklerinizi ve hayalizinizi gerçeklerştirirsiniz...
  • Benim hazırladığım bi ders var. Bi incele istersen

    part-1

    Part-2

    Part-3
  • #if defined(ARDUINO) && ARDUINO >= 100
    #include "Arduino.h"
    #include "SoftwareSerial.h"
    SoftwareSerial port(12,13);
    #else // Arduino 0022 - use modified NewSoftSerial
    #include "WProgram.h"
    #include "NewSoftSerial.h"
    NewSoftSerial port(12,13);
    #endif

    #include "EasyVR.h"
    EasyVR easyvr(port);

    //Groups and Commands
    enum Groups
    {
    GROUP_0 = 0,
    GROUP_1 = 1,
    };

    enum Group0
    {
    G0_KOMUT = 0,
    };

    enum Group1
    {
    G1_SAG = 2,
    G1_SOL = 3,
    G1_DUR = 4,
    G1_SAGILERI = 5,
    G1_SOLILERI = 6,
    G1_R = 7,
    G1_I = 8,
    };


    EasyVRBridge bridge;

    int8_t group, idx;

    void setup()
    {
    // bridge mode?
    if (bridge.check())
    {
    cli();
    bridge.loop(0, 1, 12, 13);
    }
    // run normally
    Serial.begin(9600);
    port.begin(9600);

    if (!easyvr.detect())
    {
    Serial.println("EasyVR not detected!");
    for (;;);
    }

    easyvr.setPinOutput(EasyVR::IO1, LOW);
    Serial.println("EasyVR detected!");
    easyvr.setTimeout(5);
    easyvr.setLanguage(0);

    group = EasyVR::TRIGGER; //<-- start group (customize)<br /> //pinMode(11,OUTPUT);
    //digitalWrite(11,LOW);
    pinMode(12, OUTPUT);
    pinMode(9, OUTPUT);
    }

    void action();

    void loop()
    {
    easyvr.setPinOutput(EasyVR::IO1, HIGH); // LED on (listening)

    Serial.print("Say a command in Group ");
    Serial.println(group);
    easyvr.recognizeCommand(group);

    do
    {
    // can do some processing while waiting for a spoken command
    }
    while (!easyvr.hasFinished());

    easyvr.setPinOutput(EasyVR::IO1, LOW); // LED off

    idx = easyvr.getWord();
    if (idx >= 0)
    {
    // built-in trigger (ROBOT)
    // group = GROUP_X; <-- jump to another group X<br /> return;
    }
    idx = easyvr.getCommand();
    if (idx >= 0)
    {
    // print debug message
    uint8_t train = 0;
    char name[32];
    Serial.print("Command: ");
    Serial.print(idx);
    if (easyvr.dumpCommand(group, idx, name, train))
    {
    Serial.print(" = ");
    Serial.println(name);
    }
    else
    Serial.println();
    easyvr.playSound(0, EasyVR::VOL_FULL);
    // perform some action
    action();
    }
    else // errors or timeout
    {
    if (easyvr.isTimeout())
    Serial.println("Timed out, try again...");
    int16_t err = easyvr.getError();
    if (err >= 0)
    {
    Serial.print("Error ");
    Serial.println(err, HEX);
    }
    group=GROUP_0;
    }
    }

    void action()
    {
    switch (group)
    {
    case GROUP_0:
    switch (idx)
    {
    case G0_KOMUT:
    group = GROUP_1;
    // write your action code here
    // group = GROUP_X; <-- or jump to another group X for composite commands<br /> break;
    }
    break;
    case GROUP_1:
    switch (idx)
    {
    case G1_SAG:
    // write your action code here
    // group = GROUP_X; <-- or jump to another group X for composite commands<br /> break;
    case G1_SOL:
    // write your action code here
    // group = GROUP_X; <-- or jump to another group X for composite commands<br /> break;
    case G1_DUR:
    analogWrite(3, 0);
    // write your action code here
    // group = GROUP_X; <-- or jump to another group X for composite commands<br /> break;
    case G1_SAGILERI:
    // write your action code here
    // group = GROUP_X; <-- or jump to another group X for composite commands<br /> break;
    case G1_SOLILERI:
    // write your action code here
    // group = GROUP_X; <-- or jump to another group X for composite commands<br /> break;
    case G1_R:
    group = GROUP_0;
    digitalWrite(12, LOW);
    digitalWrite(9, LOW);
    analogWrite(3, 200);
    //digitalWrite(11, LOW);
    //rite your action code here
    // group = GROUP_X; <-- or jump to another group X for composite commands<br /> break;
    case G1_I:
    group = GROUP_0;
    digitalWrite(12, HIGH);
    digitalWrite(9, LOW);
    analogWrite(3, 200);

    //digitalWrite(11, HIGH);
    // write your action code here
    // group = GROUP_X; <-- or jump to another group X for composite commands<br /> break;
    }
    break;
    }
    }
  • yukarıdaki kodları inceleyebilir misiniz ? yanlış yada eksik bir yer var mı ? kodları yüklediğimde easyvr hiçbir tepki sinyali vermiyor.
    projede arduino r3 + easyvr sheild + motor sürücü kullanılacaktır.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook

Tagged

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.