2013-03-26 70 views
1

我正在移植開源項目OpenROV for Raspberry Pi。 (該項目是爲BeagleBone開發的。)端口唯一的重大挑戰是將軟件對GPIO1_0(aka GPIO32)的引用更改爲在Raspberry Pi的頭文件中打開的引腳(我在考慮GPIO18)。原代碼如下:重新路由樹莓派GPIO - 虛擬引腳?

#!/bin/sh 
# GPIO1_0 equals equals /sys/class/gpio32 (32 + 0) 

#see http://ninjablocks.com/blog/2012/1/20/setting-up-gpio-on-the-beaglebone.htm l 


back_to_normal() { 
    sleep 1 
    #set GPIO1_0 to HIGH 
    echo "high" > /sys/class/gpio/gpio32/direction 
} 

reset() { 
    sleep 1 
    #prepare gpio 
    echo "32" > /sys/class/gpio/export 
    echo "out" >/sys/class/gpio/gpio32/direction 
    echo 7 > /sys/kernel/debug/omap_mux/gpmc_ad0 
    #set GPIO1_0 to low 
    echo "low" > /sys/class/gpio/gpio32/direction 
    back_to_normal 
} 
echo Initiating arduino reset 1>&2 
reset & 

當然,我可能只是經過,非常參照32改爲18,但這需要每次更新額外的工作。相反,是否有某種方法可以創建一個虛擬GPIO32,以自動將命令重定向到GPIO18?

+0

好吧,我對樹莓派一無所知,但是一些一般的Unix提示可能會幫助你:a)使用符號鏈接代替實際的設備; b)在用於設置端口的shell腳本中使用一個參數(即給它18個,並且它將在腳本c中的每個地方使用18個參數)如果可用,使用'socat'。 – 2013-03-26 22:07:43

+0

感謝您的建議 - 我只用了幾個月的linux,並不知道適當的術語。 a)這是我無法解決的主要問題 b)有意義,特別是因爲這是我將使用該設備的唯一方法。 c)這可能會訣竅。我會嘗試一下並回復你。 – user2213454 2013-03-27 01:41:38

回答

0

我剛剛開始使用Python和RPi.GPIO linux軟件包玩Raspberry Pi及其GPIO。我在我的博客上寫了關於我的第一個簡單步驟:Using Raspberry Pi GPIO Interface

通過調用GPIO.setmode(GPIO.BOARD)或GPIO.setmode(GPIO.BCM),有一種調用將RPi.GPIO模式設置爲BOARD或BCM,該模式在兩個引腳配置之間變化。如果你看看它是什麼,它可以幫助你解決問題。