Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Rasenmaehroboter Test

K (Basic Beispieltestprogramm)
K (Siehe auch)
Zeile 386: Zeile 386:
 
End Sub
 
End Sub
 
</pre>
 
</pre>
 +
 +
==Anschlussbeispiele==
 +
Da sich Einsteiger mit dem Anschluss von Sensoren oder Verbrauchern manchmal etwas schwer tun, hie reine Skizze wie man zum Beispiel bestimmte Dinge wie Entfernungssensoren, Servos, Lämpchen oder Helligkeits- bzw. Temperatursensoren anschließen könnte. Bei den Lämpchen sollte man beachten das diese insgesamt nicht 1A Strom benötigen, da ansonsten der zuständige Treiber (Motortreiber L293D) überhitzt würde. Natürlich könnte man auch größere Lasten schalten indem man z.B. statt den Lämpchen Relais anschließt. Auch viele weitere Sensoren könnten natürlich an den noch freien Ports angeschlossen werden, beachten muss man nur ob der Sensor einen Digital- oder Analogport benötigt.
 +
 +
[[Bild:rncontrolanschlussbeispiel.png|center]]
 +
  
 
==Siehe auch==
 
==Siehe auch==

Version vom 7. Februar 2006, 13:04 Uhr

Ein bewährtes Microcontrollerboard das wie das RNBFRA-Board in der Roboternetz-Community infolge einer Diskussion entstand. Es sollte ein Board werden das ein gutes Preis- / Leistungsverhältnis bietet und für vielfältige Aufgaben geeignet ist. Das Vorhaben ist dank der zahlreichen Anregungen gut gelungen, das Board gibt es inwischen nicht nur als Bauanleitung mit Platine sondern auch als Bausatz und sogar Fertigmodul. Es hat sich als preiswertes Universalboard für Roboter, Steuerungsaufgaben etc. als auch als ideales Einsteigerboard einen guten Namen im Roboternetz gemacht, daher gibt es für dieses Board auch ein eigenes Unterforum im Roboternetz. Es gibt inzwischen unzählige Anwendungen die mit RN-Control umgesetzt wurden. Trotz günstigem Preis ist ein sehr flexibels Board für unzählige Anwendungsmöglichkeiten entstanden. Über den I2C-Bus stehen zahlreiche Erweiterungsboards zur Verfügung, so können beispielsweise die gleichen I2C-Erweiterungen wie beim großen RNBFRA-Board kombiniert werden (Relasikarte, Sprachausgabe usw.) Roboternetz

Funktionen des Boards
Schaltplan zum Board
Fehler beim Erstellen des Vorschaubildes: /www/htdocs/w0177223/rn-wissen.de/wiki/includes/limit.sh: line 101: 574358 Aborted /usr/bin/timeout $MW_WALL_CLOCK_LIMIT /bin/bash -c "$1" 3>&-

Error code: 134
Bestückungsplan zum Board

Besonders viel Wert wurde auch auf den einfachen Aufbau und viele Experimentier- und Einsatzmöglichkeiten gelegt. Mit diesem Board läßt sich u.a. schon ein recht ausgereifter Roboter konstruieren. Ultraschallsensoren, Infrarot Entfernungssensoren, Motoren u.v.m. können direkt angeschlossen werden. Da das Board auch in der Community Roboternetz recht beliebt ist, findet man dort auch viele Tips und Programme.

[Diagramm hier]

Hier die Leistungsmerkmale auf einen Blick:

  • Wahlweise 8 oder 16 Mhz Taktfrequenz (beide Quarze werden mitgeliefert, 16 Mhz bereits eingesteckt)
  • Schneller AVR Mega 32 Mikrocontroller,32K Speicher, 2K Ram und 1K EEPROM), 32 programmierbare I/O Pins,8 AD Ports u.v.m.
  • 8 Leuchtdioden per DIP-Schalter deaktivierbar und anderen Ports per Steckbrücke beliebig zuzuordnen
  • alle Portleitungen sind über Stecker nach außen geführt. Die Steckernorm entspricht der Roboternetz-Definition als auch der des Atmel Entwicklungsboards STK500
  • alle Ports sowie +5V und GND sind zusätzlich über Steckbuchsen erreichbar. Ideal zum experimentieren da einfach Drähte (ca. 0,5mm) eingesteckt werden (kein Löten oder schrauben). So können einfach andere LED´s zugeordnet werden oder ein Steckbrett verbunden werden
  • Der wichtige Port A (wahlweise 8 digitale oder analoge Ein- o. Ausgänge) ist zusätzlich noch über eine Qualitätssteckklemme mit Hebel herausgeführt
  • Motortreiber ca. 1 A belastbar - für zwei Getriebemotoren oder 1 Schrittmotor. Dieser kann auch für andere Zwecke (Relaisansteuerung, Lämpchen etc.) genutzt oder einfach entfernt werden
  • Integrierter programmierbarer Mini-Lautsprecher um Töne auszugeben
  • 1 Reset Taster
  • 5 Taster für beliebige Verwendung. Sie belegen nur einen analogen Port!
  • 5 V Spannungsstabilisierung mit 2 A Belastbarkeit, auch herausgeführt für Erweiterungen Eingangsspannung gegen Verpolung geschützt
  • RS232 mit normgerechtem Pegelwandler (MAX232) - PC direkt anschließbar
  • Batteriespannung kann im Programm abgefragt werden
  • ISP - Programmierschnittstelle für übliche AVR-Programmieradapter (10polig)
  • Betriebsspannung wahlweise zwischen 7 und 18V (empfohlen 7 bis 14 V) - wahlweise auch höhere Motorspannung bis 24V möglich)
  • Sehr kompakt, nur halbes Europaformat nach Roboternetz-Norm (ca. 100x75mm)
  • I2C-Bus über die zahlreiche Erweiterungsplatinen anschließbar sind (z.B. Sprachausgabe RN-Speak, Relaisboard RN-Relais, Servoboards, LCD´s uvm.)
  • Programmierbar in zahlreichen Sprachen, z.B. Basic (BASCOM Compiler, eingeschränkt bis 4K wird mitgeliefert), C (C-Compiler GCC wird mitgeliefert), Assembler, Pascal
  • Deutsche Doku mit Basic Programmbeispiel
  • Preiswerter Bausatz erhältlich - einfacher Aufbau
  • Kein Starter- oder Applikationsboard notwendig - bereits alles integriert!
  • alle wichtigen Bauteile gesockelt, somit auch bei falscher Beschaltung durch Einsteiger ,immer kostengünstig reparierbar (einfach neues IC einstecken)

http://www.robotikhardware.de/bilder/rncontro4.jpg

Stückliste

Bauteil Wert       Beschreibung                   Reichelt Best.Nr.
C1      100n       Keramik Kondensator            KERKO100N
C2      100n       Keramik Kondensator            KERKO100N   
C3      22pf       Keramik Kondensator            KERKO-500 22p           
C4      22pf       Keramik Kondensator            KERKO-500 22p          
C5      4,7uF      Elko                           SM 4,7/50RAD           
C6      4,7uF      Elko                           SM 4,7/50RAD           
C7      4,7uF      Elko                           SM 4,7/50RAD           
C8      4,7uF      Elko                           SM 4,7/50RAD           
C9      1uF        Elko                           SM 1,0/63RAD           
C10     100n       Keramik Kondensator            KERKO100N              
C11     100n       Keramik Kondensator            KERKO100N              
C12     100n       Keramik Kondensator            KERKO100N              
C13     1000uF     Elko                           RAD 1000/35            
C14     100n       Keramik Kondensator            KERKO100N              
C15     100n       Keramik Kondensator            KERKO100N              
C16     100n       Keramik Kondensator            KERKO100N              
C17     220uF      Elko                           RAD 220/35             
C18     100n       Keramik Kondensator            KERKO100N              
D1      1N4148     Diode                          1n 4148                
D2      BYV27      Diode                          BYV 27/200             
I2C-BUS I2C        Wannenbuchse                   WSL 10G                
IC1     MAX232     RS232 Treiber                  MAX 232 CPE             
IC2     7805       Spannungsregler                78S05                  
IC3     L293D      Motortreiber                   L 293 D                
IC4     MEGA16-P   Atmel Mega 16 oder 32          ATMEGA 16-16           
ISP     AVR-ISP    Wannenbuchse                   WSL 10G                
JP1                Kontaktbuchse (manuell kürzen) SPL20                  
JP2                Kontaktbuchse (manuell kürzen) SPL 20                 
JP3                Kontaktbuchse (manuell kürzen) SPL 20                  
JP4                Kontaktbuchse (manuell kürzen) SPL 20                 
JP5                Kontaktbuchse (manuell kürzen) SPL 20                 
JP6                Stiftleiste                    Stiftl. 2x50g (teilen) 
JP7                Kontaktbuchse (manuell kürzen) SPL 20                 
JP8                Stiftleiste                    LU 2,5 MS2             
LED1               Leuchdiode Low                 LED 3MM 2MA GN         
LED2               Leuchdiode Low                 LED 3MM 2MA GN         
LED3               Leuchdiode Low                 LED 3MM 2MA GN         
LED4               Leuchdiode Low                 LED 3MM 2MA GN         
LED5               Leuchdiode Low                 LED 3MM 2MA GN         
LED6               Leuchdiode Low                 LED 3MM 2MA GN         
LED7               Leuchdiode Low                 LED 3MM 2MA GN         
LED8               Leuchdiode Low                 LED 3MM 2MA GN         
MOTOREN            Schraublemme 4 polig           AKL 101-04             
PORTA              Steckklemme 8 polig            WAGO 233-508           
PORTB              Wannenbuchse                   WSL 10G                
PORTC              Wannenbuchse                   WSL 10G                
PORTD              Wannenbuchse                   WSL 10G                
POWER              Schraubklemme 2 polig          AKL 101-02              
Q1                 Quarz 16 Mhz                   16-HC18                
R1      100k       Widerstand 100k                1/4W 100k              
R2      1k         Widerstand 1k                  1/4W 1k                
R3      10k        Widerstand 10k                 1/4W 10k               
R4      1k         Widerstand 1k                  1/4W 1k                
R5      1k         Widerstand 1k                  1/4W 1k                
R6      1k         Widerstand 1k                  1/4W 1k                
R7      1k         Widerstand 1k                  1/4W 1k                
R8      1k         Widerstand 1k                  1/4W 1k                
R9      22k        Widerstand 22k                 1/4W 22k               
R10     5,1k       Widerstand 5,1k                1/4W 5,1k              
R11     10k        Widerstand 10k                 1/4W 10k               
R12     10k        Widerstand 10k                 1/4W 10k               
R13     10k        Widerstand 10k                 1/4W 10k               
R14     10k        Widerstand 10k                 1/4W 10k               
RESET   TASTER3301 Minitaster liegend             TASTER 3301            
RN1                Widerstandsnetzwerk            SIL 9-8 1,0k           
RS232              Stiftleiste 3 polig            LU 2,5 MS3             
S1                 DIP Schalter 8 polig           NT08                   
SPEAKER F/CM12P    Mini Piezo Lautsprecher        SUMMER EPM 121         
T1      TASTER3301 Minitaster liegend             TASTER 3301            
T2      TASTER3301 Minitaster liegend             TASTER 3301            
T3      TASTER3301 Minitaster liegend             TASTER 3301            
T4      TASTER3301 Minitaster liegend             TASTER 3301            
T5      TASTER3301 Minitaster liegend             TASTER 3301            
UMESS              Stiftleiste                    LU 2,5 MS2             
UMOT               Stiftleiste                    LU 2,5 MS2             
UREF               Stiftleiste                    LU 2,5 MS2


Basic Beispieltestprogramm

'################################################### 
'rncontroltest.BAS 
'für 
'RoboterNetz Board RN-CONTROL ab Version 1.1 
'Das neue preiswerte Controllerboard zum experimentieren 

' Achtung: 
' Diese Demo ist mit Bascom Compiler 1.11.7.7 getestet 

' 
'Aufgabe: 
' Dieses testprogramm testet gleich mehrere Eigenschaften auf dem Board 
' Den verschiedenen Tasten sind bestimmte Funktionen zugeordnet 
' Taste 1: Zeigt Batteriespannung über RS232 an 
' Taste 2: Angeschlossene Motoren beschleunigen und abbremsen 
' Taste 3: Einige male Lauflicht über LED´s anzeigen. Am I2C-Bus 
'          darf in diesem Moment nichts angeschlossen sein 
' Taste 4: Zeigt analoge Messwerte an allen Port A PIN´s über RS232 an 
''Taste 5: Zeigt digitalen I/O Zustand von PA0 bis PA5 an 


' Sehr gut kann man aus dem Demo auch entnehmen wie Sound ausgegeben wird, 
' wie Tasten abgefragt werden und wie Subroutinen und Funktionen angelegt werden 

'Autor: Frank 
'####################################################### 


Declare Sub Batteriespannung() 
Declare Sub Motortest() 
Declare Sub Lauflicht() 
Declare Sub Showporta() 
Declare Sub Showdigitalporta() 
Declare Function Tastenabfrage() As Byte 


$regfile = "m32def.dat" 
' bei Mega 16 $regfile = "m16def.dat" 
$framesize = 32 
$swstack = 32 
$hwstack = 32 


Dim I As Integer 
Dim N As Integer 
Dim Ton As Integer 

$crystal = 16000000                           'Quarzfrequenz 
$baud = 9600 

Config Adc = Single , Prescaler = Auto        'Für Tastenabfrage und Spannungsmessung 

Config Pina.7 = Input                         'Für Tastenabfrage 
Porta.7 = 1                                   'Pullup Widerstand ein 


Const Ref = 5 / 1023                          'Für Batteriespannungsberechnung 

Dim Taste As Byte 
Dim Volt As Single 

' Für Motorentest 
'Ports für linken Motor 
Config Pinc.6 = Output                       'Linker Motor Kanal 1 
Config Pinc.7 = Output                       'Linker Motor Kanal 2 
Config Pind.4 = Output                       'Linker Motor PWM 
'Ports für rechten Motor 
Config Pinb.0 = Output                       'Rechter Motor Kanal 1 
Config Pinb.1 = Output                       'Rechter Motor Kanal 2 
Config Pind.5 = Output                       'Rechter Motor PWM 
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down 
Pwm1a = 0 
Pwm1b = 0 
Tccr1b = Tccr1b Or &H02                      'Prescaler = 8 





I = 0 
Sound Portd.7 , 400 , 450                    'BEEP 
Sound Portd.7 , 400 , 250                    'BEEP 
Sound Portd.7 , 400 , 450                    'BEEP 
Print 
Print "**** RN-CONTROL 1.4 *****" 
Print "Das neue Experimentier- und Roboterboard" 
Print "Weitere passende Zusatzboards bei www.robotikhardware.de" 
Print 
Do 




   Taste = Tastenabfrage() 
   If Taste <> 0 Then 

      Select Case Taste 
         Case 1 
            Call Batteriespannung    'Taste 1 Zeigt Bateriespannung über RS232 an 
         Case 2 
            Call Motortest           'Taste 2 Motoren beschleunigen und abbremsen 
         Case 3 
            Call Lauflicht           'Einige male Lauflicht über LED´s anzeigen. 
                                     'Am I2C-Port darf in diesem Moment nichts angeschlossen sein 
         Case 4 
            Call Showporta           'Zeigt Messwerte an allen Port A PIN´s 
         Case 5 
            Call Showdigitalporta    'Zeigt digitalen I/O Zustand von PA0 bis PA5 an 



      End Select 
      Sound Portd.7 , 400 , 500      'BEEP 
   End If 

   Waitms 100 
Loop 

End 



'Diese Unterfunktion fragt die Tastatur am analogen Port ab 
Function Tastenabfrage() As Byte 
Local Ws As Word 

   Tastenabfrage = 0 
   Ton = 600 
   Start Adc 
   Ws = Getadc(7) 
  ' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws 
   If Ws < 500 Then 
      Select Case Ws 
         Case 400 To 450 
            Tastenabfrage = 1 
            Ton = 550 
         Case 330 To 380 
            Tastenabfrage = 2 
            Ton = 500 
         Case 260 To 305 
            Tastenabfrage = 3 
            Ton = 450 
         Case 180 To 220 
            Tastenabfrage = 4 
            Ton = 400 
         Case 90 To 130 
            Tastenabfrage = 5 
             Ton = 350 
 '        Case Else 
'              Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws 
      End Select 
      Sound Portd.7 , 400 , Ton                             'BEEP 

   End If 


End Function 



