Posts by nurazur

    Am besten einfrieren und mit einem Skalpell versuchen einen Einschnitt hinzubekommen.

    Selbst wenn das funktioniert, unbedingt vor Wiederinbetriebnahme gut trocknen, denn der Raspi wird beim Auftauen wahrscheinlich nass vom Kondenswasser.


    Ich selbst verwende Kaeltespray lokal, das verdampft sehr schnell ohne dass der Raspi nass wird.

    die fuer mich einfachste Moeglichkeit ist den Schaltplan von Hand auf ein Blatt Papier zu zeichnen und die Zeichnung einzuscannen.


    Persoenlich verwende ich Autodesk Eagle (die Free Version) zum Zeichnen von Schaltplänen.


    In diesem Forum wird sehr oft Fritzing empfohlen/verwendet.


    Mit deinem ASCII Schaltplan kann ich leider nichts anfangen, ich finde das unlesbar bzw. einfach nur scheusslich (sorry, meine Meinung!)

    Meine Frau wollte für ihr Business eine professionelle Webseite, hat eine professionelle Designerin damit beauftragt, und nach mehreren Monaten Entwicklungszeit musste meine Frau den Stecker ziehen (Geld weg). Bei dem Strato Basispaket ist Wordpress mit dabei, und dann hab ich mich halt damit beschäftigt.

    Nach zwei Tagen war die Seite fertig.

    Der grosse Vorteil ist dass die Webseite sowohl auf dem Handy, dem Tablet, dem Laptop und dem Desktop gut aussieht, und das ganz automatisch.

    Beispiel

    ja, an ein Museum hab ich auch gedacht...

    Da sieht man wie schnelllebig die Welt geworden ist. Ende der 90er / Anfang der 2000er waren die Jupiter Module "State of the Art". Besonders beliebt bei Schiffsnavigation, Logistikunternehmen und Auto-Navigation. Die Module koennen auch "blind" navigieren, also auch wenn mal keine Sartelliten sichtbar sind, z.B. in einem Tunnel. Absolut faszinierende Technik.

    Nur hat sich die Technologie halt inzwischen extrem kommerzialisiert, und Navigation ist heute in jedem Smartphone.

    Leider haben die Bosse von Conexant damals mehr ihr Shareholder Value im Auge gehabt (von dem sie selbst am meisten profitiert haben).

    Smartphones gabs damals noch nicht, aber die Ingenieure hatten bereits die Vision GPS in jedes Handy zu bringen, und sie hatten auch die Technologie dafür. Conexant wurde dann aber (aus Geldgier?) zerschlagen, das Team hat sich verstreut, und aus wars.


    Egal, ich hab keinerlei Verwendung für das Zeug. Ein solches Modul zum Laufen zu bringen ist nicht kompliziert: anschliesen, Antenne dran, seriellen Port dran anschliessen und fertig. Man muss sich halt mit dem NMEA Protokoll beschäftigen, das ist alles. Aber da gabs und gibts dutzende Programme im Netz um das auszuwerten.

    Gibt es diese Möglichkeit?

    ja.


    screen -dmS fenster1  befehl1 eroeffnet ein neues Terminal Fenster mit dem Namen "fenster1" und fuehrt befehl1 aus.

    Mit screen -dr fenster1 kann man sich dann anschauen was in dem Fenster grade passiert.

    Ich benutze screen hauptsächlich um mir den Output von bestimmten Prozessen von einem anderen Computer aus anzusehen. Man kann mehrere "Screens" gleichzeitig offen haben. Wenn man das Terminal schliesst, bleibt das "Fenster" bestehen und der Prozess wird nicht gestoert und läuft weiter.

    dbv: ich finde es ganz allgemein nicht in Ordnung einzelne Forumsmitglieder gegen andere Forumsmitglieder aufzubringen. Es gibt klare Forumsregeln, wenn Gnom gegen diese verstossen hat sollte er abgemahnt werden.


    Gnom: ich finde du bist eindeutig über das Ziel hinausgeschossen. Ich kann dir auch in der Sache nicht zustimmen.


    floripappa: ich habe in der Vergangenheit mit >>>solchen Modulen<<< Erfolg gehabt. Den LDR hab ich über eine abgeschirmte Leitung an das Modul angeschlossen. In meinem Fall hat eine gelbe LED genau 10ms geblinkt und mit dem Puls konnte ich zuverlässig einen Interrupt am Raspberry Pi ausloesen.

    Die Empfindlichkeit lässt sich mit dem Poti einstellen.

    Vielleicht funktioniert es ja sogar den Kollektorwiderstand des Phototransistors auf 50kOhm zu erhoehen. Bei einer Impedanz von 50kOhm ist allerdings die Wahrscheinlichkeit, sich durch eine Interferenz auf der Leitung eine Falschinformation einzufangen ca. 100%.

    Meine inzwischen 12 (!) Umzugskisten mit Elektro- und Elektronik Zeug müssen endlich entrümpelt werden.


    Ich biete hier 8 Rockwell/Conexant Jupiter GPS Module gegen Zahlung der Versandkosten an.


    Die Module stammen aus den späten 90ern des letzten Jahrhunderts und brauchen 5V. Sie haben ein serielles Interface und haben eine Pinleiste mit 2mm Raster. Die Jupiter kennen ausschliesslich GPS Satelliten und haben 12 Kanäle. Man kann damit z.B. einen Zeittakt mit der Genauigkeit einer Atomuhr bauen. Die Module haben einen 10kHz Takt am Ausgang mit dem man zB. mittels PLL ein 10MHz Normal herstellen kann das Atomuhrgenau ist. Aber auch zum Navigieren im Auto sind die Teile geeignet. NMEA Protokoll wird unterstüzt, Datenblätter sind noch im Internet zu finden. Einen Designers Guide kann ich auch noch beisteuern.


    Desweiteren hab ich noch ein Evaluierungskit ohne Zubehoer und ohne GPS Modul ebenfalls zum Preis der Versandkosten:


    Ausserdem noch die Hauptplatine eines weiteren Evaluierungskits (ohne Bild).

    Dann hab ich noch eine alte PCMCIA Karte mit GPS Empfänger (uralt!, keinerlei Unterlagen)

    und eine " Delorme Earthmate GPS Receiver" mit RS232 Anschluss,


    Ihr koennt selber schauen was die Earthmate im Internet kostet, ist also ein echtes Schnäppchen.


    Ich habe auch noch drei Antennen mit Magnet, ursprünglich für Montage auf einem Fahrzeug gedacht, zwei davon sind aktiv (5V). Ohne Abbildung.

    Und das aber nicht p2p sondern von mehreren Sensoren.. (wenn das überhaupt ein Unterschied macht)

    nein das macht keinen Unterschied. Du kannst deine Daten z.B. mittels MQTT vom Chirpstack an deine Anwendung schicken.


    Was ich nun suche, ist eine Schnittstelle / Bibliothek für den Pi

    genau das macht der Chirpstack auf einem Raspberry in Verbindung mit einem LoRa Gateway. Gateway und Raspberry müssen natürlich im lokalen Netzwerk eingebunden sein. Das Mikrotik Gateway kann auch WiFi, es braucht also nicht zwingend eine Ethernet Verbindung.

    LoRa ist ein Funkstandard, Die Topologie ist sternfoermig, d.h. das sind eine Menge Nodes und die senden an ein Gateway. Das Gateway sendet dann die empfangenen und dekodierten Daten an einen Server.

    Du brauchst also ein Gateway und Serversoftware. Ich verwende als Gateway ein Mikrotik Gateway und als Server Software Chirpstack.

    Chirpstack kann auf einem Raspberry laufen, dafuer gibts afaik eine eigene Distribution von Chirpstack.

    Das Ganze ist aber ziemlich aufwändig und eher für professionellen Einsatz.


    Im Privatbereich braucht man evtl den ganzen Protokoll-Kladderadatsch nicht. Dann kann man sein eigenes 'Ding' machen, a la "TiNo".

    Mit wenig Overhead aber der selben Modulationsart wie LoRa kann man stromsparende batteriebetriebene Nodes selber herstellen die extreme Reichweiten haben koennen.

    Dazu baust du dir eine Punkt-zu-Punkt Verbindung, bzw. dein eigenes Gateway. Beispiele dazu gibts im Netz zuhauf.


    Allerdings spricht für mich nichts gegen einen Cloud basierten Dienst wie TheThingsNetwork. Ich denke das ist für DIYer bzw. privaten Einsatz die naheliegendste Herangehensweise. Nachteil ist eigentlich nur dass du immer eine Verbindung ins Internet haben musst.

    Lässt sich die Sendeleistung irgendwie steuern?

    ja, über die Versorgungsspannung. Die Dinger vertragen bis zu 12V für maximale Leistung (keine Garantie!!!), unter 5V wirds kritisch weil die Schwingung abreissen kann.

    Grosse Sprünge macht man damit allerdings nicht.


    Kann es sein, dass die Antennte stört, auch wenn sie gar nicht benutzt wird?

    Das ist vorstellbar, weil die Raspberries sind HF technisch gesehen echte Dreckschleudern. Ueber die Versorgungsleitung und die Datenleitung koennte die HF zur Antenne gelangen und wenn die Anpassung zufällig stimmt strahlst du eine nenenswerte Leistung von HF über die Antenne ab. Das ist aber eher unwahrscheinlich. Abhilfe koennten Ferritringe schaffen.


    Dieser selbstgebaute Sender wird nur immer kurz zum Ein-/Ausschalten von Geräten benutzt.

    Bist du 100% sicher? Wenn die Datenleitung HIGH ist sendet der Sender, wenn sie LOW ist stoppt er. Stelle also sicher dass am Ende eines Sendesvorgangs die Datenleitung immer LOW gesetzt wird.

    jar war schneller.

    du hast einen Punkt. nach 40 Jahren Praxis in C Programmierung hab ich wieder mal was gelernt :).



    weil ein Überlauf bei ``<<`` bei `int` undefiniertes Verhalten ist, während bei `unsignet int` die Bits einfach rausgeschoben werden/verloren gehen.

    Das steht so nicht im Standard, jedenfalls nicht in meinem (damals ANSI C, also K&R, heute als C89 bzw C90 Standard bezeichnet).



    Im C Standard steht:

    Quote

    "Die shift-Operatoren << und >> werden von links nach rechts zusammengefasst. Bei beiden Operatoren muss jeder Operand ein Integer-Wert sein und Integer-Erweiterung findet statt. Der Resultattyp ist der Typ des erweiterten linken Operanden."

    Jetzt kommts:

    Quote

    Das Resultat ist undefiniert, wenn der rechte Operand negativ ist oder wenn der Wert des rechten Operanden nicht kleiner ist als die Länge des linken Operanden in Bits.

    Demnach müsste es korrekt (1L<<16)-1 heissen, das u verstehe ich zwar jetzt, ergibt aber keinen Sinn. Zur Sicherheit koennte man ja (1UL<<16)-1 schreiben.


    Da aber die Typ-Erweiterung im Kompiler automatisch abläuft, ist der Zusatz nicht notwendig. Eine Schiebeoperation um 16 bits sagt dem Kompiler dass der linke Operand mindestens 17 bits haben muss (laut ANSI C Standard), also erweitert er den Typen auf long. Ob das jetzt signed oder unsigned ist ist egal.

    Da müsste man dann aber wohl ``(1L << 16) - 1`` schreiben, denn ein ``1u << 16`` ist entweder selbst schon undefiniert oder das abziehen von 1 von der resultierenden nicht vorzeichenbehafteten 0 ist es.

    stimmt. Da es aber funktioniert gehe ich davon aus dass der Compiler merkt dass der Ausdruck (1<<16) ein long ist. Das 'u' hinter der 1 verstehe ich sowieso nicht, das besagt dass die 1 ein unsigned int ist. Aber der Wert 1 kann ja nicht negativ sein, weil eine Konstante im Source Code immer erst mal als int interpretiert wird.

    Ich weiss jetzt nicht ob ein Compiler bei einer 8 Bit CPU bei 0xffff meckern wuerde. Erwarten wuerde ich es jedenfalls.

    Arduino Uno, Nano oder Pro-Mini haben eine 8-bit CPU, und der C++ Compiler avr-g++ erlaubt int (16 bit) und long (32 bit) und float (32 bit) Operationen ohne zu meckern. 0xFFFF wird klaglos abgearbeitet, wenn man eine Konstante als long (32 bit) Wert bestimmen will, setzt man ein 'L' dahinter, also z.B. 0xFFFFL, Der Kompiler würde 0xFFFF als int erkennen, aber mit dem L dahinter wird es ein long. Manchmal kann das sinnvoll sein.


    Ich arbeite ausschliesslich mit C++ Compilern, und in C gibt es die minimale Konvention char = 8bit, short=16 bit, long=32 bit, float = 32 bit. Insofern ist eine Konstante 0xFFFF 100% portabel. Das war schon beim Intel 8051 so.

    Die Datentypen int , bool und double sind prozessorabhängig. Beim Arduino Uno z.B. ist int das selbe wie short und double  ist das selbe wie float.


    Assembler auf einer 8-bit Architektur ist eine komplett andere Baustelle, da muss sich der Programmierer selbst um die Datentypen kümmern. Da wird eine Fliesskomma Operation zur echten Herausforderung. Aber zum Glück gibts ja Compiler!

    wenn man die Ausführungszeit optimieren will

    ... dann hätte ich gleich 0xFFFF geschrieben, weil man ja nicht weiss (also ich zumindest nicht) was der Compiler aus (1u<<16)-1 macht.


    Ein guter Compiler merkt dass er die Rechnung bereits zur Kompilierzeit machen kann und tut das dann auch. Ein weniger guter wird die Schiebeoperation und die Subtraktion in Assember Code übersetzen.

    Würde mich mal interessieren was der gcc Compiler draus macht. Da gibts ne Kommandozeilen Option mit der man den Assembler Code angezeigt bekommt. Ist mir aber grad entfallen welche.

    Ich interpretiere es so. Nehme 1 schiebe 16 mal nach links und ziehe 1 ab???

    genau. Mit Klammern.



    ohne Klammern kommt 8000 Hex rauß

    genau, weil - Vorrang vor << hat, also "ziehe 1 von 16 ab und schiebe eine 1 (16-1) mal nach links = 2 hoch 15 = 0x8000


    Aber vielleicht kommt der Code auch einem Register in Assembler nahe.

    Das ist das Geniale an C: die Sprache ist sehr nahe an der Hardware gebaut und dennoch erlaubt sie genug Abstrahierung von der Maschine so dass Menschen damit umgehen koennen. Das heisst, wenn man C programmiert bekommt man sehr effizienten Code. Ein guter Compiler ersetzt in den allermeisten Fällen die Assembler-Programmierung.

    Ganz klar Punkt vor Strich und somit ist << auch ein Punkt??


    Jetzt hab ich doch tatsächlich meinen alten Kernighan/Ritchie aus dem Regal genommen um zu sehen was Vorrang hat.

    In der Tat, + und - hat Vorrang über << und >>, also MUSS man die Klammern setzen.


    BTW: Kernighan/Ritschie, "Programmieren in C" ist ein Buch der Erfinder/Entwickler von C, und auch wenn sich die Sprache mit den Jahrzehnten extrem weiter entwickelt hat ist es ein absolutes Standardwerk, das jeder C/C++ Programmierer haben sollte, und mindestens einmal durchgearbeitet haben sollte. Die Syntax hat sich nicht verändert.

    a) weil er's kann?

    b) weil er grad nicht weiss was dezimal 2 hoch 16 minus 1 ist ?

    c) um den geneigten Leser des Source Codes zu verwirren?

    d) um darzustellen wie gut er in Integer-Mathematik ist?

    e) um zu beweisen wie gut er C gelernt hat?

    f) weils wurscht ist, der Compiler rechnet es dann schon aus (wenns ein guter Compiler ist)?