- LiFePO4 Speicher Test         
Ergebnis 1 bis 7 von 7

Thema: Brauche programm für asuro

  1. #1

    Brauche programm für asuro

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen

    Ich habe erst seit kurzem einen Asuro, für ein Schulprojekt.
    Nun brauche ich dringend ein programm wo er zuerst 10m nach vorne fährt, um 180° wendet und dann wieder zurück fährt.

    Ich wäre sehr froh wenn mir jemand so ein Programm schreiben könnte. Da ich keine zeit habe um das programmieren zu lernen.

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    58
    Beiträge
    847
    Hallo und willkommen im Forum.

    Dein Wunsch nach einem bestellten Programm wird hier vermutlich keiner nachkommen. Ich empfehle dir einen Blick in das Asurohandbuch zu werfen, nach 15 min hast du sicher das Programm soweit fertig, dass du es hier posten kannst. Dann ist sicher jemand bereit dir weiter zu helfen.

    Nur Mut es ist gar nicht so schwer wie du denkst!

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Andree-HB
    Registriert seit
    10.12.2004
    Ort
    Bremen
    Alter
    54
    Beiträge
    2.807
    Ich habe erst seit kurzem einen Asuro, für ein Schulprojekt.

    Ich wäre sehr froh wenn mir jemand so ein Programm schreiben könnte. Da ich keine zeit habe um das programmieren zu lernen.
    ...ich hoffe, das ist nicht repräsentativ !

  4. #4
    ja ich habe mal einen versuch gemacht.
    Code:
    #include "asuro.h"
    
    int main(void)
    {
      Init();
      EncoderInit();
      
      int i;
      for(i=0;i<10;++i)
      {
        Go( 1000,250);	//1 Meter
        Go(-1000,250);
      }
      
      while(1);
      return 0;
    }

  5. #5
    aber beim erstellen des make files erhalte ich diese meldung:
    Code:
    C:\Users\ASURO_src\FirstTry>make all 
    set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
    | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
    [ -s test.d ] || rm -f test.d
    -------- begin --------
    avr-gcc --version
    avr-gcc (GCC) 3.3.1
    Copyright (C) 2003 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
    avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.o test.o asuro.o   --output test.elf -Wl,-Map=test.map,--cref -lm
    test.o(.text+0xa): In function `main':
    C:\Users\ASURO_src\FirstTry/test.c:6: undefined reference to `EncoderInit'
    test.o(.text+0x1c):C:\Users\ASURO_src\FirstTry/test.c:11: undefined reference to `GoTurn'
    test.o(.text+0x2a):C:\Users\ASURO_src\FirstTry/test.c:12: undefined reference to `GoTurn'
    make: *** [test.elf] Error 1
    
    > Process Exit Code: 2
    kann mir jemand sagen wo der fehler liegt?

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    04.06.2009
    Beiträge
    49
    Das heisst ganzeinfach das es die funktionen "GoTurn" und "EncoderInt" nicht findet.
    Meines wissens nach sind das welche aus der erweiterten Lib..
    Is die richtig eingebunden?

    Kannst du bitte den neuen Code auch noch posten? Danke!

    mfG

  7. #7
    kann mir jemand dabei helfen das standard testprogramm des Ultraschallsensors vom asuro so zu erweitern, dass der asuro nicht nur nach links abdreht wenn er ein hinderniss erkennt, sondern auch rechts abbiegt.

    also mal links abdreht und mal rechts.

    hier der Programmcode

    Code:
    #include "asuro.h"
    
    void LocalInit(void)
    {
    	// Change Oscillator-frequency of Timer 2
    	// to 40kHz, no toggling of IO-pin:
    	TCCR2 = (1 << WGM21) | (1 << CS20);
    	OCR2 = 0x64;						// 40kHz @8MHz crystal
    	ADCSRA = 0x00;					// ADC off
    	// Analog comparator:
    	ACSR = 0x02;						// Generate interrupt on falling edge
    	ADMUX = 0x03;						// Multiplexer for comparator to
    													// ADC pin 3
    	SFIOR |= (1 << ACME);		// Enable muliplexing of comparator
    	DDRD &= ~(1 << 6);			// Port D Pin 6 is input!
    }
    
    
    void Ping(unsigned char length)
    {
    	count72kHz = 0;
    	TCCR2 = (1 << WGM21) | (1 << COM20) | (1 << CS20);
    													// Toggling of IO-Pin on
    	
    	// generate the Chirp
    	while(count72kHz < length) {
    		OCR2 = 0x64 + length / 2 - count72kHz;
    	}
    	
    	TCCR2 = (1 << WGM21) | (1 << CS20);		// Toggling of IO-Pin off
    	OCR2 = 0x64;													// set frequency to 40kHz
    }
    
    
    int main(void)
    {
    	int pos, i;
    	int posmarker;
    	Init();
    	LocalInit();
    	while(TRUE) {
    		posmarker = 0;
    		Ping(20);
    		for(pos = 0; pos < 100; pos++) {
    			Sleep(10);
    			if((ACSR & (1 << ACI)) != 0) {
    				if(posmarker == 0) { posmarker = pos; }
    			}
    			ACSR |= (1 << ACI);
    		}
    		if(posmarker > 10) {
    			StatusLED(GREEN);
    			MotorDir(FWD, FWD);
    			MotorSpeed(200, 200);
    		}
    		else {
    			StatusLED(RED);
    			MotorDir(RWD, FWD);
    			MotorSpeed(200, 0);
    			for(i = 0; i<10; i++) { Sleep(200); }
    		}
    	}
    	
    	return 0;
    }

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen