- LiTime Speicher und Akkus         
Ergebnis 1 bis 3 von 3

Thema: Fertiges RN-Projekt: RN-MEGA8 Entwicklungsboard

  1. #1
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1

    Fertiges RN-Projekt: RN-MEGA8 Entwicklungsboard

    Anzeige

    Powerstation Test
    Bild hier  
    Als passende Ergänzung zu den bisherigen Projekten
    ist nun auch ein Mega8 Board fertig

    RN-MEGA 8

    Dieses Board wurde speziell zum Experimentieren mit dem AVR Mikrocontroller MEGA8 entworfen. Der Controller Mega 8 eignet sich wegen seines günstigen Preises als auch geringen Baugröße für zahlreiche Aufgaben, bei denen ein Mega16 überdimensioniert oder einfach zu groß wäre.
    Im Bereich Robotik kann dieser Controller ideal als CoController für Servosteuerung, Motorsteuerung, Display Ausgabe, Sensorüberwachung und viele mehr eingesetzt werden. Oft sind kaum externe Bauteile notwendig. Um den Controller jedoch für eine spezielle Aufgabe programmieren zu können, bedarf es einer Entwicklungsumgebung die quasi alle Ports steckbar zugänglich macht, als auch die visuelle Überwachung der Port-Zustände erlaubt.
    Für diese Aufgabe ist RN-MEGA8 ideal! Ganze 20 Ports können gleichzeitig visuell über Leuchtbalken überwacht werden. Nahezu alle Ports sind über einfache Steckklemmen erreichbar. Zudem verfügt das Board über einen genormten LCD-Display- , I2C-Bus-, RS232-, Servo- und ISP-Anschluß.

    RN-MEGA8 soll also kein Ersatz für das inzwischen recht beliebte und bereits vielfach eingesetzte Board RN-Control sein, sondern vielmehr ein universelles Ergänzungsboard.


    Als hier die Leistungsmerkmale auf einen Blick:

    • Beliebiger Quarz kann eingesteckt werden (7,37 und 16 Mhz im Lieferumfang)
    • Schneller AVR Mega 8 Mikrocontroller (bis zu 8K Flash Speicher, 1K Ram und 0,5K EEPROM), 23 programmierbare I/O Pins, 6 AD Ports u.v.m.
    • 20 Leuchtdioden über zwei Balkenanzeigen auf dem Board – über Jumper deaktivierbar
    • fast alle Portleitungen sind über Steckklemmen mit Hebelmechanik herausgeführt. Kein löten mehr, Drähte und Litze kann einfach eingeklemmt werden
    • Alle Stecker RS232, ISP, LCD, I2C-BUS entsprechen der vereinbarten Roboternetz-Norm
    • Potentiale (GND und +5V) send mehrfach über Steckbuchsen erreichbar. Ideal zum experimentieren da einfach Drähte (ca. 0,5mm²) eingesteckt werden (kein Löten oder schrauben).
    • Integrierter programmierbarer Mini-Lautsprecher um Töne auszugeben
    • Ein 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
    • ISP-Dongel wird über Diode versorgt (da einige Dongels dies nicht eingebaut haben)
    • 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 20 V)
    • Sehr kompakt, nur halbes Europaformat nach Roboternetz-Norm ( 100x78mm)
    • I2C-Bus über die zahlreiche Erweiterungsplatinen anschließbar sind (z.B. Sprachausgabe RN-Speak, Relaisboard RN-Relais, Servoboards, LCD´s, RN-Control uvm.).
    • RN-MEGA8 kann auch selbst als Slave Erweiterung für anderes Board (z.B. RN-Control) dienen
    • Ein- und Ausschalter auf der Platine
    • Programmierbar in zahlreichen Sprachen, z.B. Basic (BASCOM Compiler, eingeschränkt bis 2K 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!
    • Display Anschluß und Kontrastregler auf Board


    Bauanleitung im Download Bereich :
    https://www.roboternetz.de/phpBB2/dl...le&file_id=170

    Platine oder Bausatz kann auch über robotikhardware.de bezogen werden

    Platinen-Übersicht hier:
    https://www.roboternetz.de/phpBB2/viewtopic.php?t=1511

    Hier ein erstes Ansteuerbeispiel. Ist wirklich einfach:

    Code:
    '###################################################
    'rnmega8test.BAS
    'für
    'RoboterNetz Board RN-MEGA8 ab Version 1.0
    'Das neue preiswerte Entwicklungsboard zum experimentieren
    '
    'Aufgabe:
    ' Dieses Testprogramm testet gleich mehrere Eigenschaften auf dem Board
    ' Den verschiedenen Tasten sind bestimmte Funktionen zugeordnet
    ' Taste 1: Zeigt Batteriespannung über RS232 und LCD  an
    ' Taste 2: Gibt per Zufall einen Lottozahlentip ab - 6 aus 49
    ' Taste 3: Einige male Lauflicht über ein Balken-LED´s (2 Ports  bleiben an, da dies RS232 Ports sind)
    '          Bei einer LED kommt es zu leichtem Knacksen, da der Piepser diesen Port ebenfalls nutzt
    
    ' Taste 4: Ein einfaches Sirenengeräusch
    ''Taste 5: Zeigt Copyriht auf LCD Display
    
    
    ' Ser 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
    'Weitere Beispiele und Beschreibung der Hardware
    'unter http://www.Roboternetz.de oder robotikhardware.de
    'Eigene Programmbeispiele sind im Roboternetz gerne willkommen!
    '##############################################################
    
    
    Declare Sub Batteriespannung()
    Declare Sub Lauflicht()
    Declare Function Tastenabfrage() As Byte
    Declare Sub Textauflcdausgeben()
    Declare Sub Lottozahlen()
    Declare Sub Sirene()
    
    $regfile = "m8def.dat"
    
    
    
    
    Dim I As Integer
    Dim N As Integer
    Dim Ton As Integer
    
    Dim Ws As Word                                              'Wird für Messung bei Tastenabfrage verwendet
    Dim Adc_ohne_taste As Word
    
    $crystal = 16000000                                         'Quarzfrequenz
    '$crystal = 7372800                                          'Quarzfrequenz
    
    $baud = 9600
    
    Config Adc = Single , Prescaler = Auto                      'Für Tastenabfrage und Spannungsmessung
    Config Pinc.0 = Input                                       'Für Tastenabfrage
    Portc.0 = 1                                                 'Pullup Widerstand ein
    Start Adc
    
    Const Ref = 2.5 / 1023                                      'Für Batteriespannungsberechnung
             'Bei einer anderen Referenzspannung muss die 2.5 durch entsprechend ersetzt werden
             'Die Referenzspannung wird durch den Spannungsteiler R12/R13 festgelegt
    
    Dim Taste As Byte
    Dim Volt As Single
    
    
    Config Pind.6 = Output
    Portd.6 = 0
    
    
    
    
    ' Falls ein LCD Display angeschlossen ist
    Dim ___lcdno As Bit
    Config Lcdpin = Pin , E = Portc.3 , E2 = Portd.7 , Rs = Portc.2 , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5
    Config Lcd = 40 * 4
    
    
    
    
    
    
    I = 0
    Sound Portb.0 , 400 , 450                                   'BEEP
    Sound Portb.0 , 400 , 250                                   'BEEP
    Sound Portb.0 , 400 , 450                                   'BEEP
    Print
    Print "**** RN-MEGA8 V1.0 *****"
    Print "Das neue Mega 8 Entwicklungsboard von www.robotikhardware.de"
    Print
    Call Textauflcdausgeben
    
    
    Adc_ohne_taste = Getadc(0)                                  'Messe Spannung wenn keine Taste gedrückt ist
    Adc_ohne_taste = Adc_ohne_taste - 2                         'für Toleranz abziehen
    
    
    Do
    
    
       Taste = Tastenabfrage()
       If Taste <> 0 Then
    
          Select Case Taste
             Case 1
                 Call Batteriespannung                          'Taste 1 Zeigt Bateriespannung über RS232 an
              Case 2
                 Call Lottozahlen                               'Gibt Lottozahlen-Tip (ohne Gewähr) über RS232 und lcd
                                                                 'Bei Gewinn bitte mit Autor Frank teilen :-)
             Case 3
                Call Lauflicht                                  'Einige male Lauflicht über Balken LED´s anzeigen
             Case 4
                Call Sirene
             Case 5
                Call Textauflcdausgeben
    
    
    
          End Select
          Sound Portb.0 , 400 , 500                             'BEEP
       End If
    
       Waitms 100
    Loop
    
    End
    
    
    
    
    'Diese Unterfunktion fragt die Tastatur am analogen Port ab
    Function Tastenabfrage() As Byte
       Tastenabfrage = 0
       Ton = 600
       Ws = Getadc(0)
    '   Print "ws=" ; Ws
       If Ws < Adc_ohne_taste Then
          Select Case Ws
             Case 880 To 900
                Tastenabfrage = 1
                Ton = 550
             Case 800 To 850
                Tastenabfrage = 2
                Ton = 500
             Case 650 To 690
                Tastenabfrage = 3
                Ton = 450
             Case 450 To 500
                Tastenabfrage = 4
                Ton = 400
             Case 230 To 280
                Tastenabfrage = 5
                Ton = 350
             Case Else
                Print "Bitte Tastenabfrage an Messert ws=" ; Ws ; " anpassen!"
          End Select
          Sound Portb.0 , 400 , Ton                             'BEEP
       End If
    
    End Function
    
    
    
    'Diese Unterfunktion zeigt Bateriespannung an
    Sub Batteriespannung()
    Local W As Word
       Start Adc
       W = Getadc(1)
       Volt = W * Ref
       Volt = Volt * 5.2941
       Print "Die aktuelle Spannung beträgt: " ; Volt ; " Volt"
    
       'Auch auf LCD ausgeben
       ___lcdno = 0
       Cls
       Locate 1 , 1
       Lcd "Spannung:" ; Fusing(volt , "#.##") ; " Volt"
    
    End Sub
    
    
    'Dies Funktion gibt auf einem angeschlossenen LCD-Display (2x27 Zeichen)
    'eine Copyright Meldung aus
    Sub Textauflcdausgeben()
     ___lcdno = 0                                               'Ober Displayhälfte initialisieren, wenn das Display zwei LCD-Controller besitzt
     Initlcd
     Cursor Off
     Cls
     Home
     Lcd "Das neue Experimentierboard"
     Locate 2 , 4
     Lcd "***** RN-MEGA 8 *****"
    
     ___lcdno = 1                                               'Dies ist nur notwendig wenn das Display zwei LCD-Controller besitzt
     Initlcd
     Cursor Off
     Cls
     Home
     Lcd "nach Roboternetz Standard"
     Locate 2 , 3
     Lcd "(c) robotikhardware.de"
    
    End Sub
    
    'Einige male Lauflicht über Balkenanzeige laufen lassen
    Sub Lauflicht()
    
    
       Config Portd = Output
       Config Pinb.0 = Output
       Config Pinb.1 = Output
    
       Portd = 0
       Portb.0 = 0
       Portb.1 = 0
       For N = 1 To 10
          For I = 0 To 9
             Select Case I
                Case 0 To 7 :
                   Portd.i = 1
                   Waitms 150
                   Portd.i = 0
                Case 8:
                   Portb.0 = 1
                   Waitms 150
                   Portb.0 = 0
                Case 9:
                   Portb.1 = 1
                   Waitms 150
                   Portb.1 = 0
    
    
             End Select
          Next I
       Next N
       Config Portd = Input
       Config Pinb.0 = Input
       Config Pinb.1 = Input
       !Call 0                                                  'Führt RESET aus
    End Sub
    
    
    Sub Lottozahlen()
      Print "Lotozahlen: ";
       ___lcdno = 0                                             'Ober Displayhälfte initialisieren, wenn das Display zwei LCD-Controller besitzt
       Initlcd
       Cursor Off
       Cls
       Home
       Lcd "Lottozahlentip-ohne Gewaehr):" "
       Locate 2 , 1
        For I = 1 To 6
         N = Rnd(48)
         N = N + 1
         Print " " ; N ;
         Lcd " " ; N;
       Next I
       Print
    End Sub
    
    
    Sub Sirene()
        For N = 1 To 5
           For I = 500 To 900
             Sound Portb.0 , 5 , I
           Next I
           For I = 900 To 500 Step -1
             Sound Portb.0 , 5 , I
           Next I
        Next N
    End Sub

    Kombinationsmöglichkeiten als Grafik hier

  2. #2
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Wichtige Ergänzung eines Abschnittes der Doku:
    https://www.roboternetz.de/wissen/index.php/RN-Mega8

    Bitte beachten:

    4. Über den Spindeltrimmer UREF wird die Referenzspannung festgelegt. Diese ist später wichtig für das messen von analogen Spannungen. Über diesen Spannungsteiler kann diese beliebig eingestellt werden. Beim Einstellen sollte man ein Multimeter zu Hilfe nehmen und die Spannung am Spindeltrimmer oder am Pin 21 des Mega8 Controllers messen. Zusätzlich kann dieser Spindeltrimmer mit Jumper JPREF überbrückt werden, dadurch wird die Referenzspannung automatisch auf 5V festgelegt. Wichtig: Beim ersten Gebrauch ist zu empfehlen die Referenzspannung auf 5V einzustellen. Dies kann über den das Poti geschehen. Der Jumper JREF darf nur eingesteckt werden wenn das POTI auf 5V geregelt wurde da es ansonsten im ungüngsten Fall (Poti Stellung auf GND geregelt) zu einem Kurzschluss kommt der das Poti zerstört. Vor der ersten Messung sollte die Referenzspannung mit einem Messgerät kontrolliert werden, da die analogen Ports durch eine falsch eingestellte Referenzspannung beschädigt werden können, wenn eine zu hohe Spannung gemessen wird. Bedenken Sie hier auch das die Tasten von RN-Mega8 auch über einen analogen Port gemessen werden.

  3. #3
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Aktueller Hinweis:

    RN-Mega8 hat einen Nachfolger bekommen. Es ist nun nur noch das neue Board RN-Mega8Plus als Platine oder Bausatz erhältlich
    Siehe:
    https://www.roboternetz.de/phpBB2/viewtopic.php?t=22211

Berechtigungen

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

LiTime Speicher und Akkus