อธิบายก่อนนะครับ ว่าอันที่จริง ไม่ใช่ใช้คำสั่ง 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
ไม่มีความคิดเห็น:
แสดงความคิดเห็น