| Projekt /c | C - Linux - Arduino - Raspberry | Home |Projekt /c bietet objektorientierte modulare Lösungen für C Programme auf der GNU-Linux Console und im XTerminal.
Projektbrowser chelp bietet eine gut eingerichtete Werkstatt zum Entwickeln von einfachen oder komplexen C-Programmen. Alle Funktionen verwenden GNU-Linux und sind in den Headerdateien dokumentiert. Die Verwendung wird mit ausführlichen Testprogrammen gezeigt. Alle Projektdateien befinden sich in einem einzigen verschiebbaren Ordner c/. Die Funktionen sind in freien statischen Bibliotheken abgelegt. Zielgruppe: C Programmierer, Einsteiger und Umsteiger. Geeignet für einfache Programme und komplexe C-Projekte mit vielen Modulen und langer Laufzeit. Verwendung: Zur Entwicklung von Lösungen für komplexe Projekte. Oder als Nachschlagewerk für C Lösungen. Betriebssystem: GNU Linux. Getestet auf PC und Raspberry B+, Pi 3 B+ und Pi 4 B. |
clar_vorwort.pdf | | Geschichte von Projekt c/ |
clar_start.pdf | | Projekt c/ einrichten. Die ersten Schritte |
clar_chelp.pdf | | Projektbrowser einrichten |
clar_projekt.pdf | | Ein neues C Programm erstellen |
clar_objekte1.pdf | | Basisobjekte ohne Terminal In/Ouput |
clar_objekte2.pdf | | Objekte In/Ouput | Farben und Tasten |
clar_objekte3.pdf | | Datenspeicherung | Scripte |
2_picamctl.pdf | | Beispiel: Camera Steuerung für Raspberry Pi |
2_gardenctl.pdf | | Beispiel: Garten Steuerung für Raspberry Pi |
2_devtest.pdf | | Beispiel: Testprogramm für Steuerungen |
mtrainer_doku.pdf | | Beispiel: ALSA/MIDI Steuerung mit Setup |
kbdctl_doku.pdf | | Beispiel: Songverwaltung Yamaha PSR-s975 |
c.tar.gz | | Version 2025.04.11 | Anleitung |
shasum.txt | | Püfsumme | Keine Installation notwendig! |
Systemdaten abfragen und einstellen
Systeminfos für Programmierer: Compiler | sizeof() | Datum/Zeit | usw.
Infos für Programmierer: Pointer im Speicher
Fortsetzung: Verschiedene Pointer anlegen und freigeben
Autonome Solarsteuerung mit Arduino für Warmwasserkollektoren.
In der Entwicklungsphase, zur Kalibrierung, für Einstellarbeiten und für statistische Auswertungen kann der Raspberry über eine USB-Schnittstelle die Kontrolle übernehmen. Die Bedienung mit ssh kann von einem beliebigen, im Netz erreichbaren Rechner, erfolgen.
Beim Start des Raspberrys wird mit crontab das Programm clock8583 (siehe Projekt c/) gestartet. Das Programm setzt die Systemzeit auf die Zeit des Timeservers oder der Echtzeituhr.
Crontab ruft danach fortlaufend den Befehl screenstart sun900 (siehe Projekt c/) auf. Screenstart sorgt dafür, dass immer genau eine Instanz des Steuerprogramms sun900 läuft.
sun900 stellt automatisch eine USB-Verbindung zum Arduino her. Der richtige Arduino wird dabei über eine Sketch-Id identifiziert. Die Verbindung wird laufend geprüft und nach Unterbrechungen automatisch erneuert.
Projekt c/ stellt im Modul comapi.h Funktionen für eine sichere Kommunikation mit mehreren Arduinos bereit. Es werden Datenblöcke mit Slotnummern verwendet. Damit können auch nicht blockierende Verbindungen realisiert werden. Über den Alarmslot 0 können die Arduinos jederzeit Alarmfunktionen aufrufen.
Für die Fernsteuerung wird mit ssh eine Verbindung zum Raspberry hergestellt. Mit dem Befehl screenstart sun900 kann dann die Steuerung übernommen werden. Sollte man aus Versehen sun900 beenden, so startet crontab das Programm neu.
Das folgende Bild zeigt die Terminalausgabe von sun900. Für andere Endgeräte kann ein Webserver verwendet werden.
Die Grafik zeigt automatisch erstellte Messwerte zur Kalibrierung. Die Grafik wurde mit dem Programm turtle erstellt.
Günther Schardinger Linux GNU, Programmieren in C lernen, gcc make, makefile, Arduiono. Projekt c/, chelp, Scripte, Raspberry Pi, GPIO /dev/gpiocihip0, i2c Bus, BCM Broadcom, 1-Wire, USB manuell mounten, Echtzeituhr für Raspberry, Gartensteuerung, Wildcamerea C im 21. Jahrhundert, Terminalmultiplexer screen. Workshop C, Wildkamera, C für dummies, C mit geany