- 12V Akku mit 280 Ah bauen         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 11 von 11

Thema: case modding: Ein neues Kleidchen für meinen asuro

  1. #11
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Anzeige

    Praxistest und DIY Projekte
    Hallo

    Ja, es lag zum einen am "Übersprechen" der Signale und zum Anderen daran, das man eine Bibliothek auch richtig einbinden muss.

    Ich habe nun auf Lichtwellenleiter umgerüstet. Die Lampe habe ich zwar gekauft, aber mehr als eine Testfaser habe ich nicht abschneiden dürfen. (Anweisung meiner Frau die diese Lampe toll findet und sie in unserem Wohnzimmer plaziert hat). *grummel*

    Inzwischen weis ich, die Fasern der Lampe sind zu dünn. Deshalb war ich kurz beim C ( vorteil der Grosstadt mit eigener Finiale) und habe Lichtwellenleiter als Meterware gekauft; zwischen 0,5 und 1 mm kosten ca. 0,50 bis 1€ pro Meter. Den Aufbau werde ich euch in einem anderen Thread schildern, das Ergebniss sieht so aus:

    Bild hier  

    (Anklicken für 17 Sek. AVI, 2MB)

    Die Idee ist aus diesem Thread, allerdings habe ich nur einen Sensor und kann deshalb noch nicht erkennen, wenn das Blatt zur Seite ausweicht.

    Hier noch der Code:

    Code:
    #include "../inc/ir-asuro.h"
    
    unsigned char dist, dist_soll, dist_max, m_power, m_dir_l, m_dir_r, step;
    
    int main(void)
    {
    
    Init();
    step=0;
    
    do {
    	switch (step) {
    	// init
    	case(0): m_dir_l=m_dir_r=FREE; m_power=200; dist_max=0x50; dist_soll=150;
          DDRD |= (1 << DDD1);   // Port D1 als Ausgang
    		PORTD &= ~(1 << PD1);   // PD1 auf LOW
    		OCR2  = dist_max;
    		step=10; break;
    
    	// etwas vor der Nase?
    	case(10): MotorSpeed(m_power,m_power); dist=0xFF; step++; break;
    	case(11): if (dist>dist_max) dist--; else step=20;
    		DDRD |= (1 << DDD1); PORTD &= ~(1 << PD1); OCR2==dist;
    		if (!(PIND & (1 << PD0))) step=12; break;
    	// Fahren
    	case(12): StatusLED(GREEN); m_dir_l=m_dir_r=FREE;
    		if (dist < dist_soll) { StatusLED(RED); m_dir_l=m_dir_r=FWD; }
    		if (dist > dist_soll) { StatusLED(YELLOW); m_dir_l=m_dir_r=RWD; }
    		MotorDir(m_dir_l,m_dir_r); step=10; break;
    	// Kante suchen
    	case(20): StatusLED(RED); MotorDir(FWD,FWD); step=10; break;
    	}
    } while(1);
    return 0;
    }
    (ir-asuro.h und .c sind die Libarys aus dem IR-Abstandsmessungsthread)

    und das Hex-File im Anhang.

    Gruß

    mic
    Angehängte Dateien Angehängte Dateien
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

12V Akku bauen