- 12V Akku mit 280 Ah bauen         
Seite 7 von 20 ErsteErste ... 5678917 ... LetzteLetzte
Ergebnis 61 bis 70 von 197

Thema: Hardware Mitmach-Projekt: Kamera für den RP6

  1. #61
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.03.2010
    Beiträge
    172
    Anzeige

    Praxistest und DIY Projekte
    Falls die Probleme am Programm liegen, welches Daten über die serielle Schnittstelle empfängt:
    Gibts da den Quelltext? Dann kann ich mir den mal ansehen.
    Natürlich könnte ich auch schnell mit C/C++ ein neues Proggi schreiben und den Quellcode öffentlich machen.

    Sonst generelle Lösungsvorschläge:
    Richtiges COM Interface ausgewählt?
    Treiber vorhanden?
    Programm mit Adminrechten gestartet?
    Welches Betriebssystem? (Kann sein, dass es unter Win7 nicht funktinoiert -> andere Hardwareansteuerung)
    Funktioniert das serielle Kabel?
    Kommen überhaupt Daten über das serielle Kabel? (Kann man ganz leicht mit anderen Progs testen -> google. Oder wenn Ihr Linux habt einfach mal via interface listen rausholen)

  2. #62
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Einfaches Nachladen der Akkus reicht völlig. Volle Akkus werden bei meinem RP6 mit ca. 8,4V gemessen.

    Natürlich könnte ich auch schnell mit C/C++ ein neues Proggi schreiben und den Quellcode öffentlich machen.
    Ich kann das leider nicht, dafür kann ich in drei Minuten ein passendes Tool ergooglen ;)

    Beim cam2bmp-Programm kann man die seriellen Daten auch im RP6Loader betrachten. Allerdings nur, wenn man man nach der Ausgabe den RP6 mit [STRG-R] wieder stoppt um einen Zeilenvorschub zu erzwingen. Beim einfachen Testprogramm sollte man sofort etwas sehen. Obwohl es etwas ungeschickt programmiert ist sollte es trotzdem funktionieren:
    Code:
    // Kleines Testprogramm zur Funktionsprüfung                            1.4.10 mic
    
    #include "RP6RobotBaseLib.h"
    
    void ADC_Init(void)
    {
    	extIntOFF(); // schaltet den E_INT1-Port auf Eingang für den ADC
    
    // ADC interne Referenz 2,56V, Ergebniss linksbündig, Kanal ADC4 (E_INT1)
    	ADMUX = (1<<REFS1) | (1<<REFS0)  | (1<<ADLAR) | 4;
    // setze free running triggern
    	SFIOR = (0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);
    // kein Interupt, Wandler einschalten, prescaler /2, ADC läuft nun mit 4MHz!
    	ADCSRA = (0<<ADIE) | (1<<ADEN) | (0<<ADPS2) | (0<<ADPS1)  | (1<<ADPS0);
    // Autotriggern bedeutet jetzt free running aktivieren, altes Flag löschen
    	ADCSRA |= (1<<ADATE) | (1<<ADIF);
    // Initialisierung starten
    	ADCSRA |= (1<<ADSC);
    // und noch die empfohlene Initiallesung
    	while (!(ADCSRA & (1<<ADIF)));
    	ADCSRA |= (1<<ADIF);
    }
    
    int main(void)
    {
    	uint8_t bildspeicher[1024], *bildzeiger; // 1KB * 8Bit Bildspeicher bereitstellen
    	uint8_t spalte, zeile, sync, c;
    
    	initRobotBase();
    	ADC_Init();
    	
    	while(1)
    	{
    		writeString_P("---------------------------\n");
    		for(c=0; c<255; c++) // Bildspeicher löschen (mit Byte-Variable)
    		{
    	   	bildspeicher[c]=bildspeicher[256+c]=\
    			bildspeicher[2*256+c]=bildspeicher[3*256+c]=0;
    		}
    
    		for(c=0; c<4; c++) // viermal den selben Bereich einlesen
    		{
    		   bildzeiger=&bildspeicher[256*c]; // Zeiger auf Start des Bildspeicherbereich
    		   cli();
    			do // Warten auf langen Syncbereich = Bildstart
    			{
    				sync=0;
    				while (ADCH > 20); // warten solange Bilddaten erkannt werden
    				while (ADCH < 30) sync++; // Länge des Sync-Signal zählen
    			}while (sync < 40); // größer 40 bedeutet Bildstart
    		
    			zeile=150; // durchhangeln bis Zeile 150
    			while(zeile--)
    			{
    				while (ADCH > 20); // Bilddaten
    				while (ADCH < 30); // Sync
    			}
    		
    			spalte=255;
    			do *bildzeiger++=ADCH; while(spalte--); // 254 Werte einlesen
    			//while(spalte--) *bildzeiger++=ADCH; // dito
    			//do *bildzeiger=ADCH; while(*bildzeiger++ > 20); // schneller ;)
    			sei();
    		}
    		
    		for(spalte=0; spalte != 255; spalte++) // Alle Durchgänge gemeinsam ausgeben
    		{
    		   writeInteger(spalte, 10);
    		   writeString_P(": ");
    		   writeInteger(bildspeicher[spalte], 10);
    			writeString_P(" ");
    		   writeInteger(bildspeicher[256+spalte], 10);
    		   writeString_P(" ");
    		   writeInteger(bildspeicher[2*256+spalte], 10);
    		   writeString_P(" ");
    		   writeInteger(bildspeicher[3*256+spalte], 10);
    		   writeString_P("\n");
    		}
    		while(!(getBumperLeft() || getBumperRight())); // Nochmal? Terminal löschen!
    	}
    	return(0);
    }
    Es werden viermal hintereinander ab dem Start der 150. Zeile jeweils 255 Werte eingelesen und dargestellt. Die Ausgabe beginnt mit:
    writeString_P("---------------------------\n");

    Wenn danach nichts mehr kommt bleibt das Programm irgendwo bei der Syncsuche stecken. Hier könnte man vielleicht mit geänderten Abfragen weiterkommen:
    while (ADCH > 25); // Bilddaten
    while (ADCH < 35); // Sync
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #63
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.03.2010
    Beiträge
    172
    Zitat Zitat von radbruch
    Einfaches Nachladen der Akkus reicht völlig. Volle Akkus werden bei meinem RP6 mit ca. 8,4V gemessen.
    Klar, wenns daran liegt


    Zitat Zitat von radbruch
    leider nicht, dafür kann ich in drei Minuten ein passendes Tool ergooglen
    Yup, wer nicht
    Aber die andere Frage ist dann natürlich, ob es einen Sinn ergibt.
    Gibts den Quellcode dazu?
    Für was brauche ich das Proggi?
    Klar, wenns jetzt nur darum geht bmp's zu speichern reicht ein gegoogeltdes Proggi bestimmt. Will man es später aber ausbauen. z.B. Bildunterschiede etc. rausrechnen (was mit gdi+ leicht ist), machts sicherlich Sinn selber zu coden

  4. #64
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    562
    Hallo

    Da hat RoboNull nicht ganz Unrecht.
    Es kann nie schaden den Quellcode zu haben um ihn später auszubauen bzw zu erweitern

    Gruß Thund3r
    Dein Gott sei mein Zeuge!

  5. #65
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Zur Auswertung auf dem PC bräuchte man den "Umweg" über eine BMP-Datei nicht. Man könnte einfach die nackten Kameradaten verarbeiten.

    Aber das ist doch eigentlich nicht Sinn der Übung. Das BMP-Bild dient nur dazu ein "Gefühl" für die Kamera zu bekommen. Die eigentliche Bildbearbeitung sollte der Kontroller schon selbst erledigen.

    Den Quellcode habe ich auch nicht, die "Fundstelle" des Tools ist ja schon 3 Jahre alt. Keine Ahnung, ob es da noch einen Support für gibt:
    http://www.mikrocontroller.net/topic/74659#616065
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #66
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.03.2010
    Beiträge
    205
    Super!!!!
    Das mit dem Monitor wars ich hatte nämlich keinen angeschlossen und deswegen bestand kein Widerstand (75 Ohm) zwischen den Abschlüssen. Ich habe zum Ausprobieren mal einen angeschlossen (ohne Monitor) und das Ergebnis war Positiv.
    Nichts existiert durch sich allein!
    Bild hier  

  7. #67
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2009
    Ort
    Berlin
    Beiträge
    450
    Hallo,
    radbruch@
    Noch eine neue Erkenntniss: Wenn die Spannung der Akkus meines RP6 auf ca. 7,2V gesunken ist (mit "Verbinden" im RP6Loader gemessen), funktioniert die Kamera nicht mehr:
    also für mich ist es ja schon fast das AUS für das Projekt. Das ist ja nur 1,5 V zum vollen Akkusatz. Der RP6 soll mal Linienfolgen oder einen Lichtpunkt suchen. Also Motoren laufen und vielleicht noch andere Sensoren,LED u.s.w Bedienen. Das kann es doch nicht gewesen sein das unser RP6 nach 30 minuten wieder blind ist.
    Trainmen
    P.S. schönes Osterfest noch

  8. #68
    Erfahrener Benutzer Begeisterter Techniker Avatar von RobbyMartin
    Registriert seit
    31.12.2009
    Ort
    Leverkusen
    Alter
    31
    Beiträge
    206
    dann muss man wahrscheinlich doch auf einen zweiten akku ausweichen ein 9v block akku wiegt nicht viel und nur für die kamera sollte er auch ausreichend sein

    LG
    martin

    P.S. von mir auch ein frohes ostern an euch alle

  9. #69
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    562
    Hallo

    Ja oder wir realisieren den Vorschlag eienr 5. Phase wo wir uns spezeill mit dem Probelem beschäftigen und vielleicht ne elegantere Lösung finden.

    PS: Fühlt euch alle geostert

    Gruß Thund3r
    Dein Gott sei mein Zeuge!

  10. #70
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    27.09.2009
    Alter
    30
    Beiträge
    661
    heißt das ich muss noch einen 75 ohm wiederstand einbauen das es funktioniert?
    MfG Martinius

Seite 7 von 20 ErsteErste ... 5678917 ... LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress