Sida 4 av 4

Re: Hjälp med ett diagram

Postat: 21 september 2015, 18:23:23
av prototypen
Kartongen jag ritar på är 2,5 meter och har fyra sidor så jag kan modda några gånger.
Protte
image.jpg

Re: Hjälp med ett diagram

Postat: 21 september 2015, 19:22:31
av BlueScreenTT
Koden kan jag lägga upp när jag kommer hem torsdag

Re: Hjälp med ett diagram

Postat: 21 september 2015, 19:24:04
av BlueScreenTT
Nej helt rätt man skall inte ge upp:-)

En fin and gate

Re: Hjälp med ett diagram

Postat: 24 september 2015, 20:18:41
av BlueScreenTT
ok

her er koden !

jag tar inte credit för den !
det är eksempelkoden som kommer med jag har bara lagt til lite och ändrat lite !
i void setup, include och void loop

Kod: Markera allt

#include "Arduino.h"
#if !defined(SERIAL_PORT_MONITOR)
  #error "Arduino version not supported. Please update your IDE to the latest version."
#endif

#if defined(SERIAL_PORT_USBVIRTUAL)
  // Shield Jumper on HW (for Leonardo and Due)
  #define port SERIAL_PORT_HARDWARE
  #define pcSerial SERIAL_PORT_USBVIRTUAL
#else
  // Shield Jumper on SW (using pins 12/13 or 8/9 as RX/TX)
  #include "SoftwareSerial.h"
  SoftwareSerial port(12, 13);
  #define pcSerial SERIAL_PORT_MONITOR
#endif

#include "EasyVR.h"

#define SND_Access_denied            1
#define SND_Access_granted           2
#define SND_Hello                    3
#define SND_Please_repeat            4
#define SND_Please_say_your_password 5
#define SND_Please_talk_louder       6

int hl1Pin = 2;
int hl2Pin = 3;
int led1Pin = 4;
int led2Pin = 5;
int logic1Pin = 6;
int voiceokPin = 7;
int hl1State = 0; 
int hl2State = 0;

EasyVR easyvr(port);

uint32_t mask = 0;
int8_t group = 0;
uint8_t train = 0;
char name[32];


void setup() {
  
  // put your setup code here, to run once:
  pinMode(hl1Pin, INPUT);
  pinMode(hl2Pin, INPUT);
  pinMode(led1Pin, OUTPUT);
  pinMode(led2Pin, OUTPUT);
  pinMode(logic1Pin, OUTPUT);
  pinMode(voiceokPin, OUTPUT);
  
  // setup PC serial port
  pcSerial.begin(9600);

  // bridge mode?
  int mode = easyvr.bridgeRequested(pcSerial);
  switch (mode)
  {
  case EasyVR::BRIDGE_NONE:
    // setup EasyVR serial port
    port.begin(9600);
    // run normally
    pcSerial.println(F("---"));
    pcSerial.println(F("Bridge not started!"));
    break;

  case EasyVR::BRIDGE_NORMAL:
    // setup EasyVR serial port (low speed)
    port.begin(9600);
    // soft-connect the two serial ports (PC and EasyVR)
    easyvr.bridgeLoop(pcSerial);
    // resume normally if aborted
    pcSerial.println(F("---"));
    pcSerial.println(F("Bridge connection aborted!"));
    break;

  case EasyVR::BRIDGE_BOOT:
    // setup EasyVR serial port (high speed)
    port.begin(115200);
    // soft-connect the two serial ports (PC and EasyVR)
    easyvr.bridgeLoop(pcSerial);
    // resume normally if aborted
    pcSerial.println(F("---"));
    pcSerial.println(F("Bridge connection aborted!"));
    break;
  }
    
  if (!easyvr.detect())
  {
    Serial.println("EasyVR not detected!");
    for (;;);
  }
  
  easyvr.setPinOutput(EasyVR::IO1, LOW);
  Serial.println("EasyVR detected!");
  easyvr.setTimeout(5);
  easyvr.setLanguage(EasyVR::ENGLISH);
  
  int16_t count = 0;
  
  
  if (easyvr.getGroupMask(mask)) // get trained user names and passwords
  {
    uint32_t msk = mask;  
    for (group = 0; group <= EasyVR::PASSWORD; ++group, msk >>= 1)
    {
      if (!(msk & 1)) continue;
      if (group == EasyVR::TRIGGER)
        Serial.print("Trigger: ");
      else if (group == EasyVR::PASSWORD)
        Serial.print("Password: ");
      else
      {
        Serial.print("Group ");
        Serial.print(group);
        Serial.print(": ");
      }
      count = easyvr.getCommandCount(group);
      Serial.println(count);
      for (int8_t idx = 0; idx < count; ++idx)
      {
        if (easyvr.dumpCommand(group, idx, name, train))
        {
          Serial.print(idx);
          Serial.print(" = ");
          Serial.print(name);
          Serial.print(", Trained ");
          Serial.print(train, DEC);
          if (!easyvr.isConflict())
            Serial.println(" times, OK");
          else
          {
            int8_t confl = easyvr.getWord();
            if (confl >= 0)
              Serial.print(" times, Similar to Word ");
            else
            {
              confl = easyvr.getCommand();
              Serial.print(" times, Similar to Command ");
            }
            Serial.println(confl);
          }
        }
      }
    }
  }
  easyvr.setLevel(EasyVR::HARDER);
  easyvr.playSound(SND_Hello, EasyVR::VOL_FULL);
}

void loop()
{

  hl1State = digitalRead (hl1Pin);
  hl2State = digitalRead (hl2Pin);
  
  if  (hl1State == LOW){
  
    digitalWrite (led1Pin, HIGH);
  }
  
  else {
    digitalWrite (led1Pin, LOW);
  }
  
  if  (hl2State == LOW){
  
    digitalWrite (led2Pin, HIGH);
  }
  
  else {
    digitalWrite (led2Pin, LOW);
  }

  if  (hl1State == LOW && hl2State == LOW){
    digitalWrite (logic1Pin, HIGH);
  }
  
  else {
    digitalWrite (logic1Pin, LOW);
  }
  
  int idx_cmd;  
  int idx_pwd;

  easyvr.setPinOutput(EasyVR::IO1, HIGH); // LED on (listening)
  
  Serial.println("Say a name in Group 1");  
  easyvr.recognizeCommand(1); // recognise command in group 1 
  while (!easyvr.hasFinished()); // wait for user name
  
  easyvr.setPinOutput(EasyVR::IO1, LOW); // LED off
 
  idx_cmd = easyvr.getCommand(); // get recognised user name

  if (idx_cmd >= 0) 
  {    
    Serial.print("Name: ");    
    if (easyvr.dumpCommand(1, idx_cmd, name, train))
      Serial.println(name);
    else
      Serial.println();    
    
    easyvr.playSound(SND_Please_say_your_password , EasyVR::VOL_FULL);  // ask for password
    
    easyvr.setPinOutput(EasyVR::IO1, HIGH); // LED on (listening)  
    
    Serial.println("Say the password");    
    easyvr.recognizeCommand(EasyVR::PASSWORD); // set group 16
    while (!easyvr.hasFinished()); // wait for password
  
    easyvr.setPinOutput(EasyVR::IO1, LOW); // LED off    
    
    idx_pwd = easyvr.getCommand(); // get recognised password
    
    if (idx_pwd >= 0)
    {
      Serial.print("Password: ");     
      
      if (easyvr.dumpCommand(EasyVR::PASSWORD, idx_pwd, name, train))
      {
        Serial.print(" = ");
        Serial.println(name);
      }
      else
        Serial.println();      
      
      if ( idx_pwd == idx_cmd) // index of username and password are the same, access granted
      {

        Serial.println("Access granted");
        easyvr.playSound(SND_Access_granted , EasyVR::VOL_FULL);    
        
        digitalWrite(voiceokPin, HIGH);     // Turn the LED on
        delay(5000);    // wait a while
        digitalWrite(voiceokPin, LOW);     // Turn the LED on
      }
      else // index of username and password differ, access is denied
      {
        Serial.println("Access denied");
        easyvr.playSound(SND_Access_denied , EasyVR::VOL_FULL);    
      }
      
    }    
    
    int16_t err = easyvr.getError();
    
    if (easyvr.isTimeout() || (err >= 0)) // password timeout, access is denied
    {
      
      Serial.println("Error, try again...");
      easyvr.playSound(SND_Access_denied , EasyVR::VOL_FULL); 
      
    }
  }
  
  else
  {
    if (easyvr.isTimeout()) 
        Serial.println("Timed out, try again...");
      
    int16_t err = easyvr.getError();
    if (err >= 0)
    {
      Serial.print("Error ");
      Serial.println(err, HEX);          
    }
  }
}


include koden jag har lagt till

Kod: Markera allt

#define SND_Access_denied            1
#define SND_Access_granted           2
#define SND_Hello                    3
#define SND_Please_repeat            4
#define SND_Please_say_your_password 5
#define SND_Please_talk_louder       6

int hl1Pin = 2;
int hl2Pin = 3;
int led1Pin = 4;
int led2Pin = 5;
int logic1Pin = 6;
int voiceokPin = 7;
int hl1State = 0; 
int hl2State = 0;
void setup jag har lagt till

Kod: Markera allt

 // put your setup code here, to run once:
  pinMode(hl1Pin, INPUT);
  pinMode(hl2Pin, INPUT);
  pinMode(led1Pin, OUTPUT);
  pinMode(led2Pin, OUTPUT);
  pinMode(logic1Pin, OUTPUT);
  pinMode(voiceokPin, OUTPUT);
void loop jag har lagt til

Kod: Markera allt

void loop()
{

  hl1State = digitalRead (hl1Pin);
  hl2State = digitalRead (hl2Pin);
  
  if  (hl1State == LOW){
  
    digitalWrite (led1Pin, HIGH);
  }
  
  else {
    digitalWrite (led1Pin, LOW);
  }
  
  if  (hl2State == LOW){
  
    digitalWrite (led2Pin, HIGH);
  }
  
  else {
    digitalWrite (led2Pin, LOW);
  }

  if  (hl1State == LOW && hl2State == LOW){
    digitalWrite (logic1Pin, HIGH);
  }
  
  else {
    digitalWrite (logic1Pin, LOW);
  }