libPiGPIO

Eine modulare C++ Softwarebibliothek für den Raspberry Pi zur Einbindung elektronischer Bauelemente  (Schalter, Sensoren, Servos etc.)  in Softwareprojekte

Konzeptionell ähnelt libPiGPIO den bekannten python-Bibliotheken RPi.GPIO bzw. gpiozero: Bauelemente werden in eine Objekthierarchie abgebildet, sodass eine Art ‚Baukasten‘ entsteht.
Zusätzlich können über einen einfachen signal-slot Mechanismus elektrische ‚Events‘ asynchron an  Objektmethoden (callbacks) gebunden werden.

    // ein 'Drückschalter' an Pin GPIO 16
    pigButton button( bcm16 );
    
    // eine LED und ein Summer an Pin 12 und Pin 23
    pigLED LED( bcm12 );
    pigBuzzer buzzer( bcm23 );
    
    // Zustände verknüpfen
    button.connect_state( LED );
    button.connect_state( buzzer );
    // 'connect_state' ist die Kurzform von
    // sigState.connect( &T::change_state, &listener );

Technisch handelt es sich um einen C++ – Wrapper der C-library ‚pigpio‘ für den RaspBerry Pi. Die Überwachung der Sensorik erfolgt multithreaded, sodass Abfrageschleifen vermieden werden können.

 // Ultraschall Modul HC-SR04
 pigSonar sonar( bcm21, bcm20 );
 // je näher, desto höher der Ton
 sonar.sigValue.connect( [&](double dist){  buzzer.buzz( 100, dist*50 ); } );
  // Schwellwert <= 20 cm
  sonar.start( 20 );

  • Sprache: c++ / stl
  • Plattfrom: Raspberry Pi
  • Quellcode: libpigpio
  • Status: experimentell

source::worx
Datenschutz-Übersicht

Diese Website verwendet Cookies, damit wir dir die bestmögliche Benutzererfahrung bieten können. Cookie-Informationen werden in deinem Browser gespeichert und führen Funktionen aus, wie das Wiedererkennen von dir, wenn du auf unsere Website zurückkehrst, und hilft unserem Team zu verstehen, welche Abschnitte der Website für dich am interessantesten und nützlichsten sind.