Stoppuhr Programmieren

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hey Leute,
    für das Schulfach Informatik müssen wir etwas mit dem Raspberry programmieren.
    Meine Idee war eine Stoppuhr, die über einen Impuls z.b Taster startet und über einen zweiten Impuls stoppt.
    Zudem sollen die vorherrigen Zeiten chronologisch angezeigt werden und am besten auf hundertstel genau.

    Da ich von der Art zu Programmieren keine Ahnung habe, bin ich ziemlich überfordert.
    Kenne mich nur mit Simatic 7 aus ;)

    Ich habe mich ein wenig im Internet umgeschaut und diese interssanten Beiträge gefunden, die meinem Projekt ähneln : http://www.opensportproject.org/2013/02/releas…im-train-timer/

    http://strobelstefan.org/?tag=stoppuhr

    Vielleicht kann mir ja jemand ein Tipp und eine start Hife geben mein Projekt umzusetzen.

    Schonmal danke im vorraus :)

    LG LJSchumi

    Einmal editiert, zuletzt von LJSchumi (28. April 2014 um 21:39)

  • Na mit den Links kann man doch schon was anfangen ;)

    Meinst du nicht dass das das richtige für dich ist ? Da du ja überhaupt keine Ahnung davon hast wie du das umsetzen kannst :D

    In welcher Sprache willst du das ganze programmieren ? Ich sehe da mehrere Möglichkeiten .
    Was ist dein Ansatz ?

    • Offizieller Beitrag

    Den ersten Link halte ich für "Overpowered". Fang mit ner Konsolenversion an. Python oder Bash sollten schnell zu Ergebnissen führen. Hier hatte schonmal einer die Idee (und is den "richtigen" Weg über interrupts gegangen. Hier hab ich das Interrupts Thema auch nochmal mit Beispiel erläutert.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Irgendwie stolpere ich über den Satz: "Da ich von der Art zu Programmieren keine Ahnung habe, bin ich ziemlich überfordert."

    Es ist zwar schon einige Tage her als ich in der Informatik AG am C64 eine Uhr programmieren sollte aber über einen Punkt bin ich mir sicher: Das was der Lehrer forderte wurde vorher - wenigstens in den Grundzügen - durchgenommen und soweit erklärt das man (mit etwas denken und probieren) die Lösung hinbekommen kann.
    Ich kann mir nicht vorstellen das Dich der Lehrer einfach so vor den RasPi packt und sagt: "Nu' mach ma' schön was! Ich komme in einer Woche wieder und verteile Noten..."
    Und wenn dem doch so ist, dann sollte man doch einmal mit dem Lehrer reden...

    Wenn ihr doch am RasPi was programmieren müsst, dann habt ihr doch auch vorher mit irgendeiner Sprache gearbeitet und wenn es "Scratch" ist. In diesem Fall solltest Du doch zunächst in der Sprache/Programmierumgebung bleiben die auch im Unterricht benutzt wird. So kann man sich mit seinem Projekt doch auch mit den Mitschülern zusammentun und gemeinsam Grundroutinen entwickeln aus denen jeder sein eigenständiges Projekt macht.

  • Das habe ich mich auch gefragt: Welche Grundlagen wurden euch denn vermittelt?
    Ich mein, was ist das genau für eine Aufgabenstellung?
    "Hier ... nimm nen Pi .... mach watt ...." ?

    Aber scheint doch ne coole Schule zu sein, wenn die Pi's einsetzen.
    Würde doch glatt behaupten, das man sich hier im Forum alleine schon durch die Forensuche eine optimale Hausaufgabe zusammenbasteln könnte.

    ... und wir mussten noch Disketten durche Gegend schleppen...:rolleyes:

    Aber schreib doch mal, wie genau die Aufgabenstellung aussieht.
    Ist zwar kein Hausaufgabenforum, aber Hilfe zur Selbsthilfe wird hier doch gerne praktiziert. ;)

    ...and write down with pencil&paper...
    Where can i download "pencil&paper" ?

  • Leider ist es so das der Lehrer sich dachte ach wir bestellen paar raspberrys, jeder denkt sich ein projekt aus und muss das durch selbständiges erarbeiten schaffen.
    Ich hatte noch nie Informatikunterricht und hab deswegen null Vorkenntnise. Ein schulkamerad war wenigstens so nett und hat mir rasbian installiert und bisschen eingestellt. Mehr als starten und herunterfahren vom pi kann ich nicht. Was sehr deprimiernd ist. Denn schon beim richtigen einstellen der Tastatur gibt es probleme. Denn ich schaffe es noch nichtmal die deutsche qwertz einzustellen...
    Wie gesagt ich stehe ziemlich auf den schlauch...
    habe mich viel versucht im internet schlau zu machen, aber jeder versuch ist misslungen bzw. viele umschreiben das so, das jemand der keine ahnung davon hat auch nicht weiß wo er anfangen soll.

  • Hallo LJSchumi,

    wieviel Zeit habt Ihr denn bis zur Fertigstellung des Projektes?

    In welcher Sprache soll programmiert werden?

    Muss das Projekt eine Hardware-Bastelei enthalten, um die herum programmiert wird - oder wird eine reine Software-Entwicklung auch akzeptiert?


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • sprache dürfen wir uns selber aussuchen und dürfen uns auch aus suchen ob wir es hardware mäßig machen oder nur software mäßig...

    das projekt soll in 1-2 wochen fertig sein

  • Hallo LJSchumi

    na, bei dem Zeitrahmen verbietet es sich von vornherein, an irgendetwas zu denken, was mit Hardware-Bastelei zu tun hat.

    Ich würde etwas programmieren, was z.B. mit Deinem Lieblingsfach zu tun hat.

    In welcher Klasse bist Du denn? Und welche magst Du besonders?

    Besonders lohnenswert sind z.B. Programme, die bestimmte Aspekte der Wahrscheinlichkeitslehre simulieren.

    Ich habe letztens für einen Computerkurs, den ich gebe, ein Galtonbrett programmiert. Das hat was mit Graphik zu tun, mit Zufallssteuerung, mit Wahrscheinlichkeit - und das Ergebnis ist ganz nett anzuschauen.

    Wenn Du Chemie magst, z.B. einen Rechner zum Berechnen von Molekülmassen zzgl. Mengenrechners

    z.B. CuSO4 + Na2CO3 ==> CuCO3 + Na2SO4

    um Probleme der Art zu lösen wieviel Na2CO3 braucht man,wenn 5 g CuSO4 eingesetzt werden?

    Wenn Du Physik magst, da lässt sich fast alles simulieren, Bewegung, Ballistik, Optik, ...

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Er hat doch eine gute Projektidee, die durchaus auch (in einfachem Rahmen) in dem Zeitrahmen umsetzbar ist und einen durchschnittlichen Informatik-schüler nicht überfordert. Ich denke mehr kann man nicht erhoffen.

    Das unser Kandidat leider keine Vorkenntnisse hat ändert das gewählte Projekt nicht.

    Mein Vorschlag daher: Mache deine Stoppuhr, mache sie ersteinmal ohne Interrupts sondern einfach mit schleife die eine Taste abfragt und Zeit anzeigt. Um es etwas cool zu machen kannst du (wenn alles funktioniert) dan Rundenzähler und sowas hinzufügen.

    Mache alles ohne Grafik, nur auf der Konsole, sonst reicht die Zeit (ohne Vorkenntnisse) nicht.

    Um das ganze Rund zu machen kannst du erklären, dass man anstelle des Tastendrucks relativ simpel einen Buzzer oder soetwas nutzen könnte. Das ist bloß aufgrund der Hardwarearbeiten nicht im Zeitrahmen.

  • Ich bin eine Sie :) aber macht nichts

    ähm hättet ihr denn tipp mit welcher sprache es am einfachsten ist und wo ich mir dan textbausteine dazu angucken kann?
    und mit welchem programm auf dem raspberry ich das schreibe ?!

  • Im Startmenu ist eine Untergruppe "Programmierung".
    Dort die Entsprechende Sprache auswählen.
    Ich würde "Idle" empfehlen. Das ist ein Editor für die Sprache Python.
    Von Idle3 würde ich zunächst erstmal abraten. Das ist der Editor für Python3. Gibt dabei manchmal Kompatibilitätsprobleme.
    Vllt. kannst Du dich ja auch mit "Scratch" anfreunden.
    Damit kann man eigentlich mit wenigen Schritten schon zu einem fertigen Programm kommen.

    Für Python hier mal ein kleines Beispiel:

    Code
    print "Hallo Welt"


    Das ganze dann mit "Run" aus dem Menu starten.

    ...and write down with pencil&paper...
    Where can i download "pencil&paper" ?


  • Ich bin eine Sie :) aber macht nichts

    Sorry, passiert so selten hier :)
    Um so netter dich hier willkommen heißen zu können.


    ähm hättet ihr denn tipp mit welcher sprache es am einfachsten ist und wo ich mir dan textbausteine dazu angucken kann?
    und mit welchem programm auf dem raspberry ich das schreibe ?!

    Ich würde mal Python vorschlagen, ist im Raspberry-Umfeld sehr beliebt, für diese Aufgabe sicherlich gut geeignet und (angeblich) einfach und schnell zu lernen

    Damit wäre ich dann leider raus, ich spreche kein Python, aber die meisten anderen hier.
    Ich hätte das mit C++ gemacht, aber das ist definitiv etwas komplexer für den Einstieg.

    Also Python tutorial gegoogled und los gelegt.

    Programm... Programmieren tut man nicht mit einem Programm, es gibt Programme die einem dabei helfen können.
    Deine ersten Schritte mit Python machst du wohl am besten auf deinem normalen PC, wie das geht verrät dir ein geeignetes Tutorial sicherlich auch. Wenn du dort dann einen funktionierenden Anfang hast kopierst du das auf den Pi und probierst es da (möglicherweise musst du da Tastendruck anders erkennen oder soetwas ich glaube aber nicht).
    Um kleine Änderungen schnell auszuprobieren auf dem Pi direkt kannst du mit nano auf der Konsole Arbeiten. Der Editor "nano" lässt sich intuitiv bedienen, bietet aber auch wenig komfort. Aber um eben eine Zeile zu korrigieren sollte es reichen.

    Edit: Ok LieberScholli geht davon aus, dass du einen Bildschirm am Pi hast. Dann geht das natürlich auch alles direkt darauf (geht es auch sonst, aber ich wollte dir nicht zu viel auf einmal zumuten)

    Einmal editiert, zuletzt von Horroreyes (3. Mai 2014 um 19:20)

  • schonmal danke, wenigstens hab ich jetzt mal einen anhaltspunkt ;)

    und ja hab einen bildschirm an meinem pi ;)
    mal sehen wie weit ich komme ;) wird aufjedenfall ein stücken arbeit

  • Hey Leute hab seit gestern schonmal bisschen rum experimentiert und dabei kommen die beiden Scrpite raus:


    Nur ich finde im Internet nichts dazu ob man mit Python über eine aktion eine Zeit starten bzw. beenden kann... hat da jemand vielleicht eine Idee ?

  • Das geht recht einfach mit "time"
    Bin mir jetzt über die genaue Syntax nicht klar, dafür gibt es aber viele Beispiele.
    Du musst nur die Startzeit in einer Variable ablegen und beim Stoppen "time" in eine andere Variable schreiben.
    Anschließend das eine vom anderen abziehen und Du hast die gestoppte Zeit.

    Es gibt bei "time" viele Funktionen. Musst Du halt gucken, was für Dich dabei ist.
    Man kann entweder die Zeit ab 1970 abfragen, die aktuelle Tageszeit, Wochentag, usw...
    Die Zeit von 1970 wird bei einer Stoppuhr wohl am sinnvollsten sein, da selbst wenn man innerhalb eines Schalttages oder der Umstellung von Sommer auf Winterzeit die Zeit misst, es keine Verfälschungen gibt.
    Wird sicherlich nicht allzuoft vorkommen, dass man am Sonntag zwischen 2 und 3 Uhr die Zeit messen will, KANN aber passieren...

    Gruß, Scholli.

    ...and write down with pencil&paper...
    Where can i download "pencil&paper" ?

  • So... nach paar Stunden arbeit bin ich nun zu diesem ergebnis gekommen :

    das funktioniert auch schon ganz gut.

    Nun möchte ich die vorherigen gestoppten zeiten mir anzeigen lassen sprich:
    Zeit 1: 00:10:57
    Zeit 2: 01:52:10
    ....
    hat dazu jemand einen Tipp?

    und wenn das soweit klappt möchte ich noch einfühen das wenn man Pause drückt die gestoppte Zeit angezeigt wir als zb. Zeit 5 aber im hauptfehlt die ganze zeit sprich von alle zeiten zusammen weiter läuft.
    hat dazu vielleicht jemand eine idee?

  • Die Zeiten könntest Du in einem Tupel speichern.
    Ich schreibe einfach mal einen Pseudocode, um die Funktionsweise der Tupel zu zeigen.

    Code
    gespeicherte_zeit = []
    # Stoppuhr Main
    # Start
    # Stop
    gespeicherte_zeit += [gestoppte_zeit]

    Die gespeicherten Zeiten kann man dann so auslesen:

    Code
    print gespeicherte_zeit[0]  # Zeigt erste Zeit
    print gespeicherte_zeit[1]  # zweite Zeit
    print gespeicherte_zeit[2]  # dritte Zeit

    Damit kann man dann auch unterschiedliche Zeiten stoppen, weiterlaufen lassen, etc...

    ...and write down with pencil&paper...
    Where can i download "pencil&paper" ?

  • Wie kann ich den das machen wenn der pause buttom gedrück wird dann er das machen?
    habe es gerade unterschiedlich versucht aber scheitere

    hab etwas zum button_predss_event gelesen und zum click_event

    aber ich weiß nicht wie ich das mit meine pause button einbinden kann

    Ich hab es jetzt über die einfachsteweise versucht doch auch da gibt es ein problem


    wenn ich jetzt pause drücke läuft die zeit weiter und im Shell gibt er mir zb.: Zeit: [0, 1, 82] aus, aber möchte das eigentlich auch in dem format : 00:00:00

    es ist schön spät, vielleicht übersehe ich deshalb den fehler

    Einmal editiert, zuletzt von LJSchumi (4. Mai 2014 um 21:00)

  • Hallo,

    ich kenne mich so ziemlich gar nicht mit python aus, aber ich habe trotzdem mal versucht die Funktionen der Tasten über die GPIO zu steuern. Allerdings ist es mir nur gelungen keine Fehlermeldung mehr im LXTerminal zu bekommen. Dennoch startet das Programm nicht. Es erscheint nur eine neue völlig leere Zeile im LXTerminal und das wars.

    So sieht das momentan bei mir aus. Kann mir da jemand helfen?

    PS.: Starke Leistung LJSchumi das hier ist die einzige brauchbare simple stoppuhr die ich gefunden hab nach 3h recherche. ;)
    Ich hatte schon angst ich müsse python lernen um das skript selbst zu schreiben. :danke_ATDE: :heart:


Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!