RasPiCar Projekt Forum

Normale Version: GPIO - und der Umgang damit
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

bei meinen Versuch das Projekt wenigstens einigermaßen zu verstehen habe ich mich sowohl hier im Forum ungesehen und auch in meiner CarPc Installation gestöbert.

Namens-Konvention:
Dabei ist mir aufgefallen, dass hier zwar von GPIOs angesprochen werden, aber tatsächlich die Pin-Nummern des Steckers am Pi gemeint sind. Beispiel: Andrei's Schaltung und die Verwendung in "io_config".
Nachtrag: Andrei spricht sehr wohl von den GPIOs und nicht von den Pins! Da habe ich wohl nicht richtig hingesehen!

Code:
# Raspberry PI GPIO XBMC Controller configuration file
# Ip address of the XBMC machine
[ip]:localhost

# Radio volume and XBMC volume are unified
unified_volume:1

# Debouncing settings
click_skip:1
click_hold:500000
encoder_hold:200000

# Left Control
button:10:system_mode_toggle
encoder:sl:2:sr:2:clk:11:dt:9:volume_minus:volume_plus

# Right Control
encoder:sl:2:sr:2:clk:22:dt:27:radio_seek_down+xbmcbuiltin_PlayerControl(previous):radio_seek_up+xbmcbuiltin_PlayerControl(next)
button:17:xbmcbuiltin_Fullscreen

################################################################################
#########################  CLARIFICATION ON SETTINGS  ##########################
################################################################################
# 1. Debouncing Common Settings
# click_skip - How many button press events will be ignored until the user takes the finger out of the button
# click_hold - Ho many microseconds to hold after a button was pressed
# encoder_hold - How many microseconds to hold after an encoder has been turn

# 2. Encoder settings
# sl: How many times to skip an action for the left turn of the encoder
# sr: How many times to skip an action for the right turn of the encoder
# clk: The GPIO number where the CLK pin of the encoder is hooked up
# dt: The GPIO number where the DT pin of the encoder is hooked up

# 3. Radio Commands
# A radio module is needed and a radio UDP server runing.
# A Radio command should start with radio_ and one of the following commands:
#     seek_up       -> seek for the next channel
#     seek_down     -> seek for the previous channel
#     tune_right    -> tune one step right
#     tune_left     -> tune one step left
#     tune_xx.x     -> set radio to the xx.x frequency
#     volume_plus   -> increase radio volume by 1
#     volume_minus  -> decrease radio volume by 1
#     volume_xx     -> set the radio volume to xx
#     toggle_mute   -> toggle radio mute

Um mich endgültig zu verwirren wird am Ende der CarPc Installation (install_carpc.sb) auch noch Gordons wiringPi installiert. Hier kommt dann noch die weitere Namens-Konvention von Gordon dazu. Übrigens ist es mir nicht gelungen, irgendwo eine Anwendung von wiringPi innerhalb dieses Projekts zu finden. Dabei arbeite ich in allen meinen Projekten mit wiringPi.

Umgang mit den GPIO Ein- und Ausgängen:
Bei einen GPIO Pin den ich als Eingang benutzen will, kann ich den internen Pull-Up oder Pull-Down Widerstand aktivieren und bin nicht darauf angewiesen einen passenden Widerstand zu finden und zu verbauen. Ideal fürs Tests.

Mit diesem Thema möchte ich gerne einen Anlaufpunkt für alle schaffen, die gerne externe (Eigenbau-) Hardware anschließen möchten und damit den CarPc beeinflussen oder über den CarPc steuern.

@Administrator, möglicherweise ist "GPIO" auch ein sinnvolles Unterforum für das Hardware- oder RaspberryPi-Forum

Gunter
Ich habe einen (kurzen) Blick in Andrejs Repository zum GPIO Controller auf Github geworfen, Er nutzt übrigens wiringPi um die I2C Komminikation mit dem FmRadio zu bedienen und die interup getriebenen Events von den GPIOs zu behandeln. Toll gemacht denn ganz nebenbei kompensiert er dort auch das Prellen von Schaltern.

