Rasberry PI Anzeige wieviele Personen im Raum Programmieren?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hallo

Könnte mir eventuell jemand von euch weiterhelfen?

Können schon, aber wenn es Deine Hausaufgaben sind, dann solltest auch Du diese machen.

  • Die GPIO-Ports sind etwa wie Sperrventile in einer Wasserleitung
  • sie können in die eine Richtung etwas fließen lassen oder in die andere.
  • sie kennen den Zustand: ein (Leitung geöffnet)
  • sie kennen den Zustand: aus (Leitung geschlossen)

Hier mal drei Beispiele:

gpio mode 0 out         # schaltet GPIO-Port 0 auf ausgehend
gpio write 0 1          # schaltet GPIO-Port 0 ein
gpio write 0 0          # schaltet GPIO-Port 0 aus

Wenn Du nun so ein System bauen willst, dann braucht es noch mehr Hardware (1 Breadboard, 2 Relais, 2 Taster, genügend Kabel)

  • Dann schließt man den einen Taster an einen freien Port (z.B. 1) an und lässt den Raspberry diesen Port überwachen ob ein Signal eingeht.
  • Dieses Signal fängt man auf und lässt damit einen Counter hoch zählen. (Eingangszähler)
  • Den anderen Taster klemmt man z.B. an Port 3 und lässt den Raspberry auch diesen Port überwachen ob ein Signal eingeht.
  • Dieses Signal fängt man auf und lässt damit einen weiteren Counter hoch zählen. (Ausgangszähler)
  • Ein weiterer Prozess überwacht die Counter resp. die Inhalte der Dateien in denen die Zähler ihre Ergebnisse ablegen und berechnet (z.B. mit bc oder let) darauf die Differenz, schon hat man die Anzahl der Leute.
  • *eigentlich ja nur der Türöffnungen weil der Taster ja nicht sieht ob mehr als eine Person hineinkommt und nicht weiß ob eventuell nicht jeder auch den Anmelde-/Abmelde-Taster drückt. Von Daher würde eine Lichtschranke (Fotozelle z.B.) etwas mehr Sinn machen.

Linuxhase

Woher ich das weiß:eigene Erfahrung – Ich benutze seit 2007 Linux und habe LPIC101 und LPIC102

das sind eigentlich 3 Aufgaben.

die erste Aufgabe lautet:

wie kann ich Schalter/Taster mit dem Raspberry verbinden?

dafür könnte man die CPIO- Schnittstelle des Raspberry benutzen, was dein Lehrer bestimmt auch gedacht hat. Dafür habe ich in einigen Büchern schon Schaltungen gesehen. Beachte, dass bei Schaltungs-Fehlern der Raspberry sterben kann.

die zweite Aufgabe sollte sein:

wie kann ich die low/high-Signale an den Pins der CPIO-Schnittstelle in ein Programm übernehmen.

Auch dafür kann man Script-Befehle finden, die solche Informationen lesen.

die dritte Aufgabe klingt zwar ganz einfach, wird jedoch, wenn genauer darüber nachdenkt, viel Arbeit erfordern.

welche Programmiersprache kann man dafür nutzen, ohne vorher Informatik zu studieren?

In meinen beiden Raspberries benutze ich als Programmiersprache Tcl.

Die gibt es auf allen (?) Plattformen (für Linux, Windows, MAC ) und kann auch problemlos wie andere Standard-Programme mit apt-get installiert werden.

Im Gegensatz zu vielen anderen Programmiersprachen gibt es "vorgefertigte" grafische Elemente, mit denen man sehr viele Dinge gestalten kann.

Programme, die man auf seinem Windows- oder Linux-PC erstellt hat, laufen dann sofort auch auf dem PI. Fragen dazu werde ich gern beantworten.

Woher ich das weiß:Berufserfahrung – openSuSE seit 1995

Ich werf mal das Theman "Taster entprellen" in den Raum..

Wenn du die "Buzzer" nicht entprellst, dann zählt dein Zähler bei jedem Tastendruck X-Male, da ein Taster nicht sofort den logischen Pegel "1" oder "0" einnimmt sonder für einige ms lang Prellt, also zwischen "1" und "0" hin- und herschaltet..

Tja den In-Buzzer mit einem GPIO-Port verbinden und den Out-Buzzer mit einem GPIO-Port verbinden.

Dann brauchst du per Python nur die Ports abfragen und einen Zähler verwenden....

In-Buzzer = Zähler + 1 und Anzeige neu ausgeben

Out-Buzzer = Zähler -1 und Anzeige neu ausgeben

Sollte man mit 20-30 Zeilen Code lösen können!

siehe: https://www.youtube.com/watch?v=q_NvDTZIaS4

PS.: Auf youtube findest du zig Tutorials zu dem GPIO vom RPi!

Ich weiß nicht, würde das anders lösen. Etwa ein Wärmesensor, der die Körperwärme in der Umgebung feststellen kann. Der scannt den Raum durch und stellt fest wie viele Wärmespots er findet. Diesen ersten Scan nimmt er als Ausgangsbasis und scannt alle 3-5 Sekunden um zu vergleichen. In diesem Takt zeigt er die gefundenen "Wärmecluster" an. Natürlich müsste man dazu wissen, wieviel Wärme der Scanner von einer Einzelperson aufnimmt und wann er eine ganze Ansammlung von Menschen erwischt hat. Das sollte aber durch etwas messen und und abgleichen herauszufinden sein und dem Scanner eine Vorgabe für seine Arbeit geben, sprich, ihn kalibrieren. Damit sparst du dir die Taster, Buzzer und sonstiges, musst nur dein Programm etwas intelligenter machen.
Eine weitere Möglichkeit wäre es, eine doppelte Lichtschranke an der Tür zu installieren, so dass beim durchgehen zwei Signale kurz hintereinander die Richtung der Person anzeigen die gerade die Tür durchquert. Dann kannst du beim eintreten hoch zählen und beim umgekehrten Signal wieder abziehen und hast ebenfalls eine ziemlich genaue Anzeige, solange niemand aus dem Fenster springt.