You already know how to run python script from command terminal as explained in the previous tutorial How to make first python program in BBB. When you execute python script from SSH command prompt, you need to make BBB connection with PC because you are accessing the BBB through SSH connection. If you wish to run python script on BBB without connecting it with PC, an external power is needed to be supplied.
You can run python script when you power up BBB without any command prompt or command. This job is done by Crontab.
Make Simple LED blinking program
Let’s run LED blinking program on boot up of Beaglebone black.
Required Tools:
- Beaglebone Black
- LED
- 330 Ω Resistor
- BreadboardFemale to Female connectors
Setup of Software environment
Install the latest python version in BBB as explained in tutorial How to make first python program with Beaglebone Black. Install the adafruit python-GPIO library named adafruit_BBIO.
Working
It is a simple learning tutorial of Beaglebone black. Here I connected two LEDs with GPIO pins of Beaglebone black. When script is running, both the LEDs are switched ON and OFF for one second. After this execution for five times, the pin status and configuration are clear.
Description
Let’s first prepare the circuit connection. Take a breadboard and provide VCC and ground from BBB to breadboard line. Connect Supply 3.3 V from pin number 3 of header P9 and ground from pin number 2 of header P8. Connect the negative terminal of both LEDs with ground and the positive one with 330 Ohm resistor. Connect another end of both resistors with pin number 8 and 9 of header P8. Provide the supply to Beaglebone black by connecting it with PC through USB cable. Now your circuit is prepared.
Fig. 1: Prototype of BeagleBone Black Boot
Fig. 2: Image showing Autorun of Python Script on BeagleBone Black Boot
Open the command terminal and access Beaglebone black through SSH as explained in getting started with Beaglebone black. Create a new file using touch command with .py (i.e. led.py) extension. Open the file with any text editor (i.e. nano, vim etc.) and write a code in python language.
Automatic Running Script on Boot
Crontab is a task management tool which is built-in into Debian. We can add the new Cron Job at which a Python script will run at boot.
Follow these steps to run python script on boot up of BBB:
Step1: Connect with internet and power up BBB. Access BBB with SSH through PC.
Step2: Install the crontab from debian repository by following command line:
sudo apt-get install crontab
Fig. 3: Screenshot of Linux Console Installing Crontab
Step3: Open the crontab and edit for run on boot. Enter the following instruction to open crontab editing file:
crontab –e
Fig. 4: Screenshot of Linux Console Editing Crontab
Step4: Scroll down and add the following line to run led.py on boot of BBB:
@reboot sudo python /root/python_program/led.py &
Fig. 5: Screenshot of Python Script Written in Nano Editor on Linux Console
Here, /root/python_program/led.py is pathname of file where led.py is located. Don’t forget to add & for run the process in background at the end of line. Save the file and exit from it.
Step5: If you want to see suddenly, reboot the system:
reboot
Wait for some time to reboot. After reboot, the led.py script automatically runs on boot and the LED starts blinking.
Step6: If you don’t want to reboot then remove the USB cable and attach it again. After booting, led.py will run automatically.
Project Source Code
###
# Led blinking Tutorial# developed By Ashish vara# Engineersgarageimport Adafruit_BBIO.GPIO as GPIOLED1 = "P8_8"LED2 = "P8_9"GPIO.setup(LED1,GPIO.OUT)GPIO.setup(LED2,GPIO.OUT)from time import sleepfor i in range(0,5):GPIO.output(LED1, GPIO.HIGH)GPIO.output(LED2, GPIO.HIGH)sleep(1)GPIO.output(LED1, GPIO.LOW)GPIO.output(LED2, GPIO.LOW)sleep(1)GPIO.cleanup()###
Project Video
Filed Under: BeagleBone, Electronic Projects
Filed Under: BeagleBone, Electronic Projects
Questions related to this article?
👉Ask and discuss on EDAboard.com and Electro-Tech-Online.com forums.
Tell Us What You Think!!
You must be logged in to post a comment.