-
        

Ergebnis 1 bis 3 von 3

Thema: Asuro mit Ultraschall und Bascom Problem

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    11.08.2011
    Ort
    Düsseldorf
    Beiträge
    17

    Asuro mit Ultraschall und Bascom Problem

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo liebe RN Wissens Gemeinde,

    ich habe ein Problem und konnte mir leider selber nicht helfen. Und da hier wie immer die freundlichen Roboter Profis sind wollte ich mir hier Hilfe holen.

    Ok zum Problem mein Roboter Goldie, der übrigens kein Asuro ist, hat ein Problem. Keine angst Goldie ist stark mit dem Asuro verwandt. Nur das er selbst gebaut ist und statt aus einer großen Steuerplatine aus vielen kleinen besteht. Also zum Beispiel hat der Motortreiber eine extra mini Platine, sowie die Stromversorgung. Stärkere Motoren? Kein Problem alter motortreiber raus den neuen auf ein Stück Lochrasterplatine gelötet wieder angesteckt fertig. KK genug von Goldie im allgemeinen. Wenn Goldie fertig ist schreibe ich sicher einen seperaten Beitrag hehe

    Goldie ist in Bascom programmiert was herlich funktioniert. Da liegt das Problem. Ich habe die Ultraschallerweiterung des Asuro nachgebaut, diese ist aber nur mit einem Code in C. Tja ich habs mal versucht ich komme mit C nicht zurecht. Ich habe von RN Wissen den Bascom Code für das SRF05 probiert anzupassen. Leider funktioniert es nicht. Ich weiss garnicht ob das Asuro Forum ideal ist aber ich wollte es erstmal hier versuchen bevor ich andere teile des Forum mit meinem Problem belästige.

    Tja im Prinzip muss ich die Asuroerweiterung mit Bascom zum laufen bekommen.

    Bei bedarf kann ich hier auch den Asuro Code mit posten. Ach was ich mach es direkt. Hier:

    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(FWD, RWD);
    			MotorSpeed(0, 200);
    			for(i = 0; i<100; i++) { Sleep(200); }
    		}
    	}
    	
    	return 0;
    }
    Wäre echt toll wenn mir Jemand helfen könnte und wäre sicher auch für andere Roboterbauer interessant. Und ja einfach ein SRF05 zukaufen wäre evtl. einfacher gewesen aber fertig kaufen ist doch langweilig hehe

    MfG Lister

    PS: Goldie kann mit einem Attiny2313, Atmega 8, 16, 32 ausgestattet werden, sowie mit allen möglichen Quarzen. Habe ich alles hier.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.08.2011
    Ort
    Hannover
    Beiträge
    164
    Moin Lister,

    vielleicht hilft Dir das: bei Robotikhardware gibt's häufig Anleitungen mit Bascom Beispielcode (zu meinem Leidwesen, weil ich ein C-Mensch bin ) Für SRF05 wäre das hier (klick).

    viele Grüße
    Andreas

    Edit: oder auch hier im RN-Wissen
    #define true ('/'/'/')
    #define false ('-'-'-')

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    11.08.2011
    Ort
    Düsseldorf
    Beiträge
    17
    Hallo,

    erstmal danke für deine Antwort. Die Anleitung für z.B. das SRF05 kenne ich bereits. Leider funktioniert das nicht mit dem Asuro Modul. Ich dachte auch jedes Modul wird schon gleich funktionieren. Aber anscheinend nicht. Ich meine einen Hardwaredefekt kann ich leider nicht ausschliessen, weil ich kein Ozziloskop besitze aber das müsste alles stimmen. Das Asuromodul verwendet auch 3 Leitungen (ohne Stromleitungen gerechnet). Was ich in Erfahrung gebracht habe ist das Asuro den OC2 zum erzeugen des Impuls verwendet, den ADC3 zum Empfangen und den PD6 zum unterbinden von Ultraschallkurzschlüssen. Letzteres habe ich auch nur nach gelesen. Ich denke das, dass Asuromodul anders aufgebaut und auch anders angesteuert werden muss, als das SRF05. Tja nur leider verstehe ich den C Code nicht und den Bascom auch nur teilweise weil dort dieser Vorgang mit Pulsout und Pulsin gleich mehrere Abläufe zusammen fasst.

    Gruß Lister

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 07.05.2010, 19:38
  2. Asuro Ultraschall-sensor Problem...
    Von ippeb im Forum Asuro
    Antworten: 1
    Letzter Beitrag: 11.08.2009, 23:38
  3. Ultraschall Asuro
    Von schnabel im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 2
    Letzter Beitrag: 08.02.2009, 22:08
  4. PRoblem mit Ultraschall - Asuro
    Von Worfox im Forum Asuro
    Antworten: 14
    Letzter Beitrag: 15.11.2008, 20:48
  5. ultraschall srf08 mit bascom
    Von pebisoft im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 19
    Letzter Beitrag: 08.05.2005, 19:18

Berechtigungen

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