Hjälp med ett diagram

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
prototypen
Inlägg: 11107
Blev medlem: 6 augusti 2006, 13:25:04
Ort: umeå

Re: Hjälp med ett diagram

Inlägg 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
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
BlueScreenTT
Inlägg: 18
Blev medlem: 18 september 2015, 17:41:57

Re: Hjälp med ett diagram

Inlägg av BlueScreenTT »

Koden kan jag lägga upp när jag kommer hem torsdag
BlueScreenTT
Inlägg: 18
Blev medlem: 18 september 2015, 17:41:57

Re: Hjälp med ett diagram

Inlägg av BlueScreenTT »

Nej helt rätt man skall inte ge upp:-)

En fin and gate
BlueScreenTT
Inlägg: 18
Blev medlem: 18 september 2015, 17:41:57

Re: Hjälp med ett diagram

Inlägg 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);
  }
  
Skriv svar