Apple //c für Robotik nutzen?

  • OK, und wo hängst Du jetzt grad?
    So wie ich das sehe, gibt es ein paar Punkte zu bewerkstelligen:
    - Übertragung von Daten zwischen PC und Apple
    - Konfiguration der seriellen Kommunikation mit Relaiskarte
    - Ansteuerung der Relaiskarte
    - Programmierung der Aufgabe (Eisenbahn)


    - Die Übertragung mit ADTPro klappt schon, bzw. ist obsolet, oder?


    - Aus der länglichen technischen Referenz brauchst Du nur die Befehle um auf
    2400,8N1 ohne Flowcontrol umzuschalten. Wenn ich das recht verstehe istdas
    <Ctrl>-I 1B <CR>
    8N1 ist default (wäre 0D und 0P)
    Flowcontrol:
    <Ctrl>-I XD
    Um das auszuprobieren würde ich das mit einem genauso konfigurierten PC mit
    Null-Modem-Kabel testen. Damit Du weißt, ob das auch so klappt.


    - Wenn ich das richtig verstanden hab, funktioniert die Ansteuerung der Relaiskarte
    auch mit kryptischen, abere dafür schnellen Textbefehlen. Sowas wie: Schalte auf
    Karte x das Relais y ein/aus/um.


    - Wenn Du das alles hast, kommt der eigentlich Spaß: Eisenbahn steuern.


    Ich hab leider weder eine Eisenbahn, noch eine serielle Relaiskarte oder einen Apple II,
    aber vom Prinzip ist das alles ähnlich.


    Viel Erfolg

    Das Genie beherrscht das Chaos

  • Hallo ChaosRom,


    das hast du alles richtig verstanden. Woran Du den genannten Code zur Konfiguration der SSC erkannt hast, kann ich zwar nicht nachvollziehen, aber gut, wenn man von diesem abscheulichen Wust nur so wenig braucht. Mir ist allerdings nicht klar, ob man mit dieser Zauberformel innerhalb eines Applesoft Basic Programms etwas anfangen kann. Die Firmware der SSC ist ja Pascal. Muss man sie also auch auf Pascal anquatschen? Zerplatzt damit der Traum von einem BASIC-Programm, dass noch einigermaßen lesbar ist?


    Auf der Diskette, die ich fürs Relaiskartensteuerprogramm vorbereitet habe, hab ich eine Datei USER.PROFILE geschmissen, die bereits den Printeranschluss (1) auf die Realaiskarte einschießt und den Modemanschluss (2) auf ADTPro. Wann diese Konfiguration genau gelesen wird, weiß ich nicht. Ich hoffe, dass das der ProDOS Befehlssatz bereits erledigt, den ich ebenfalls draufgepackt habe. Damit man nach Programmende mit Basic weitermachen kann, ist auch noch BASIC.SYSTEM auf der Diskette. Jetzt muss eigentlich nur noch das Programm selbst unter dem Namen STARTUP drauf und dann sollte alles nach Einlegen der Diskette und Einschalten des IIc automatisch öffnen. So habe ich zumindest die Broschüre System-Dienstprogramme verstanden.


    Wie macht ihr das hier mit Anhängen? Ich hab mir meine eigene Doku geschrieben, um nicht immer alles an tausend Stellen nachschauen zu müssen. Die könnte ich als pdf hochladen, wenn das hier geht (kann ich nicht erkennen). Ein eigenes Filesystem im Netz betreibe ich nicht (nur Bilder bei imageshack und videos bei youtube).


    Falls Dich das mit so einer Relaiskarte interessiert, löte ich Dir so einen Bausatz gerne professionell zusammen.

    __________________
    Bestes aus Berlin

    • Offizieller Beitrag

    Die Firmware der SSC ist ja Pascal


    Nein, ganz bestimmt nicht. Das ist 6502 Maschinencode. Apple hat damals nur gern alle Beispiele in Pascal geliefert, weil Pascal gerade sehr in Mode war und sie ihr UCSD Pascal pushen wollten.


    Eine Einführung zur Programmierung unter Applesoft-BASIC liefert diese Datei: SerialPortFirmwareInterfaceCommands.txt.


    Da siehst Du ganz am Anfang ein Beispiel:

    Code
    10 D$ = CHR$(4)
    20 I$ = CHR$(9)
    30 PRINT D$; "PR#2"
    40 PRINT I$; "6B"


    Das ist ein Grundprinzip bei Applesoft und DOS. Zeile 10 definiert die Variable D$ als Ctrl-D, 20 dann I$ als Ctrl-I. Zeile 30 wählt Slot 2 für die Karte (ich denke mal, da steckt sie bei Dir), Zeile 40 sendet dann den Code gemäss Doku an die Karte und schaltet sie auf 300 Baud.


    Ansonsten sehe ich das wie ChaosRom : Was Du da planst, ist ein Bastelprojekt und keine Lösung, die so aus der Schachtel heraus funktioniert. Wenn Du Lust zum Tüfteln, Googlen und Experimentieren hast, kann das am Ende eine tolle Sache werden. Ansonsten lass' lieber die Finger davon.


    Gruss- Georg B. aus N.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Hallo Georg,


    beim IIc ist es leider alles ziemlich anders. Es gibt keinen slot, in dem die Karte steckt. Sie ist komplett onboard verbaut und es gibt keinerlei Mäuseklavier. Ich hatte alles auseinander, um die SSC zu suchen. Fehlanzeige und doch geht alles, was man mit ner gesteckten SSC kann. Bei den System-Dienstprogrammen ist eines dabei, mit dem man "Serielle Anschlüsse konfigurieren" kann. Dazu legt man unbekannte Geräte in der Geräteliste mit einer PIN an und weist sie dann den Anschlüssen zu. Anschluss 1 ist der Druckeranschluss und Anschluss 2 die Modemdose. Beide sind als DIN-5-Stecker mit einer APPLE-spezifischen Pinbelegung ausgeführt. Dazu gibt es Übersetzungstabellen für DE-9 oder DP-25 Stecker.


    Wie die PIN sich zusammensetzt, ist auf Seite 35 der Broschüre über die System-Dienstprogramme beschrieben. Da wird alles drin verpackt von der Baudrate, über die Bits bis zu line feeds und CR-Positionen. Anschließend drei Seiten Fehlerhinweise und der Rat, dass man das am besten experimentell durchprobiert (was für ein Dreck an technologischer Leistung!).


    Das hab ich noch gefummelt gekriegt und in eine Datei USER.PROFILE auf die künftige Diskette des Steuerungsprogramms packen können. Aber wie ich ein BASIC-Programm anlege, was da wie rein gehört, wie man die SSC zum Aufhorchen bringt und ob das Programm kompiliert werden muss. Das weiß ich alles nicht.


    Ich hab aber ein "Lastenheft":


    [Blockierte Grafik: http://imageshack.com/a/img921/1303/1JRhFe.jpg]



    Folgende
    Fahrstraßenbewegungen sind vorgesehen:


    1. Von A nach C im Uhrzeigersinn:

    • Plus auf Mittelleiter der Gleise A und B, Minus auf Außenschienen
      Triebfahrzeug kommt nach x sec in C zum Stehen.



    2. Von A' nach C im Uhrzeigersinn:

    • Plus auf Mittelleiter der Gleise A' und B, Minus auf Außenschienen
      Triebfahrzeug kommt nach x sec in C zum Stehen.



    3. Von C nach B über A im Uhrzeigersinn:

    • Weiche Ost auf gerade


    • Plus auf Mittelleiter der Gleise A und B, Minus auf Außenschienen
      Triebfahrzeug kommt nach x sec in B zum Stehen.


    4. Von C nach B über A' im Uhrzeigersinn:

    • Weiche Ost auf Abzweig


    • Plus auf Mittelleiter der Gleise A und B, Minus auf Außenschienen
      Triebfahrzeug kommt nach x sec in B zum Stehen.


    5. Von C nach A gegen den Uhrzeigersinn:

    • Weiche West auf gerade


    • Minus auf Mittelleiter der Gleise A und B, Plus auf Außenschienen
      Triebfahrzeug kommt nach x sec in A zum Stehen.


    6. Von C nach A' gegen den Uhrzeigersinn:

    • Weiche West auf Abzweig


    • Minus auf Mittelleiter der Gleise A und B, Plus auf Außenschienen
      Triebfahrzeug kommt nach x sec in A zum Stehen.


    7. Von A' nach B gegen den Uhrzeigersinn:

    • Minus auf Mittelleiter der Gleise A' und C, Plus auf Außenschienen
      Triebfahrzeug kommt nach x sec in B zum Stehen.


    8. Von A nach B gegen den Uhrzeigersinn:

    • Minus auf Mittelleiter der Gleise A und C, Plus auf Außenschienen
      Triebfahrzeug kommt nach x sec in B zum Stehen.



    Programmanforderungen

    Das Programm ermöglicht eine flexible Abfolge der acht beschriebenen Fahrstraßenbewegungen und schaltet über die Relais Spannung auf bestimmte Gleisabschnitte bzw. Weichen, die zur jeweiligen Fahrstraße gehören. Vier Relais werden zum Aufschalten der Fahrspannung benötigt. Ein fünftes ermöglicht die Umpolung der Fahrtrichtung.
    Da immer nur ein Zug gleichzeitig fahren kann, genügt ein Umpolrelais. Es verbleiben drei freie Relais, die anderen Funktionenwie z.B. Entkupplungsgleisen zukommen.



    Weichen werden in Abhängigkeit der gewählten Fahrstraße und Fahrtrichtung geschaltet. Dies wird hardwareseitig über zusätzliche Relais verknüpft. Die Endabschaltung der Magnetspulenantriebe wird hardwareseitig erledigt.



    Am Bildschirm werden die Kennungen der beschriebenen Fahrbewegungen (Fahrstraßen) zu einer Sequenz zusammengestellt, die direkt angewendet und auch als Datei gespeichert werden kann. Das Einlesen einer solchen Datei liefert die Sequenz auf den Bildschirm, wo sie vor Ausführung geändert werden kann.



    Eine Bedienoption <ABFAHRT> führt die Sequenz einmalig aus. Eine zweite Option <ENDLOS> führt die vorbereitete Sequenz als Endlosschleife aus. Eine dritte Option <STOP> unterbricht das
    Ausführen der nächsten Fahrbewegung, führt aber die momentane noch zu Ende, um einen definierten Zustand auf der Anlage zu hinterlassen.
    Eine echte Notaus-Funktion wird hardwareseitig vorgesehen.
    Es obliegt dem Anwender, ob die letzte Fahrbewegung im Endlosbetrieb zur Wiederholung der Sequenz, also zur ersten Fahrbewegung der Sequenz passt. Später kann hier ggfs. eine Logikprüfung eingesetzt werden.



    Relaisbelegung auf Relaiskarte



    Relais 1: Gleis A
    (schließt Mittelleiter auf Fahrspannungsausgang von Relais 5')



    Relais 2: Gleis A'
    (schließt Mittelleiter auf Fahrspannungsausgang von Relais 5')



    Relais 3: Gleis B
    (schließt Mittelleiter auf Fahrspannungsausgang von Relais 5')



    Relais 4: Gleis C
    (schließt
    Mittelleiter auf Fahrspannungsausgang von Relais 5')



    Relais 5: Umpolrelais
    (Tauscht über ein nachgeschaltetes, zweipoliges Umschaltrelais 5' Plus durch Minus an Fahrspannungsausgang)



    Relais 6: freibleibend



    Relais 7: Entkuppler in Gleis A
    (gibt Schaltspannung auf lokalen Entkupplungsauslöser)



    Relais 8: Entkuppler in Gleis A'
    (gibt Schaltspannung auf lokalen Entkupplungsauslöser)



    Die Relais 7+8 werden zum Scharfschalten von Entkupplern benutzt. Zum Auslösen eines Entkupplers muss sich vor und hinter dem Entkupplungsgleis eine Achse befinden. Über eine kurze Kontaktbrücke im Gleis nahe des Entkupplerhebels – ausgelöst durch die nächstgelegene Achse – schnellt dieser nach oben, wenn dieser
    Vorgang durch das vom Computer gesetzte Relais mit Spannung versorgt wurde.



    Alle Befehle an die K8056 Relaiskarte werden über die Super Serial Card an den Druckerausgang gesendet, von dem nur TxD und Ground an die Relaiskarte angeschlossen sind. Im Übrigen ist die Kabelverbindung so ausgeführt, dass Handshake Out (DTR) Handshake In (DSR) kurzgeschlossen sind.


    Bei der Kommunikation mit der Super Serial Card (SSC) muss das Programm die Übertragungsparameter wie folgt setzen:


    2400 Baud


    8 Databits


    Keine Parität


    1 Stopbit



    Dies wird gemäß Dokumentation des Befehlssatzes der SSC folgendermaßen
    gesteuert:



    2400,8N1
    ohne Flowcontrol:
    <Ctrl>-I 1B <CR>
    8N1 ist default (wäre 0D und 0P)




    Die Diskette „RELAISKARTE“ ist mit ProDOS, BASIC.SYSTEM und einer SSC-Konfiguration in der Datei USER.PROFILE ausgestattet, die den seriellen Anschluss 1 (Drucker) bereits auf die o.g. Parameter setzt. Anschluss 2 (Modem) wird auf ADTPro Kommunikation über ein Nullmodemkabel und einen Seriell/USB-Adapter eingestellt.



    Das Steuerungsprogramm der Relaiskarte muss unter dem Namen STARTUP gespeichert werden, um beim Einlegen der Diskette (und Einschalten) bereits zu starten.

    __________________
    Bestes aus Berlin

    Einmal editiert, zuletzt von Symbiont ()

    • Offizieller Beitrag


    beim IIc ist es leider alles ziemlich anders. Es gibt keinen slot, in dem die Karte steckt.


    Nein, beim //c ist es genauso. Aus Sicht des Systems und der Programmiersprachen ist Slot#1 ist der serielle Drucker, Slot#2 die serielle Kommunikation. Das der //c intern die entsprechenden Funktionen hardwaremässig anders verbaut hat, ändert nix an der Ansteuerung. Glaub's mir, neben mir steht auch ein //c und den benutze ich regelmässig.


    Ansonsten: Applesoft Basic wird interpretiert, die Ansteuerung geht wie oben beschrieben, setz' Dich mit einer Anleitung hin leg' los- Du weisst ja ziemlich genau, was du willst.


    Gruss- Georg B. aus N.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Die Doku zur Konfiguration der Anschlüsse verstehe ich beim IIc (Broschüre System-Dienstprogramme) so, dass sie austauschbar sind, wenn man die Geräte aus der Geräteliste vertauscht. Es ist lediglich ab Werk so eingestellt, dass Anschluss 1 der Printer ist und Anschluss 2 das Modem.

    __________________
    Bestes aus Berlin