'Diese Unterfunktion zeigt Batteriespannung an 
Sub Batteriespannung() 
Local W As Word 
   Start Adc 
   W = Getadc(6) 
   Volt = W * Ref 
   Volt = Volt * 5.2941 
   Print "Die aktuelle Spannung beträgt: " ; Volt ; " Volt" 

End Sub 


'Testet Motoren und Geschwindigkeitsreglung 
Sub Motortest() 
   'Linker Motor ein 
   Portc.6 = 1                          'bestimmt Richtung 
   Portc.7 = 0                          'bestimmt Richtung 
   Portd.4 = 1                          'Linker Motor EIN 

   'Rechter Motor ein 
   Portb.0 = 1                          'bestimmt Richtung rechter Motor 
   Portb.1 = 0                          'bestimmt Richtung rechter Motor 
   Portd.5 = 1                          'rechter Motor EIN 


   I = 0 
   Do 
      Pwm1a = I 
      Pwm1b = I 
      Waitms 40 
      I = I + 5 
   Loop Until I > 1023 

   Wait 1 
   Do 
      Pwm1a = I 
      Pwm1b = I 
      Waitms 40 
      I = I - 5 
   Loop Until I < 1 
   Pwm1a = 0                            'Linker Motor aus 
   Pwm1b = 0                            'rechter Motor aus 
End Sub 


' Einige male Lauflicht über LED´s anzeigen. Am I2C-Port darf in diesem 
' Moment nichts angeschlossen sein 
Sub Lauflicht() 

   Config Portc = Output 
   Portd = 0 
   For N = 1 To 10 
      For I = 0 To 7 
         Portc.i = 0 
         Waitms 100 
         Portc.i = 1 
      Next I 
   Next N 
   Config Portc = Input 
End Sub 


'Zeigt Die Analogen Messwerte An Port A An 
Sub Showporta() 
Local Ws As Word 

   Config Porta = Input 
   For I = 0 To 5                        ' Alle internen Pullup Widerständ ein,bis auf Batteriespannungsmessungsport 
      Porta.i = 1 
   Next I 

   Print 
   Print "Ermittelte Messwerte an Port A:" 
   For I = 0 To 7                        ' Alle Eingäne inkl.messen 
      Start Adc 
      Ws = Getadc(i) 
      Volt = Ws * Ref 
      Print "Pin " ; I ; " ADC-Wert= " ; Ws ; " bei 5V REF waeren das " ; Volt ; " Volt" 
   Next I 
End Sub 


'Zeigt den Zustand einiger freier I/O von Die Analogen Messwerte An Port A An 
Sub Showdigitalporta() 
Local Zustand As String * 6 
   Config Porta = Input 
   For I = 0 To 5                        ' Alle internen Pullup Widerständ ein,bis auf Batteriespannungsmessungsport 
      Porta.i = 1 
   Next I 

   Print 
   Print "Ermittelter I/O Zustand Port A:" 
   For I = 0 To 5                        ' Alle Eingäne inkl.messen 
      If Pina.i = 1 Then 
         Zustand = "High" 
      Else 
         Zustand = "Low" 
      End If 
      Print "Pin " ; I ; " I/O Zustand= " ; Pina.i ; " " ; Zustand 
   Next I 
End Sub

Anschlussbeispiele

Da sich Einsteiger mit dem Anschluss von Sensoren oder Verbrauchern manchmal etwas schwer tun, hie reine Skizze wie man zum Beispiel bestimmte Dinge wie Entfernungssensoren, Servos, Lämpchen oder Helligkeits- bzw. Temperatursensoren anschließen könnte. Bei den Lämpchen sollte man beachten das diese insgesamt nicht 1A Strom benötigen, da ansonsten der zuständige Treiber (Motortreiber L293D) überhitzt würde. Natürlich könnte man auch größere Lasten schalten indem man z.B. statt den Lämpchen Relais anschließt. Auch viele weitere Sensoren könnten natürlich an den noch freien Ports angeschlossen werden, beachten muss man nur ob der Sensor einen Digital- oder Analogport benötigt.

Rncontrolanschlussbeispiel.png


Siehe auch

Weblinks

Platinenservice.gif hier Bausatzservice.gif hier Fertigmodulservice.gif hier


LiFePO4 Speicher Test