ลิงก์ผู้สนับสนุน

วันอังคารที่ 19 มีนาคม พ.ศ. 2556

[Raspberry Pi][Perl] ควบคุม GPIO บน RaspberryPi ด้วย perl


อธิบายก่อนนะครับ ว่าอันที่จริง ไม่ใช่ใช้คำสั่ง perl ซักเท่าไหร่ แต่จะใช้ภาษา perl รันคำสั่ง linux ตอนใช้งาน GPIO บน raspberry pi อีกทีนึง ไม่งงนะ = = 55555

สำหรับสคริปนี้ ต้องรันด้วยสิทธิ์ root นะครับ (login ด้วย user root ก่อนรัน หรือใช้คำสั่ง sudo perl file.pl)

print "\n [+]----------------------------------------[+]";
print "\n  |    GPIO Control by using perl on bash    |";
print "\n  |      Test on Raspbian Wheezy [RPi]       |";
print "\n  |                                          |";
print "\n  |   Created by : AssazziN                  |";
print "\n  |   Version 1: 11 Mar 2013                 |";
print "\n [+]----------------------------------------[+]\n";

print "\n >> type h|help for help\n";
do {
    print " >> ";
    chomp($input=);
    if ($input eq 'h' or $input eq 'help') { help(); }

    elsif ($input=~/^export (\d{1,2})$/) {
        system("echo \"$1\" > /sys/class/gpio/export");
    }

    elsif ($input=~/^direction (\d{1,2}) (out|in)$/) {
        system("echo \"$2\" > /sys/class/gpio/gpio".$1."/direction");
    }

    elsif ($input=~/^value (\d{1,2}) (1|0)$/) {
        system("echo \"$2\" > /sys/class/gpio/gpio".$1."/value");
    }

    elsif ($input=~/^unexport (\d{1,2})$/) {
        system("echo \"$1\" > /sys/class/gpio/unexport");
    }

    elsif ($input=~/status/i) {
        @pin=();
        $pin=`find /sys/class/gpio/ gpio*`;
        while ($pin=~/sys\/class\/gpio\/gpio(\d{1,2})/g) { push(@pin,$1); }
        print " All pins that useabled : @pin\n";
    }

    elsif ($input eq 'q' or $input eq 'quit' or $input eq 'exit') {}
    else { print " $input : command not found\n"; }
} while ($input ne 'q' and $input ne 'quit' and $input ne 'exit');



sub help {
    print "\n ** This script requirement ROOT ***\n";
    print " > export [GPIO PIN]                 set gpio pin to useable\n";
    print " > direction [GPIO PIN] [out|in]     set gpio pin direction\n";
    print " > value [GPIO PIN] [1|0]            set gpio pin value\n";
    print " > unexport [GPIO PIN]               set gpio pin to unuseable\n";
    print " > status                            check status of all pin\n";
    print " > q quit exit                       exit script\n\n";
}


Pastebin: [Raspberry Pi] GPIO Control

ส่วนการใช้งานคำสั่งๆจริงๆ แบบไม่ผ่านสคริปนี้ ก็แกะจากโค้ดเอาละกัน ;p

คำสั่งเปิดใช้งานขา gpio ขาที่ #23 : sudo echo "23" > /sys/class/gpio/export
คำสั่งให้ขา gpio #23 เป็นตัว output : sudo echo "out" > /sys/class/gpio/gpio23/direction
คำสั่งให้ขา gpio #23 เป็นตัว input : sudo echo "in" > /sys/class/gpio/gpio23/direction
คำสั่งจ่ายไฟให้ขา gpio #23 : sudo echo "1" > /sys/class/gpio/gpio23/value
คำสั่งหยุดจ่ายไฟให้ขา gpio #23 : sudo echo "0" > /sys/class/gpio/gpio23/value
คำสั่งอ่านค่าสถานะของขา gpio #23 : cat /sys/class/gpio/gpio23/value
คำสั่งเลิกใช้งานขา gpio ขาที่ #23 : sudo echo "23" > /sys/class/gpio/unexport

ไม่มีความคิดเห็น: