Created
August 19, 2011 03:59
-
-
Save jadonk/1156001 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env node | |
| var fs = require('fs'); | |
| var gpioDirectory = "/sys/class/gpio"; | |
| var pins = {}; | |
| pins["seg7Data"] = { gpio: "145" }; // header pin 10 | |
| pins["seg7Clock"] = { gpio: "162" }; // header pin 14 | |
| pins["seg7Latch"] = { gpio: "161" }; // header pin 16 | |
| pins["ledData"] = { gpio: "158" }; // header pin 12 | |
| pins["ledClock"] = { gpio: "159" }; // header pin 18 | |
| var pinsInit = function() { | |
| for(var i in pins) { | |
| console.log("# Enabling " + i); | |
| write(gpioDirectory + "/export", pins[i].gpio); | |
| write(gpioDirectory + "/gpio" + pins[i].gpio + "/direction", "out"); | |
| pins[i].value = "" + gpioDirectory + "/gpio" + pins[i].gpio + "/value"; | |
| } | |
| }; | |
| var write = function(file, data) { | |
| console.log("echo " + data + " > " + file); | |
| fs.writeFile(file, data); | |
| }; | |
| var writeList = function(list, delay, callback) { | |
| var element = list.shift(); | |
| write(element.file, element.data); | |
| if(list[0]) { | |
| setTimeout(function () { | |
| writeList(list, delay, callback); | |
| }, delay); | |
| } else { | |
| callback(); | |
| } | |
| } | |
| pinsInit(); | |
| var seg7WriteChar = function(char) { | |
| // | |
| // --A-- | |
| // | | | |
| // D E | |
| // | | | |
| // --B-- | |
| // | | | |
| // F G | |
| // | | | |
| // --C-- H | |
| // | |
| var chars = { | |
| // ABCDEFGH | |
| '0': "10111110", | |
| '1': "00001010", | |
| '2': "11101100", | |
| } | |
| var segments = "00000000"; | |
| var list = []; | |
| if(chars[char]) { | |
| segments = chars[char]; | |
| } | |
| list.push({ file: pins.seg7Latch.value, data: '0' }); | |
| for(var i = 0; i < 8; i++) { | |
| list.push({ file: pins.seg7Clock.value, data: '0' }); | |
| list.push({ file: pins.seg7Data.value, data: segments.substr(i, 1) }); | |
| list.push({ file: pins.seg7Clock.value, data: '1' }); | |
| } | |
| list.push({ file: pins.seg7Clock.value, data: '0' }); | |
| list.push({ file: pins.seg7Latch.value, data: '1' }); | |
| list.push({ file: pins.seg7Latch.value, data: '0' }); | |
| writeList(list, 100, function() { | |
| console.log("# Done with character '" + char + "'"); | |
| }); | |
| } | |
| var seg7Write = function(string, delay) { | |
| var nextString = string; | |
| seg7WriteChar(string, function() { | |
| setTimeout(function() { seg7Write(nextString, delay) }, delay); | |
| }); | |
| } | |
| //seg7Write("0123456789 "); | |
| seg7WriteChar('0', function() {}); | |
| var ledColorWrite = function(color) { | |
| var done = 0; | |
| var ledList = []; | |
| for(var j = 0; j < 3; j++) { | |
| for(var i = 0; i < 9; i++) { | |
| var k = color[j] & (1 << i); | |
| ledList.push( { file: pins.ledData.value, data: (j ? "1" : "0") } ); | |
| ledList.push( { file: pins.ledClock.value, data: "0" } ); | |
| ledList.push( { file: pins.ledClock.value, data: "1" } ); | |
| } | |
| } | |
| writeList(ledList, 10, function() { | |
| console.log("# Done setting LED"); | |
| }); | |
| }; | |
| //ledColorWrite([0, 0, 0]); | |
| //ledColorWrite([1, 0, 0]); | |
| //ledColorWrite([0, 1, 0]); | |
| //ledColorWrite([0, 0, 1]); | |
| //ledColorWrite([0, 0, 0]); | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Enabling seg7Data | |
| echo 145 > /sys/class/gpio/export | |
| echo out > /sys/class/gpio/gpio145/direction | |
| # Enabling seg7Clock | |
| echo 162 > /sys/class/gpio/export | |
| echo out > /sys/class/gpio/gpio162/direction | |
| # Enabling seg7Latch | |
| echo 161 > /sys/class/gpio/export | |
| echo out > /sys/class/gpio/gpio161/direction | |
| # Enabling ledData | |
| echo 158 > /sys/class/gpio/export | |
| echo out > /sys/class/gpio/gpio158/direction | |
| # Enabling ledClock | |
| echo 159 > /sys/class/gpio/export | |
| echo out > /sys/class/gpio/gpio159/direction | |
| echo 0 > /sys/class/gpio/gpio161/value | |
| echo 0 > /sys/class/gpio/gpio162/value | |
| echo 1 > /sys/class/gpio/gpio145/value | |
| echo 1 > /sys/class/gpio/gpio162/value | |
| echo 0 > /sys/class/gpio/gpio162/value | |
| echo 0 > /sys/class/gpio/gpio145/value | |
| echo 1 > /sys/class/gpio/gpio162/value | |
| echo 0 > /sys/class/gpio/gpio162/value | |
| echo 1 > /sys/class/gpio/gpio145/value | |
| echo 1 > /sys/class/gpio/gpio162/value | |
| echo 0 > /sys/class/gpio/gpio162/value | |
| echo 1 > /sys/class/gpio/gpio145/value | |
| echo 1 > /sys/class/gpio/gpio162/value | |
| echo 0 > /sys/class/gpio/gpio162/value | |
| echo 1 > /sys/class/gpio/gpio145/value | |
| echo 1 > /sys/class/gpio/gpio162/value | |
| echo 0 > /sys/class/gpio/gpio162/value | |
| echo 1 > /sys/class/gpio/gpio145/value | |
| echo 1 > /sys/class/gpio/gpio162/value | |
| echo 0 > /sys/class/gpio/gpio162/value | |
| echo 1 > /sys/class/gpio/gpio145/value | |
| echo 1 > /sys/class/gpio/gpio162/value | |
| echo 0 > /sys/class/gpio/gpio162/value | |
| echo 0 > /sys/class/gpio/gpio145/value | |
| echo 1 > /sys/class/gpio/gpio162/value | |
| echo 0 > /sys/class/gpio/gpio162/value | |
| echo 1 > /sys/class/gpio/gpio161/value | |
| echo 0 > /sys/class/gpio/gpio161/value | |
| # Done with character '0' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| root@beagleboard:~# mkdir /debug | |
| root@beagleboard:~# mount -t debugfs none /debug | |
| root@beagleboard:~# cat /debug/gpio | |
| . | |
| . | |
| . | |
| GPIOs 128-159, gpio: | |
| gpio-145 (sysfs ) out lo | |
| gpio-147 (HSUSB1 reset ) out hi | |
| gpio-149 (beagleboard::usr1 ) out hi | |
| gpio-150 (beagleboard::usr0 ) out hi | |
| gpio-158 (sysfs ) out lo | |
| gpio-159 (sysfs ) out lo | |
| . | |
| . | |
| . |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment