Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects
Commit 26746d84 authored by Mark Yoder's avatar Mark Yoder
Browse files

Added more LED examples

parent ac3cfa46
Branches
Tags
No related merge requests found
......@@ -72,134 +72,205 @@ take the ``ssh (Linux/Mac)`` tab. Finally take the
Try running ``seqLEDs.py``.
.. group-tab:: ssh (Linux/Mac)
.. group-tab:: Command line
If you are running a Linux host, open a terminal widow and run
This is command line.
.. tabs::
.. group-tab:: ssh (Linux/Mac)
If you are running a Linux host, open a terminal widow and run
.. code-block:: shell-session
host:~$ ssh debian@192.168.7.2
Use password ``temppwd``.
.. group-tab:: Windows (Putty)
If you are running Window you need to run an ``ssh`` client
to connect to the Beagle. I suggest you use ``putty``.
You can download it here: https://www.putty.org/.
Once installed, launch it and connect to your Beagle
by sshing to ``192.168.7.2``.
.. figure:: figures/putty.png
Login with user ``debian``
and password ``temppwd``.
Blink an LED
Once logged in the rest is easy. First:
.. code-block:: shell-session
host:~$ ssh debian@192.168.7.2
bone:~$ cd ~/examples/BeagleBone/Black
bone:~$ ls
README.md blinkInternalLED.sh blinkLED2.py input2.js
analogIn.py blinkLED.bs.js blinkLEDold.py seqLEDs.py
analogInCallback.js blinkLED.c fadeLED.js swipeLED.js
analogInContinuous.py blinkLED.js fadeLED.py
analogInOut.js blinkLED.py gpiod
analogInSync.js blinkLED.sh input.js
Use password ``temppwd``.
Here you see a list of many scripts that demo simple
input/output on the Beagle. Try one that works on the
internal LEDs.
.. group-tab:: Windows (Putty)
.. code-block:: shell-session
If you are running Window you need to run an ``ssh`` client
to connect to the Beagle. I suggest you use ``putty``.
You can download it here: https://www.putty.org/.
Once installed, launch it and connect to your Beagle
by sshing to ``192.168.7.2``.
bone:~$ cat blinkInternalLED.py
LED="3"
LEDPATH='/sys/class/leds/beaglebone:green:usr'
while true ; do
echo "1" > ${LEDPATH}${LED}/brightness
sleep 0.5
echo "0" > ${LEDPATH}${LED}/brightness
sleep 0.5
done
bone:~$ ./blinkInternalLED.py
^c
.. figure:: figures/putty.png
Here you see a simple bash script that turns an LED
on and off. Enter control-c to stop the script.
Login with user ``debian``
and password ``temppwd``.
Blinking via Python
Here's a script that sequences the LEDs on and off.
Blink an LED
------------
.. code-block:: shell-session
Once logged in the rest is easy. First:
bone:~$ cat seqLEDs.py
import time
import os
LEDs=4
LEDPATH='/sys/class/leds/beaglebone:green:usr'
# Open a file for each LED
f = []
for i in range(LEDs):
f.append(open(LEDPATH+str(i)+"/brightness", "w"))
# Sequence
while True:
for i in range(LEDs):
f[i].seek(0)
f[i].write("1")
time.sleep(0.25)
for i in range(LEDs):
f[i].seek(0)
f[i].write("0")
time.sleep(0.25)
bone:~$ ./seqLEDs.py
^c
Again, hit control-C to stop the script.
Blinking from Command Line
.. code-block:: shell-session
.. code-block:: shell-session
bone:~$ cd /sys/class/leds
bone:~$ ls
beaglebone:green:usr0 beaglebone:green:usr2 mmc0::
beaglebone:green:usr1 beaglebone:green:usr3 mmc1::
Here you see a list of LEDs. Your list may be slightly
different depending on which Beagle you are running.
You can blink any of them. Let's try ``usr1``.
bone:~$ cd /sys/class/leds
bone:~$ ls
beaglebone:green:usr0 beaglebone:green:usr2 mmc0::
beaglebone:green:usr1 beaglebone:green:usr3 mmc1::
Here you see a list of LEDs. Your list may be slightly
different depending on which Beagle you are running.
You can blink any of them. Let's try ``usr1``.
.. code-block:: shell-session
bone:~$ cd beaglebone\:green\:usr1/
bone:~$ ls
brightness device max_brightness power subsystem trigger uevent
bone:~$ echo 1 > brightness
bone:~$ echo 0 > brightness
.. code-block:: shell-session
bone:~$ cd beaglebone\:green\:usr1/
bone:~$ ls
brightness device max_brightness power subsystem trigger uevent
bone:~$ echo 1 > brightness
bone:~$ echo 0 > brightness
When you echo 1 into ``brightness`` the LED turns on.
Echoing a 0 turns it off. Congratulations, you've blinked
your first LED!
When you echo 1 into ``brightness`` the LED turns on.
Echoing a 0 turns it off. Congratulations, you've blinked
your first LED!
Blinking other LEDs
Blinking other LEDs
-------------------
You can blink the other LEDs by changing in to thier
directories and doing the same.
You can blink the other LEDs by changing in to thier
directories and doing the same.
.. code-block:: shell-session
bone:~$ cd ../beaglebone\:green\:usr0/
bone:~$ echo 1 > brightness
bone:~$ echo 0 > brightness
.. code-block:: shell-session
bone:~$ cd ../beaglebone\:green\:usr0/
bone:~$ echo 1 > brightness
bone:~$ echo 0 > brightness
Did you notice that LED ``usr0`` blinks on it's own in a
heartbeat pattern? You can set an LED trigger. Here's
what triggers you can set:
Did you notice that LED ``usr0`` blinks on it's own in a
heartbeat pattern? You can set an LED trigger. Here's
what triggers you can set:
.. code-block:: shell-session
.. code-block:: shell-session
bone:~$ cat trigger
none usb-gadget usb-host rfkill-any rfkill-none
kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock
kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock
kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock
timer oneshot disk-activity disk-read disk-write i
de-disk mtd nand-disk [heartbeat] backlight gpio c
pu cpu0 cpu1 cpu2 cpu3 activity default-on panic
netdev mmc0 mmc1 mmc2 phy0rx phy0tx phy0assoc phy0radio
rfkill0 gpio-0:00:link gpio-0:00:1Gbps gpio-0:00:100Mbps
gpio-0:00:10Mbps gpio-0:01:link gpio-0:01:10Mbps
bone:~$ echo none > trigger
bone:~$ cat trigger
none usb-gadget usb-host rfkill-any rfkill-none
kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock
kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock
kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock
timer oneshot disk-activity disk-read disk-write i
de-disk mtd nand-disk [heartbeat] backlight gpio c
pu cpu0 cpu1 cpu2 cpu3 activity default-on panic
netdev mmc0 mmc1 mmc2 phy0rx phy0tx phy0assoc phy0radio
rfkill0 gpio-0:00:link gpio-0:00:1Gbps gpio-0:00:100Mbps
gpio-0:00:10Mbps gpio-0:01:link gpio-0:01:10Mbps
bone:~$ echo none > trigger
Notice ``[heartbeat]`` is in brackets. This shows it's the
current trigger. The echo changes the trigger to ``none``.
Notice ``[heartbeat]`` is in brackets. This shows it's the
current trigger. The echo changes the trigger to ``none``.
Try experimenting with some of the other triggers and see if you
can figure them out.
Try experimenting with some of the other triggers and see if you
can figure them out.
Another way to Blink an LED
Another way to Blink an LED
---------------------------
An interesting thing about Linux is there are often many ways
to do the same thing. For example, I can think of at least five ways to blink
an LED. Here's another way using the ``gpiod`` system.
An interesting thing about Linux is there are often many ways
to do the same thing. For example, I can think of at least five ways to blink
an LED. Here's another way using the ``gpiod`` system.
.. code-block:: shell-session
.. code-block:: shell-session
bone:~$ gpioinfo | grep -e chip -ie usr
gpiochip0 - 32 lines:
gpiochip1 - 32 lines:
line 21: "[usr0 led]" "beaglebone:green:usr0" output active-high [used]
line 22: "[usr1 led]" "beaglebone:green:usr1" output active-high [used]
line 23: "[usr2 led]" "beaglebone:green:usr2" output active-high [used]
line 24: "[usr3 led]" "beaglebone:green:usr3" output active-high [used]
gpiochip2 - 32 lines:
gpiochip3 - 32 lines:
Here we asked how the LEDs are attached to the General Purpose
IO (gpio) system. The answer is, (yours will be different for a
different Beagle)
there are four interface chips and the LEDs are attached to
chip 1. You can control the gpios (and thus the LEDs) using
the ``gpioset`` command.
bone:~$ gpioinfo | grep -e chip -ie usr
gpiochip0 - 32 lines:
gpiochip1 - 32 lines:
line 21: "[usr0 led]" "beaglebone:green:usr0" output active-high [used]
line 22: "[usr1 led]" "beaglebone:green:usr1" output active-high [used]
line 23: "[usr2 led]" "beaglebone:green:usr2" output active-high [used]
line 24: "[usr3 led]" "beaglebone:green:usr3" output active-high [used]
gpiochip2 - 32 lines:
gpiochip3 - 32 lines:
.. code-block:: shell-session
Here we asked how the LEDs are attached to the General Purpose
IO (gpio) system. The answer is, (yours will be different for a
different Beagle)
there are four interface chips and the LEDs are attached to
chip 1. You can control the gpios (and thus the LEDs) using
the ``gpioset`` command.
bone:~$ gpioset --mode=time --sec=2 1 22=1
bone:~$ gpioset --mode=time --sec=2 1 22=0
.. code-block:: shell-session
The first command sets chip 1, line 22 (the usr1 led) to 1 (on) for
2 seconds. The second command turns it off for 2 seconds.
bone:~$ gpioset --mode=time --sec=2 1 22=1
bone:~$ gpioset --mode=time --sec=2 1 22=0
Try it for the other LEDs.
The first command sets chip 1, line 22 (the usr1 led) to 1 (on) for
2 seconds. The second command turns it off for 2 seconds.
.. note::
Try it for the other LEDs.
.. note::
This may not work on all Beagles since it depends on which
version of Debian you are running.
This may not work on all Beagles since it depends on which
version of Debian you are running.
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment