PI4-HAT Software in English
PI4-HAT Software in English

Software

Die Pla­ti­ne selbst ent­hält kei­nen Con­trol­ler und da­mit kei­ne Firm­ware. Hier je­doch ei­ni­ge nütz­li­che Hin­wei­se und Code­schnip­sel zur An­steu­e­rung. Ich ha­be sie bis­her nur über Bash-Scripts ge­steu­ert.

Bash-Skripts

Die Rich­tung der I/O-Pins wird zwar be­reits vom EEPROM vor­ge­ge­ben, um sie per Bash-Script nut­zen zu kön­nen müs­sen wir sie je­doch ex­por­tie­ren:

for i in 16 20 21 26 { echo Init $i echo $i >/sys/class/gpio/export echo "out" >/sys/class/gpio/gpio$i/di­rec­tion }

Erst da­nach kön­nen wir die Pins di­rekt set­zen, z.B. so:

sleep 2 echo 1 >/sys/class/gpio/gpio26/value sleep 0.05 echo 0 >/sys/class/gpio/gpio26/value

Hier se­hen wir auch gleich wie man Im­pul­se er­zeugt, die zum An­steu­ern bi­po­la­rer Re­lais er­for­der­lich sind. Der ers­te Sleep sorgt mit 2 Se­kun­den da­für, dass der Kon­den­sa­tor aus­rei­chend ge­la­den ist. Dann wird der Trei­ber ein­ge­schal­tet und mit ei­nem 50 ms-Sleep die Im­puls­zeit ab­ge­war­tet. Da­nach schal­ten wir den Trei­ber wie­der aus.

Das Ti­ming mit Sleep ist selbst in Bash hin­rei­chend ge­nau. Zur Er­zeu­gung von Mess­im­pul­sen (zum Er­mit­teln der ak­tu­el­len Re­lais-Stel­lung) und zur Aus­wer­tung von Tpulse reicht Bash je­doch nicht. Hier bräuch­te man ein ex­ak­tes Ti­ming und Auf­lö­sun­gen im µs-Be­reich. Das ha­be ich bis­her nicht ver­sucht und ich weiß auch nicht, ob das mit dem Pi über­haupt mög­lich ist (zu­min­dest mit Raspbian).

Wich­tig ist, dass im­mer nur ei­ne ein­zi­ge Spule ei­nes ein­zi­gen Re­lais an­ge­steu­ert wird und da­vor zwei Se­kun­den ge­war­tet wird um si­cher­zu­stel­len, dass der Spei­cher­kon­den­sa­tor ge­la­den ist.

Cron-Skript

Als Sys­tem­kon­stan­te ist die NAS-Plat­te per UUID de­fi­niert. Da­mit wird ver­mie­den, ver­se­hent­lich die fal­sche Plat­te (/dev/sdx) als NAS zu moun­ten. Unter /proc/mounts er­scheint sie je­doch als sdx. $(/bin/readlink -e $d) hilft hier bei der Zu­ord­nung, wo­bei $d der UUID-Link (/dev/disk/by-uuid/<UUID>) ist.

Backup-Skript

Das Back­up-Skript ist et­was län­ger, des­halb ha­be ich ihm ei­ne ei­ge­ne Sei­te spen­diert.