Ich habe nun einen Schalter an GPIO18 angeschlossen und die io_config entsprechend angepasst.
Nun kann ich über einen weiteren Schalter auf Kodi einwirken.


Code:
...

# Left Control
button:10:system_mode_toggle
encoder:sl:2:sr:2:clk:11:dt:9:volume_minus:volume_plus

# Right Control
encoder:sl:2:sr:2:clk:22:dt:27:radio_seek_down+xbmcbuiltin_PlayerControl(previous):radio_seek_up+xbmcbuiltin_PlayerControl(next)
button:17:xbmcbuiltin_Fullscreen

# Gunters Test-Button
button:18:system_mode_toggle

Das ist noch nicht wirklich was neues, denn den Aufruf "system_mode_toggle" hatte Andrej ja bereits für den GPIO10 genutzt - ich wollte erstmal testen ob ein eigener Eintrag in der io_config irgend was bewirkt.

Tatsächlich möchte ich später die dashcam über den Schalter starten, doch das scheitert an meinen mangelnden Kenntnissen der richtigen Syntax.


Code:
#DashCam activation
button:18:plugin.program.pidash

Huh Kann irgend jemand hier mit dem richtigen Befehl weiterhelfen? Huh


Gunter
Du kannst hier nur in Kodi eingebaute Aktionen bzw. Funktionen angeben!

Hier noch Infos zur Syntax/Verwendung: Klick.

Nachtrag:
Probiere es mal mit
Code:
button:18:RunPlugin(plugin://plugin.program.pidash)
Hi Jack,
danke für die Hinweise, ich hatte bereits befürchtet, dass mein Lösungsansatz nicht so einfach funktionieren würde. Da werde ich wohl tiefer in die Kodi Materie tauchen müssen, hatte ich sowieso vor.

Dein Nachtrag hat leider nicht zu Erfolg geführt, aber noch gebe ich die Hoffnung nicht auf einen Lösung mit Andreis GPIO Controller zu finden.

Die Alternative das ganze über json Kommunikation zu erledigen (HTML - Fernsteuerung) steht notfalls auch noch zur Verfügung. Aber auch hierzu muss ich erstmal an die richtige Syntax kommen um die Dashcam zu aktivieren.

Danke nochmals und einen sonnigen Nachmittag

Gunter
Ich würde da erst mal keine Arbeit reinstecken, da im neuen CarPC der Controller über ein Kodi Addon läuft und viel mehr Möglichkeiten bietet.
Christian, das ist eine klare Ansage, werde also erstmal auf die neue Version und das Controller Addon warten.

Hab ja noch ein paar Baustellen und dann kann ich die Zeit auch nutzen um etwas tiefer in Kodi vorzudringen. Dann besteht auch eine Chance dass ich dann (endlich mal  Big Grin ) vorher verstehe was ich tue.

Ich habe vor einiger Zeit für jemanden eine Arduino basierte Steuerung gebaut, mit der er einige Funktionen im Auto (Sitzverstellung, Sitzheizung, Fensterheber...) bedient die er sonst wegen einer körperlichen Einschränkung nicht bedienen kann, ans Radio ünd Co. hatte ich damals noch gar nicht gedacht.
Bei den Recherchen für die Phase 2 dieses Projektes bin ich auf CarPc gestoßen und hatte sofort die Idee mein Steuerungsprojekt damit zu kombinieren. Deshalb reite ich auch so auf den GPIOs herum und nerve den Rest der Welt damit.

Da ich immernoch auf das fmradio und die GPS mouse warte, werde ich mich erstmal auf Kodi konzentrieren und meinen Kenntnisstand vertiefen.

Ganz nach meinem Motto: "read the manual first"

Gunter