-         
+ Antworten
Ergebnis 1 bis 8 von 8

Thema: Tastatur mit ccbasic ansteuern

  1. #1
    Kay-Uwe
    Gast

    Tastatur mit ccbasic ansteuern

    Hallo

    wahrscheinlich entspricht meine Frage nicht dem Niveau diese Forums.
    Trotzdem: Wie könnte ein Programm aussehen mit dem ich die Tastatur
    so ansteuere, dass wenn man auf 1 drückt das Programm x
    startet. Bsp.:

    #Loop
    if Taste = 1 then gosub x
    goto Loop

    #x

    ...

    funkt natürlich nicht, nur was muss ich definieren und schreiben damit es
    funktioniert? Verwende normale 12 Tasten Tastatur und wahrscheinl. mit ad[8].

    Wie immer danke für jede Hilfe.
    (hoffe, dass ich irgendwann so viel weiß um auch jemandem helfen zu können.)

    Gruß Kay-Uwe

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.03.2004
    Ort
    Paderborn
    Alter
    32
    Beiträge
    614
    du schließt eine "normale 12 Tasten Tastatur" an einen AD-Port an.
    Ich nehme mal an, die einzelnen Tasten sind über unterschiedliche Widerstände an den Port angeschlossen und bilden mit einem Widerstand gegen die andere Seite der Versorgungsspannung einen Spannungsteiler, der deutlich unterschiedliche Spannungen je nach gedrückter Taste liefert. Oder wie willst du die rein hardwareseitig anschließen?
    Wenn du das so machst, muss deine Abfrage etwas in der Art von
    If taste >25 and taste<50 then gusub x
    sein. Im Beispiel springt er, wenn am AD (Vcc/255)*25 bis (Vcc/255)*50 also knapp 0,5 bis 1 Volt anliegen. Die für die einzelnen Tasten charakteristischen Spannungen musst du aus deinem Aufbau errechnen/messen.
    Definieren musst du nur am Anfang
    define taste ad[8]
    Während des Drückens der Taste wirst du Zwischenwerte kriegen. Du solltest also auf eine Veränderung reagieren indem du kurz wartest(dafür gibt es den Pause-Befehl) und dann den Wert abfragst.
    it works best if you plug it (aus leidvoller Erfahrung)

  3. #3
    Kay-Uwe
    Gast
    Hallo

    dachte die ad[8] sind die Ports in der C-control für die normaler weise
    die Tastatur gedacht ist. Oder welche Ports müssen angesprochen werden
    bei dem in der C-contorl vorgefärtigten Portleiste für die Tastatur?
    Und wie könnte ein Programm aussehen?

    danke, Kay-Uwe

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    20.11.2003
    Ort
    Stutensee
    Alter
    28
    Beiträge
    57
    Hi,

    ich hab bei unsrem Bot auch mehrere Programme in einem die mit Tastatur angesteuert werden können (Die Tastatur die beim Application board dabei ist hab ich hier verwendet)

    Hier mal das Programm:
    Code:
    '############################################################
    '# BASIC Programm für den 1337bot                           #
    '# Abschlussprojekt von Marcel Krüger und Kai Stroheker     #
    '# an der Erich Kästner Realschule Blankenloch              #
    '############################################################
    
    'AD Eingänge definieren
    DEFINE SHARP_L AD[1]
    DEFINE SHARP_R AD[2]
    DEFINE LINE_L AD[3]
    DEFINE LINE_R AD[4]
    DEFINE LIGHT_L AD[5]
    DEFINE LIGHT_R AD[6]
    DEFINE keyboard AD[8]
    
    
    'Digitalports definieren
    DEFINE MOTOR_L_V PORT[1]    'Linker Motor, vorwärts
    DEFINE MOTOR_L_R PORT[2]    'Linker Motor, rückwärts
    DEFINE MOTOR_R_V PORT[3]    'Rechter Motor, vorwärts
    DEFINE MOTOR_R_R PORT[4]    'Rechter Motor, rückwärts
    
    
    'Auswahlmenü
    #auswahl
      GOSUB halt                'Motoren anhalten
    
      BEEP 300,10,2
      BEEP 400,10,2
    
      PRINT
      PRINT "===1337bot====================="
      PRINT "Programmauswahl:"
      PRINT "1: Linienfolgen"
      PRINT "2: Ausweichen"
      PRINT "3: Lichtfinden"
      PRINT
      PRINT "#: Zur Auswahl zurueckkehren"
      PRINT "*: Programm komplett beenden"
      PRINT "==============================="
      PRINT
      GOTO key_abfrage
    auswahl
    
    
    'Tastatur abfrage
    #key_abfrage
      SLOWMODE ON
      WAIT keyboard
      SLOWMODE OFF
    
      IF keyboard = 90  THEN print "0"           '0
      IF keyboard = 68  THEN GOTO linienfolgen   '1
      IF keyboard = 152 THEN GOTO ausweichen     '2
      IF keyboard < 239 AND keyboard > 233 THEN GOTO lichtfinden    '3
      IF keyboard = 46  THEN print "4"           '4
      IF keyboard = 132 THEN print "5"           '5
      IF keyboard = 214 THEN print "6"           '6
      IF keyboard = 23  THEN print "7"           '7
      IF keyboard = 111 THEN print "8"           '8
      IF keyboard = 193 THEN PRINT "9"           '9
      IF keyboard = 0   THEN GOTO beenden        '*
    key_abfrage
    Die Tastatur ist am AD[8]
    Zuerst werden alle Ein und Ausgänge definiert, dann ein Menü ausgegeben und dann auf die Tastatur eingabe gewartet.

    Das programm geht natürlich noch weiter, aber das ist der Abschnitt der hier eine rolle spielt.

    Ich hoffe dir geholfen zu haben

    Gruß
    Marcel

  5. #5
    Kay-Uwe
    Gast
    Hallo Marcel

    danke, ich denke damit wird es funktionieren.
    Nur wie kommts du auf diese Werte 90, 68,152...?

    Fröhliche Grüße
    Kay-Uwe

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    20.11.2003
    Ort
    Stutensee
    Alter
    28
    Beiträge
    57
    Hi

    Ein AD eingang wandelt die Spannung ja in einen Wert zwischen 0 und 255 um.
    Die Tastatur funktioniert über ein Port und jede Taste ist sozusagen über einen bestimmten Widerstand mit dem Port verbunden.

    Je nachdem, wenn du jetzt z.B. 1 drückst, hat der Widerstand einen Wert von 1kOhm und du bekommst den entsprechenden Wert
    Wenn du 2 drückst, hat der Widerstand einen wert von 2k und du bekommst einen entsprechend niedrigeren Wert
    usw..

    EDIT:

    Mit so einem Programm hab ich meine Tastatur getestet:
    Code:
    DEFINE keyboard AD[8]
    
    #loop
      print keyboard
      pause 5
    GOTO loop
    Wenn du dann irgendeine Taste drückst, wird dir ausgegeben was für einen Wert die Taste hat.

  7. #7
    Kay-Uwe
    Gast
    Hi, marcel

    danke, für die unkomplizierte Hilfe.
    Mit den Informationen von dem C-control Handbuch und dem Buch
    Steuern, Regeln... hatte ich die größten probleme, hir im Forum
    wird es meist einfach und unkompiziert erklärt. Gibt es überhaupt
    Literatur über ccBasic die für einen Anfänger geeignet wäre, hab nichts
    mit guten Bewertungen im Internet gefunden.

    Auf jedenfall funkt. es jetzt ohne Probleme.

    Nochmal vielen dank an alle die mir geschrieben haben,
    werde das Forum weiterempfehlen.

    Gruß Kay-Uwe

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    20.11.2003
    Ort
    Stutensee
    Alter
    28
    Beiträge
    57
    Hi

    Das C-COntrol Kompendium hier: http://free.pages.at/cyblord/amr/cc1/cc1.htm
    find ich nicht schlecht, aber Bücher weiß ich im mom keine.

    Ich hab auch grad erst meinen ersten Bot gebaut, in den ganz einfachen dingen kann ich schon bisschen helfen

    Gruß
    Marcel

+ Antworten

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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