RoboterCC - Robotic Code Compiler
Forum Robot Kits NIBO 2 NXB2 Nutzung

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Letzte Themen

  • Keine Beiträge vorhanden

Site-Statistic

  • 7433 private projects
  • 378 public projects
  • 16180353 lines compiled
  • 58212 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: NXB2 Nutzung

Aw: NXB2 Nutzung 11 Jahre 11 Monate her #1152

  • botnovice
  • botnovices Avatar
  • OFFLINE
  • Junior Boarder
  • Beiträge: 8
Hallo Nibo2-Gemeinde,

ich bin neu hier, habe einen Nibo2 mit NXB2 sowie Gegenstation (von nicai, ganz neu) aufgebaut und versuche, über XBEE mit einem PC zu kommunizieren. Auf der PC-Seite habe ich das Programm _X-CTU_ von digi installiert. Jetzt meine Frage:

:help: so wie ich hier im Forum lesen kann, haben bereits einige User eine XBEE-Verbindung hingekriegt. Nur: wie genau? Habt ihr die nicai-Libs verwendet oder habt ihr eigene Routinen geschrieben? Ich wäre sehr dankbar, wenn mir jemand mit ein paar Details oder Codeschnipseln weiter helfen könntet. In C programmieren kann ich. Vielen Dank schonmal im Voraus!

botnovice
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NXB2 Nutzung 11 Jahre 11 Monate her #1153

  • Egon
  • Egons Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 316
Hallo botnovice

Ich hab ne Doku geschrieben mit einem Testfile, aber ich kann diese Doku hier nicht reinstellen, warum auch immer :evil:

Deshalb nur Code - mittels hterm werden Werte an den NIBO2 geschickt und sofort wieder vom NIBO zurückgeschickt.


#include <nibo/niboconfig.h>
#include <nibo/leds.h>
#include <nibo/delay.h>
#include <nibo/iodefs.h>

#include <avr/io.h>
#include <avr/interrupt.h>
#include <inttypes.h>
#include <util/delay.h>
#include <stdlib.h>
#include <string.h> 

#define FOSC 16000000			/* frequenz des ATmega128 Quarz */
#define BAUD 38400				/* Baud-Rate */
#define MYUBBR FOSC/16/BAUD-1 
volatile unsigned char c;		/* Variable, wird bei ISR UART benuetzt */
 
/* -- Initialisierungsfunktion  des USART */
void init_usart11(unsigned int ubrr){
	UBRR1H = (unsigned char)(ubrr >> 8);		/* zuerts high-byte */
	UBRR1L = (unsigned char)ubrr;			/* dann low-byte */	
	UCSR1B = (1 << RXEN1)|(1 << TXEN1)|(1 << RXCIE1);	/* empfangen, senden, Interrupt */			
	UCSR1C = (1<<UCSZ10)|(1<<UCSZ11);   	/* 8Datenbit, keine Parity, 1 Stoppbit */
	do{			/* Flush Receive-Buffer (entfernen evtl. vorhandener Werte) */
		UDR1;
		}
	while (UCSR1A & (1 << RXC1));
}
 
/* Funktion, um Character auf Terminal auszugeben */
void usart_putc(unsigned char c) {   
	while(!(UCSR1A & (1 << UDRE1))){		
	}
	UDR1 = c;    						
}
 
/* Funktion, um String auf Terminal auszugeben */
void usart_puts(char *s) {
	while (*s){   				/* solange nicht Stringende erreicht */
		usart_putc(*s);		/* schreib das Zeichen aufs Terminal */
		s++;				/* Zeichen um 1 weiter zaehlen */
    }
} 
 
/* ISR - wenn Daten reinkommen - Daten empfangen*/										
ISR(USART1_RX_vect){			/* USART RX interrupt */
	c = UDR1;				/* schreib, was in UDR steht, in die Variable c */
	usart_putc(c);				/*  Aufuf der Ausgabe, wenn was reinkommt */
}
 
int main(void) {
	init_usart11(MYUBBR); 		/* initialisiere den USART */
	leds_init();
	sei();  					/* Freigabe der Interrupts */
	c = 'a';
 
	while(1){
	leds_set_status(LEDS_RED, 0);
		usart_putc(c);			/* schreib, was in c steht, wieder raus auf Terminal */
		_delay_ms(500);
 
 
	leds_set_status(LEDS_GREEN, 0); 
		_delay_ms(500);
	}
	return 0;
}

Hoffe das hilft...wie die XBEEs zu konfigurieren sind, weißt Du hoffentlich - ich verwende den USART1 und habe nicht die USART-files der NIBOLIB genommen!!



Egon
lokalisieren, eliminieren, Vollzug melden
Letzte Änderung: 11 Jahre 11 Monate her von Egon.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NXB2 Nutzung 11 Jahre 11 Monate her #1155

  • botnovice
  • botnovices Avatar
  • OFFLINE
  • Junior Boarder
  • Beiträge: 8
Hallo Egon,

suuper :clap: , vielen Dank! Ich werde das mal ausprobieren und über meine Ergebnisse hier berichten.
Lieber Gruss,
botnovice
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NXB2 Nutzung 11 Jahre 11 Monate her #1156

  • botnovice
  • botnovices Avatar
  • OFFLINE
  • Junior Boarder
  • Beiträge: 8
Hallo Egon,

prima, die Sache funktioniert, vielen Dank :) ! Ich verwende zwar X-CTU, aber im Terminalfenster gibt der Nibo jetzt die Zeichen zurück, die an ihn geschickt wurden.

Ich werde jetzt das Programm so ausbauen, dass ich Telemetriedaten empfangen kann. Wenn das klappt, melde ich mich wieder bei dir.

Gruss,
Ramon
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NXB2 Nutzung 11 Jahre 11 Monate her #1157

  • botnovice
  • botnovices Avatar
  • OFFLINE
  • Junior Boarder
  • Beiträge: 8
Hallo Egon,

noch eine Frage: Hast du das XBEE-Modul am Nibo2 über die SPI-Schnittstelle angeschlossen, oder hast du dir hardwaremäßig was zurechtgeschnitten? Ich habe nämlich den Eindruck, dass über die SPI ein Datenaustausch mit Gegenverkehr nicht möglich ist. Ich kriege zwar Zeichen zurück, aber die scheinen entgegen meiner ersten Annahme aus X-CTU zu kommen und nicht vom Nibo2.

Gruss,
botnovice
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: NXB2 Nutzung 11 Jahre 11 Monate her #1158

  • Egon
  • Egons Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 316
Hallo botnovice

Es freut mich, daß es klappt (hätte mich auch gewundert, wenn das nicht der Fall gewesen wäre ;) )

Ich habe mir selbst eine Schnittstelle "geschnitzt", ich verwende den Stecker X6:

Stecker X6 PIN2 (GND) -> GND Adatper
Stecker X6 PIN7 (VCC) -> 5 Volt PS Adapter
Stecker X6 PIN8 (TXD) -> DIN Adapter
Stecker X6 PIN10 (RXD) -> DOUT Adapter

Die dafür nötigen Teile (XBEE-Module und Aufsteckplatinen) habe ich mir von watterott electronic gekauft und hab da relativ lang rumgebastelt, bis es lief..)

und ich habe mir selbst die Sende/Empfangsroutinen für den USART1 geschrieben (hast Du ja von mir bekommen)

Ich habe mir dann auch eine eigene Library geschrieben, ich übertrage Daten NIBO <-> PC (z.B. Drehzahl, ubatt, Ticks, Speed, Motorströme usw), die Daten zeige ich per hterm an; ich kann auch Daten an den NIBO schicken (andere Drehzahlsollwerte etc).

Ich möchte später mal am PC darstellen, wie der NIBO fährt (muß mit JAVA etc gehen, hab da mal was vom NIBO1 gesehen, das hat eine TH gemacht - ein Prof. Dr. Ralf Vandenhouten von der Technischen Hochschule Wildau)....hatte den Prof auch schon kontaktiert und um Info gebeten, aber er hat mich ganz schön "abtropfen" lassen - naja, macht nix, muss man's eben selbst rausfinden!

Egon
lokalisieren, eliminieren, Vollzug melden
Letzte Änderung: 11 Jahre 11 Monate her von Egon.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Ladezeit der Seite: 0.081 Sekunden

Werbung