-         

Ergebnis 1 bis 9 von 9

Thema: Software für Windows und Linux

  1. #1

    Software für Windows und Linux

    Anzeige

    Hallo ich welche Software könnt ihr für Windows und Linux empfehlen ich kann etwas VB(A), HTML und PHP. Ich möchte mit der Software ein Automatisches Regelsystem steuern wobei auf meine Ubuntu Server MYSQL als DB und das Programm zur Auswertung laufen soll. Mit Windows möchte ich nur Testen. Die Übertragung zum AVR läuft über RS232.

    Danke

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    23
    Beiträge
    449
    Hi,

    wie soll denn das ganze ablaufen? Je nach dem welche PHP-Seite aufgerufen wird soll ein bestimmter String an den Controller gesendet werden, oder wie?
    • HTML und PHP: Du könntest einfach einen Apache-Server aufsetzen, ist wirklich sehr leicht, bastel auch grad damit rum :-D (Als Code-Editor währe Geany sehr zu empfehlen) http://wiki.ubuntuusers.de/apache
    • Die Übertragung zum AVR läuft über RS232: Wenns nicht mehr ist: Da kannst du einfach über PHP ein Kommando ausführen und über die Shell den Text senden (Und Baudrate wählen etc.). Ein extra Programm brauchst du dazu nicht zu schreiben
      • ​​Einstellungen: stty und setserial (Mal in der Konsole "man stty" und "man setserial" eingeben )
      • Senden: Kann man direkt in der Konsole machen, indem man eine "echo"-Ausgabe auf die Schnittstelle umleitet, z.B.
        Code:
        echo "Hallo Welt" > /dev/ttyUSB0
        (http://www.jux-net.info/jux2/docs/sys100/comm_42.html)
      • Empfangen: Könnte man z.B. mit "cat" machen:
        Code:
        cat /dev/ttyUSB0
      • Ansonsten die serielle Schnittstelle einfach wie eine Datei behandeln. Wie weit das in PHP geht weis ich nicht so genau, hab mich noch kaum damit befasst
    Wenns doch komplexer werden soll - mehr Infos bitte :-D

    Gruß
    -schumi-

  3. #3
    Danke für die Schelle Antwort.
    Ich hatte mir das eigentlich so gedacht das ich über den Browser (z.B. Ipod) wähle was aus gelagert werden soll und diese dann von PHP in die DB geschrieben zusätzlich wird noch ein Bit geschrieben was anzeigt das das andere Programm aktiv werden soll. Das andere Programm kontrolliert in regelmäßigen Abständen diese Bit und sucht bei Veränderung den Lagerplatz aus der DB und sende diesen dann den Lagerplatz zusammen mit den Fach (Auslagerung) an den AVR so das der AVR nur die eigentliche Auslagerung durchführen muss. Mein Lager soll ca. 100 bis 200 Fächer habe muss noch genau ermittelt werden.


    Das win. Programm ist nur zum Basteln und vielleicht für Später auf den Linux (Server) ist schon Ubuntu Installiert mit Apache und MQSQL.


    Ich möchte mit diesen Projekt versuch meine Programmmirfähigkeiten ausbauen.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    23
    Beiträge
    449
    Beispiel: Du möchtest einen Kerko einlagern:
    Code:
     1. Du gehst auf deine PHP-Seite und sagt, dass du die Schachtel mit den Kerkos haben möchtest
     2. Die Webseite sieht in der Datenbank nach wo die Kerkos sind
     3. Über PHP wird einem weiterem Programm gesagt, dass die Schachtel (#58 oder so) geholt werden soll
     4. Das weitere Programm sagt jetzt dem AVR über RS232, er soll die Schachtel #58 holen
     5. AVR holt Schachtel
     6. ### Wie kommt die Meldung in den Browser, dass die Schachtel da ist? ###
     7. Du legst einen Kerko in die Schachtel
     8. Du drückst im Browser auf OK
     9. Die PHP-Seite sagt dem weiteren Programm, dass die Schachtel wieder dahin verschwinden soll wo sie hergekommen ist
    10. Das Programm sagt dem AVR, er soll die Schachtel wieder zurücklegen
    11. AVR  (Hat sich #58 gemerkt) fährt die Schachtel wieder zu Platz #58
    12. ### Wie kommt die Meldung in den Browser, dass die Schachtel wieder im Regal ist? ###
    13. Fertig
    Ist das richtig so?

    Insgesamt ein sehr interessantes Projekt muss ich sagen :-D

    Gruß
    -schumi-

  5. #5
    Nicht ganz so

    1. Ich gehe auf die PHP-Seite und sagt, dass ich die Schachtel mit den Kerkos haben möchtest
    2. Die Webseite schreibt den Wunsch z.B. Kerkos in die DB
    3. Das Programm sieht dann nach wo die Kerkos sind und sendet dies an den AVR
    4. AVR holt Schachtel
    5. AVR meldet an das Programm Schachtel geholt
    6. Ich nehme einen Kerko aus der Schachtel
    7. Ich betätige an den Ausgabefach einen Taster der sagt wieder einlagern.
    8. Die Schachtel fährt über einen Barcode Scanner der sagt das ist Schachtel Nummer z.b. 58
    9. Die PHP Seite fragt mich nach der Menge in der Schachtel ich gebe sie ein und bestätige.
    10. Das Programm sagt den AVR Lagere die Schachtel ein.
    11. AVR lagert Schachtel ein.
    12. Fertig



    Ich bin mir nicht sicher ob es vielleicht einfacher wäre mit 3 Kodierschalter die Menge ein Zugeben. Am allerbesten Wäre ja wiegen das funktioniert aber bei so leichten Bauteilen nicht zuverlässig.

    Ich plane 5 Ausgabefächer für mein Regellager. Und ich möchte auch einzelne Schachtel entnehmen Können ohne das das System durcheinander Gerät.

    Das Lager soll auch nach den chaotische System Arbeiten.

    Wenn es einfacher geht wie du geschrieben hast nur mit PHP wäre noch besser. Ich wollt aber z.B. 3 Aufträge erteilen und dann in den Keller gehen und das Material holen und ich wies nicht ob das mit PHP funktioniert.

  6. #6
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    23
    Beiträge
    449
    Es gibt noch ein Problem: Du möchtest ja schätzungsweise im Browser sehen wann die Schachtel angekommen ist. PHP ist aber Serverseitig, d.h. der Browser müsste jetzt alle 5Sekunden oder so die Seite reloaden damit der Server nachsieht ob die Schachtel bereits angekommen ist oder nicht und dir die dementsprechende Meldung im Browser anzeigt

    Ich würds so machen:

    1. Du gehst auf die index.php und verlangst Kerkos
    2. Du wirst nach bestellung.php weitergeleitet. Die bestellung.php sieht in der MySQL-Datenbank nach in welcher Schachtel (z.B. 58 die Elkos liegen (und evtl. wie viele)
    3. Die bestellung.php sendet via UART an den AVR z.B. "GET58" (z.B. echo "GET58" > /dev/ttyUSB0 ausführen). Der macht sich auf den Weg die Schachtel zu hohlen
    4. Die bestellung.php verlinkt dich auf "wait.php", die sich alle 5 Sekunden reloadet (um zu prüfen ob die Schachtel schon angekommen ist)
    5. Wennn der Server die anfrage der "wait.php" bekommt, schaut er (z.B. via cat /dev/ttyUSB0) ob er schon ein "58DONE" oder so gekriegt hat. Falls nicht -> Browser bekommt wieder wait.php
    6. Ist der AVR fertig, so sendet er "58DONE" via UART an den Server
    7. Bei der nächsten Anfrage der wait.php wird mit cat geprüft ob "58DONE" in Buffer für die serielle Schnittstelle steht
    8. Wenns drinsteht: Browser wird auf eine done.php geschickt, auf der z.B. steht "Schachtel Nummer 58 mit 21 (<- Datenbank) Kerkos bereit" oder so
    9. Jetz gehst du zum Lager und nimmst dir 3 Kerkos aus der Schachtel
    10. Dann gibst du auf einem Tastenfeld (das an den AVR angeschlossen ist) 18 ein, um mitzuteilen, dass noch 18 Stk. in der Schachtel sind.
    11. Dann sendet der AVR z.B. "58:18STK" an der Server
    12. Auf der done.php drückst du auf "OK"
    13. OK = Link auf "einlagern.php" -> Server liest per cat die serielle Schnittstelle ein, bekommt "58:18STK" aus dem Buffer. Er aktualisiert jetzt in der Datenbank und verlinkt dich auf einlagern_wait.php und sendet mit cat "BACK58" an den AVR. Daraufhin beginnt der AVR mit einlagern
    14. Die einlagern_wait.php reloadet sich auch alle 5 Sekunden, dann wird jedes mal geprüft, ob ein "58DONE" im Buffer steht. Wenn nicht -> Wieder nach einlagern_wait.php
    15. Ist der AVR fertig, sendet er "58DONE" über die serielle Schnittstelle
    16. Bei der nächsten Anfrage der einlagern_wait.php liest die php-Seite "58DONE" mit cat aus dem Buffer der seriellen Schnittstelle, ist zufrieden und schickt dich wieder auf die index.php


    z.B. 3 Aufträge erteilen
    Dafür müsste man sich noch was überlegen, sollte aber durchaus möglich sein :-D

    Gruß
    -schumi-

  7. #7
    mit den 3 Auftägen häte ich mir das so gedacht

    1. Du gehst auf die index.php und verlangst Kerkos
    2. Du wirst nach bestellung.php weitergeleitet. Die bestellung.php sieht in der MySQL-Datenbank nach in welcher Schachtel (z.B. 58 die Elkos liegen (und evtl. wie viele)
    3. Die bestellung.php schreibt die Anfrage in die Datenbank und fragt ob ich noch mehr bestellen will.
    4. Ich drüke auf nein und dan senden besteöllung.php den ersten auftrag an den AVR
    5. Wennn der Server die anfrage der "wait.php" bekommt, schaut er (z.B. via cat /dev/ttyUSB0) ob er schon ein "58DONE" oder so gekriegt hat. Falls nicht -> Browser bekommt wieder wait.php das wird solage wiederholt bis alles schachtel geholt sind.
    6. Ist der AVR fertig, so sendet er "58DONE" via UART an den Server
    7. Bei der nächsten Anfrage der wait.php wird mit cat geprüft ob "58DONE" in Buffer für die serielle Schnittstelle steht
    8. Wenns drinsteht: Browser wird auf eine done.php geschickt, auf der z.B. steht "Schachtel Nummer 58 mit 21 (<- Datenbank) Kerkos bereit" oder so
    9. Jetz gehst du zum Lager und nimmst dir 3 Kerkos aus der Schachtel
    10. Dann gibst du auf einem Tastenfeld (das an den AVR angeschlossen ist) 18 ein, um mitzuteilen, dass noch 18 Stk. in der Schachtel sind.
    11. Dann sendet der AVR z.B. "58:18STK" an der Server
    12. Auf der done.php drückst du auf "OK"
    13. OK = Link auf "einlagern.php" -> Server liest per cat die serielle Schnittstelle ein, bekommt "58:18STK" aus dem Buffer. Er aktualisiert jetzt in der Datenbank und verlinkt dich auf einlagern_wait.php und sendet mit cat "BACK58" an den AVR. Daraufhin beginnt der AVR mit einlagern
    14. Die einlagern_wait.php reloadet sich auch alle 5 Sekunden, dann wird jedes mal geprüft, ob ein "58DONE" im Buffer steht. Wenn nicht -> Wieder nach einlagern_wait.php
    15. Ist der AVR fertig, sendet er "58DONE" über die serielle Schnittstelle
    16. Bei der nächsten Anfrage der einlagern_wait.php liest die php-Seite "58DONE" mit cat aus dem Buffer der seriellen Schnittstelle, ist zufrieden und schickt dich wieder auf die index.php


    jetzt kommt nur noch dazu ich wollte die Schachtel aber auch entnehmen können und später wieder hinein geben da ich nicht immer weiß wie viele Teile ich genau brauche.

  8. #8
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    ..der Browser müsste jetzt alle 5 Sekunden oder so die Seite reloaden damit der Server nachsieht...
    Sowas löst man mit AJAX:
    http://de.wikipedia.org/wiki/Ajax_%28Programmierung%29

    Damit kann der Webserver den Inhalt der Seite im Browser ändern ohne dass die Seite neu geladen werden muss.

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  9. #9
    Danke für den Tipp. Werde ich auf jeden Fall nutzen.

Ähnliche Themen

  1. Linux auf Windows 7 Installieren
    Von eBasti im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 3
    Letzter Beitrag: 08.09.2010, 22:32
  2. Funkkamera mit API für Linux und Windows
    Von robotinuke im Forum Sensoren / Sensorik
    Antworten: 5
    Letzter Beitrag: 28.10.2008, 21:00
  3. Kostenlose 2D/3D-CAD-Software für Linux und Windows freigege
    Von pacer_one im Forum Konstruktion/CAD/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 2
    Letzter Beitrag: 21.01.2008, 10:31
  4. Linux+Mono vs. Windows+Vb6
    Von OsramLED im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 1
    Letzter Beitrag: 09.10.2006, 15:26
  5. jEdit - ein cooler Editor für Linux (und Windows)
    Von BerndKlein im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 0
    Letzter Beitrag: 01.03.2006, 13:01

Berechtigungen

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