Skip navigation

BeagleBoard

3 Posts authored by: callum.ds element14 Team

IOT setup using a bluetooth sensor streaming data to the Beaglebone which submits it to the IBM cloud

 

Note: This blog post is being superceded with updates here: BeagleBone Black IoT Project Bundle

 

This is forked from a project HERE, but changed slightly to work with the TI Sensor Tag CC2650.

 

It is a very easy project with only a few minor edits needed. This can be done in about 20 minutes from start to finish, and looks great at the end.

 

 

What You'll Need

 

Beagle Bone Black

24222282422228
TI Sensor CC265024701812470181

 

 

Installing Script

 

First we need to grab the code:

cd ~

git clone http://github.com/ibm-messaging/iot-beaglebone
         

 

Then we need to get to the code's directory

cd iot-beaglebone/samples/nodejs
         

 

Then we need to install the dependencies. Luckily this very easy thanks to the automated script provided

sudo ./setup.sh
         

 

Editing the script

 

We only need to edit one file to get this to work. The credit for this edit goes to AshokRao.

 

You need to download the file attached to this blog, See at the bottom.

This file needs to replace the file iot_beaglebone/samples/nodejs/node_modules/sensortag/lib/cc2650.js. Copy the file at the bottom and replace the existing file with this new one

 

The only differences are on lines 186-188 where we have used a different version of the API from Node.js framework that does not evaluate the offset & continues to read the data from the buffer. The default is “false”. For documentation on this and other API’s, please refer: https://nodejs.org/api/buffer.html#buffer_buf_readint16le_offset_noassert .

 

 

Running it

 

Everything is now done!

Just run the main script using the command

cd ~/iot_beaglebone/samples/nodejs
node iot_sensortag.js
  

 

Now follow the link below and type in your BBB's mac address (shown when you start the .js script) to view the data.

IBM CLOUD

 

Hope it now works for all of you. Please leave your comments, suggestions, and problems below.

Fixing the problems with the BBView and the latest Beaglebone Debian image.

 

So since the new Debian update for the Beaglebone some problems have surfaced with using the BBView. Here I hope to help people fix those errors and get full use of their BBView.

 

Not many steps, and it is very easy to do.

 

     1.    Firstly we need to download the newest Debian Image from Here http://beagleboard.org/latest-images

          Make sure you download the latest SD image (to boot from SD) or the flasher image (to reflash the EMMC with the new image)

 


     2.    Flash the image onto the SD card using your preferred means, dd command in linux /  win32DiskImager in windows are my preferred means.

 

 

     3.     Connect a an HDMI screen and keyboard, or or a TTL serial cable to the Beaglebone. If using the TTL cable you will also need a computer running a serial terminal program                (eg putty for windows)

 

 

     4.    Boot the Beaglebone Black from the new microSD card.

              Insert the microSD card.

               This will either boot the board from the microSD, or flash the new image onto the EMMC if you are using the flasher (This could take a while if using the flasher image)

 

 

     5.    When the board is booted, login using the username:root and password:debian

 

 

     6.     You will need some files to change the display output these files can be downloaded from HERE for Debian. Or from here.

               Just extract the downloaded zip file onto a USB stick and plug this into your Beaglebone Black

 

 

     7.    Now we need to change a few of the files to get the BBView to work

              In the terminal type....

root@beaglebone:~# mkdir /media/udisk
root@beaglebone:~# mount /dev/sda1 /media/udisk
root@beaglebone:~# cp -f /media/udisk/zImage /boot/vmlinuz-3.8.13-bone70 
root@beaglebone:~# cp -f /media/udisk/*.dtb  /boot/dtbs/3.8.13-bone70 
root@beaglebone:~# tar -xvf /media/udisk/kernel_modules.tar.gz -C /
root@beaglebone:~# cp -f /media/udisk/xorg.conf /etc/X11/
root@beaglebone:~# sync










 

 

              FOR 4 INCH DISPLAYS TYPE THIS

root@beaglebone:~# cd /boot/dtbs/3.8.13-bone70
root@beaglebone:~# cp am335x-boneblack-lcd4.dtb am335x-boneblack.dtb
root@beaglebone:~# sync





 

 

              FOR 7 INCH DISPLAYS TYPE THIS

root@beaglebone:~# cd /boot/dtbs/3.8.13-bone70
root@beaglebone:~# cp am335x-boneblack-lcd7.dtb am335x-boneblack.dtb
root@beaglebone:~# sync





 

 

     7.     Now shutdown your board. Connect your BBView and power it back up again.

 

Your BBView should now work as a screen for your Beaglebone Black. Have fun.

callum.ds

Make your own BeagleBot

Posted by callum.ds element14 Team May 15, 2015

The BeagleBot

 

How to make your own Beaglebone black bot that you can control over WiFi.

 

So I've just done a project with the Beaglebone Black and I've managed to make a little robot car that can be controlled via WiFi from any browser on the same network.

Sounds cool, and it kind of is, but there's a lot that can be improved and changed. If any of you guys do improve it or add anything to it then please please please let me know even if it doesn't quite work, then maybe we can help you get it to work.

 

But first we need to build Bob (Yes, I named it)

BBB Bots almost finished.jpg

 

The Steps:

 

 

 

 


1. Get stuff (easy):

    Stuff we need (there's quite a bit)

Where to buyFarnell Order Codequantityproduct
cpc.farnell.comHK012091ROBOT KIT CHASSIS
uk.farnell.com242222824222281BBONE-BLACK-4G
uk.farnell.com243798124379811WIFI DONGLE
uk.farnell.com165068516506852BATTERY HOLDER, LEADED, 4 X AA
uk.farnell.com234525723452571Alkaline AA Batteries (any will do, get rechargeable if you prefer)
uk.farnell.com207536620753662Continuous rotation servos
uk.farnell.com126775112677511

PCB, RAW, 100X160

uk.farnell.com156468215646821Step-Down Voltage Regulator
uk.farnell.com247467524746751Prototyping Board
uk.farnell.com945108094510801100 µf radial capacitor
uk.farnell.com9451129945112911000 µf radial capacitor
uk.farnell.com956505195650511Diode
uk.farnell.com120954612095461100µH inductor

 

You will also need.....

  • Soldering station (Soldering iron, heat mat, solder, and whatever PPE you need)
  • A bit of wire (some capable of taking up to 5V at 3A, and some thinner gauge just for controlling servos etc)
  • A few male to male and male to female jumper wires may also come in handy
  • pliers thin nosed
  • screwdriver (flat or philips)
  • super glue (be careful) or double sided tape
  • a bit of foam (or another way to hold the BBB and batteries in place and allow them to be removed)
  • duct tape or another way to attach the Beaglebone flap to the chassis
  • A sharp craft/Stanley knife (Be VERY careful when using this, get someone to help if you're not confident. And mind your fingers)

 

 

2. Build the chassis (very easy)

 

Get all the chassis stuff out, we're just using the main base platform, ball bearing at the back, and the wheels.

 

Use the bolts provided to screw the ball bearing wheel to the back of the chassis making sure the bolts go down so that they stick out the bottom and not stick out the top, or else we won't be able to fit our batteries in correctly.

 

Super glue/stick/attach the servos to the bottom of the chassis like the picture below


Then route the wires to the top. You may need to enlarge the hole to get the connectors through.....

 

Next we need to cut the flap for the Beaglebone Black to rest on. Measure out however big you want it (making sure the Beaglebone fits onto it with spare room for the foam) then score the PCB board down the line you want it to break, be very careful and use a cutting rule if possible. Keep scoring from both sides until almost through the board then carefully snap the board. If you don't have a cutting rule or you are not too confident with a craft/Stanley knife then use a hacksaw or similar.

 

Carefully stick the flap to the front of the chassis to create a hinge. that allows the flap to lift up and down so we can access the batteries later.

   

Now we can cut out the foam to fit the Beaglebone Black and the Batteries. Measure and outline the Beaglebone onto the foam then cut out the shape to make a Beaglebone sized hole in the foam then cut around the hole so all you're left with is an outline of foam which we can stick onto the flap.

Now repeat for the batteries.

 

Now we can stick/glue the foam onto the flap and chassis. Make sure the Beaglebone foam holder goes on the top of the flap and the battery holder goes right at the back of the chassis.


 

 

3. Soldering the Prototyping Board for the power connections (You WILL need some basic electronics knowledge and some previous soldering experience for this bit)

This bit is probably the hardest bit of the project because it's very fiddly and requires you to have at least a basic understanding of electronics.

 

Firstly get your protoboard and score it then snap it in half, then score and snap in half again the other way to get a quarter (scoring down the holes makes it easier to snap). This quarter is the bit we're going to use.

 

Now by carefully following the circuit diagram below solder all the components in place.

Circuit Diagram for the BeagleBot power board

The batteries need soldering in series.

On the DC jack the inner pin is positive and the outer metal shell is ground. Check you have the correct wires the correct way round before soldering or else you will blow your Beaglebone!

Also make sure the capacitor and diode polarisation is correct.

ONCE SOLDERED INSERT THE BATTERIES AND CHECK THE VOLTAGE WITH A MULTIMETER. The voltage MUST NOT be above 5V.

After checking the voltage insert the DC jack into the Beaglebone and wait for it to boot. Once successfully boot shut it down. Congratulations you now have a working battery powered Beaglebone.

 

 

4. Installing the packages on the Beaglebone (easy)

This bit is easy peasy.

Plug in and boot the Beaglebone.

Make sure you have internet connection either through Ethernet or WiFi.

Now install everything we need.

In the command terminal type the following lines.

sudo apt-get update
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus -y --force-yes --fix-missing
sudo pip install Adafruit_BBIO
sudo apt-get install apache2 php5 libapache2-mod-php5 -y --force-install --fix-missing
systemctl disable cloud9.service
systemctl disable gateone.service
systemctl disable bonescript.service
systemctl disable bonescript.socket
systemctl disable bonescript-autorun.service
systemctl disableavahi-daemon.service
systemctl disable gdm.service
systemctl disable mpd.service


























 

 

5. Get the webserver running (fairly easy)

Now we need to get the webserver running.

First extract the .zip folder with the files in it onto a memory stick.

Insert the memory stick into the Beaglebone and reboot it.

In the terminal copy the files onto the board

sudo cp -R /media/<path_to_memory_stick>/www/* /var/www/
sudo chmod -R www-data:www-data /var/www


























Now let's check that Apache is running on the correct port (port 80)

Use whichever editor you prefer, but here I'm using nano to make it simpler for beginner users

sudo nano /etc/apache2/ports.conf


























Find the line related to listening ports, and make sure it is referring to port 80, change it if needed.

then press ctrl+x then y then enter to save the file.

then type

sudo service apache2 restart


























to restart apache with the new settings

 

now we need to get the Beaglebone to connect to the wifi network.

 

 

6. Get the python script running (easy)

For this all we need to do is make sure the script is executable and make sure python can run it fine

in the terminal type

sudo chmod a+x /var/www/*.py
python2.7 /var/www/move_php.py


























You should hopefully see the words

"Move_php script running..."

on your screen if it is worki

press Ctrl+C to stop python

 

 

7. Auto run the scripts we need running (easy)

For this we are going to use crontab, it is a service that runs in the background and is used to automate the running of tasks, exactly what we need.

In the terminal type

sudo crontab -e

























In the crontab window add to the bottom the following lines

@reboot sudo service apache2 start
@reboot sudo python2.7 /var/www/move_php.py &


























Notice the & sign at the end of the second line. This is very important, as it tells python to run in the background. If you do not include this then python will run in the foreground and prevent the boot sequence from continuing.

Now when we reboot apache2 should auto start and the python script should also run in the background. You can check this by rebooting your Beaglebone then in the terminal typing

ps -e | grep python

























this should return a process I.D. for the python script running in the background

 


8. Assembling Bob (very easy, but can be fiddly)

This bit is very easy but can be a bit annoying to get perfect.

Place the Beaglebone in the foam holder on the flap, and the batteries in the foam holder at the back of the main chassis.

Route all the wires in a neat fashion to where the Beaglebone is on top of the flap.

Follow the picture in the zip file named BeagleBot_connections.png to connect everything (except the power) up to the correct pins, you may need to use jumper wires. If you don't have any jumper wires then you can simply cut the wires the connectors off of the wires you can't connect, strip them twist them and tin them, then you can insert them into the header on the BeagleBone.

Once everything is plugged in, tuck away/neaten up any wires hanging around the place until it looks neat and tidy. It might be a good idea to use electrical tape to hold wires down and out the way. At all costs prevent short-circuits.

 


9. Power (very easy)

Once your BeagleBot is ready to go, plug in the power and wait for it to boot. If you have not set up a static I.P from your router then you will need to connect to the Beaglebone during boot either by ssh over the wifi or via a serial cable to get the I.P. address.

Once you have the I.P address and your board is fully powered and not tethered to anything via a wire you are ready to go!

 


10. GO!! (fun)

Open up a browser window on any PC/phone/tablet that is connected to the same network as the BeagleBot and enter http://<I.P. of your BeagleBot>/move.php into the address bar.

Once the page is loaded tap the buttons to send your BeagleBot on its way.