Skip to main content

Featured Post

Product Design of a 4 wheel differential drive robot

Program BBB using C (Blink onboard LED)

If you are familiar with linux, you may know that everything in linux is a file. You can talk to a hardware as if you are writing to a file.
There are 4 on board LEDs in BBB. You can play with that LED.

Go to /sys/class/leds/beaglebone:green:usr3/

cd /sys/class/leds/beaglebone:green:usr3/

If you write a '1' to the file corresponding to LED3, then it will light that LED. Writing '0' will switch off the LED.

echo 1 > brightness

It will switch on the LED forever. :-) If you want to switch off it again type

echo 0 > brightness

Let's do it in c.

First ssh into your BBB (refer here). Then create a directory to work with.

mkdir helloworld
cd helloworld


Open your favourite texteditor.

nano LEDBlink.c

Then type this program.


#include<stdio.h>

int main()
{
        FILE *LEDHandler=NULL;
        char *LEDPath="/sys/class/leds/beaglebone:green:usr3/brightness";
        if(LEDHandler=fopen(LEDPath,"r+")){
                fwrite("1", 1, 1,LEDHandler);
                fclose(LEDHandler);
        }
        sleep(3);
        if(LEDHandler=fopen(LEDPath,"r+")){
                fwrite("0", 1, 1,LEDHandler);
                fclose(LEDHandler);
        }

        return 0;
}

Save the program using Cntrl+O and close it using Cntrl+X.
Then compile the program using

gcc LEDBlink.c

Then run your first program.

./a.out

The program will switch on the LED for 3s and then switch off.

Comments

Popular posts from this blog

Plymouth theme for Ubuntu

Bored of having the same boot animation screen again and again? There are plenty of Plymouth themes available out there. This is a theme I created by slicing some cool gif files I found online. You can download the theme and find the installation steps on my github account. ( https://github.com/krishnan793/PlymouthTheme-Cat )  The theme is created for Ubuntu 16.04. But this can be installed on previous versions with slight modification. If you have a slow computer then you can watch the whole animation loops. (The VM I used to record the screen was fast though. :))

Product Design of a 4 wheel differential drive robot

I have been thinking of creating a small mobile robot from scratch. From scratch means, go through all the steps of a product development. Design the overall architecture, design the circuits, make 3D model of the parts, 3D print the parts and finally integrate with ROS. The methods I followed may not be the best practice. The only aim is to reach from idea to actual product (prototype). Features: 4 Wheel Differential Drive Camera WiFi IMU GPS(optional) Overview A 4 wheeled differential mobile robot with wheel encoders, camera, WiFi, IMU and GPS(optional). The first thing I did was to come up with an overall architecture. Raspberry pi 3 will be the heart of the robot. Pi Zero was considered in the beginning, but eventually had to  change because of the lack of support for ROS. Even though able to compile ROS from scratch, it became so hard to compile other packages needed for the project. Since I do not want to use pi to directly control motors, I had to design a

Getting started with GPIO (Testing GPIO with a multimeter)

There are 65 possible GPIO pins that you can control. Some of the GPIO pins are normally configured to different functions. Let's play with one of them. Go to the beaglebone website and figure out the header pin corresponding to gpio23. The gpio23 is mapped to the 13th header pin. In this tutorial we are testing the gpio23 output using a multimeter (Do not connect an LED directly to BBB IO pin). First go to following directory cd /sys/class/gpio / Then make gpio23 available echo 23 > export A new directory will be created. Open gpio directory. cd gpio23 The direction of IO will be normally set as in (input).  To make it as output, echo out > direction Then set the pin to high using echo 1 > value Measure the voltage at pin 13 of P8 header. If its 3.3 V then you are on the right track. Pin 1 and 2 will be ground. You can connect the negative terminal of multimeter to pin 1 or 2. To set output as zero, echo 0 > value After finished wit