Archive for Individual Work

Bluetooth problems

Today I started the day off by trying to once again establish a Bluetooth connection between my computer and the NXT brick. Sadly, this did not take place. No matter what action I preformed, I just could not get the NXT device to connect with my computer. Ironically, both the NXT brick and my computer would inform me that the device was in range, but neither of the devices would allow a wireless connection to be formed. I decided to wait for my meeting on Thursday with Professor Cumaranatunge to see if we could fix the problem together.

Comments (1)

Introduction to Bluetooth

Having learned the NXT programming environment, the next step in the project was to become familiar with Bluetooth. My endeavor in to the realm of the Bluetooth world started very promising, as I was able to connect my computer to the NXT brick despite receiving a warning message that my Bluetooth radio was incompatible with the NXT. With the Bluetooth working, I decided to send a copy of the grabber program to the device. This worked flawlessly.

Since I ultimately was looking to use Bluetooth as a method to remotely control the robot, I began exploring this possibility. I started by looking in the user manual that came with the NXT software. As my query, I typed in “Bluetooth”. I soon discovered that Bluetooth can be used in one of two ways: to send a program wirelessly from your computer to the NXT brick or to send messages between other NXT bricks. Because of the limited information about Bluetooth, I decided to move my search to the internet.

In doing so, I started by looking at the Lego Mindstorms website, http://mindstorms.lego.com/. I quickly came to the conclusion that the information provided on this site was extremely limited. As such, I moved my query to the web. When searching on the web, I came across a few blogs that briefly mentioned Bluetooth. I also found some experiments that were centered on the use of Bluetooth as a means of controlling an NXT robot wirelessly. However, most of the information I found dealt with the fact the people were having trouble getting their computer and the robot to connect using Bluetooth. After enduring much frustration, I decided to turn off the robot and my computer and come back to it the next day.

Comments

Grabber Program

After charging the batteries, I decided to test my latest and greatest program. However, when I set the car on the floor, I realized I did not know how far away I had to put the grabber from the ball. This was because I no longer used the push of the touch sensor to open the grippers. Instead I had designed the robot to travel a set distance, three revolutions of the wheel, and then open the grippers. To figure out the distance I needed between the robot and the ball, I programmed the motors on the robot to make one revolution. I then measured the starting and ending point of the robot to determine the distance it traveled. Then, using the diagram supplied with the NXT kit, I measured the distance between the stand and the robot as shown in the diagram below.

As it turns out, the distance is two revolutions. Going back to the program I created, I changed the amount of revolutions for each motor to two. After making those changes I again tested the program. To my excitement, the grabber was able to grab the ball while only slightly moving the stand. Since the stand essentially stayed in place, the robot was able to drop the ball back on the stand on its return trip.

Considering where I started from, getting the “grabber program” to work was very rewarding. The time and effort put into it had lead to success. Overall, not only had I made a working program, but I had also learned how to use the NXT programming environment, the goal of this task.

 

Comments

My first programs

Today, I downloaded the NXT software and the updates to the software to my computer. Then, I briefly watched the provided tutorials to gain a general sense of how to use the NXT programming software. Once I became familiar with the programming package, the next challenge was to develop a working program. This proved challenging, yet rewarding.

Since the ball retrieval device was already built, I decided to create a program for it. My thought was to make a program in which the ball retrieval device autonomously performed the following actions: open the device’s grippers, move forward until reaching a ball on a stand, grab the ball, close the grippers, move back, move forward, place the ball back on its stand, move back, and close the grippers. All in all, I wound up making three different programs. On the third try, I finally had a working program; however, it was far from perfect. As such, I began fine tuning the properties of the sensors.

The first problem I had to address was that the motors where moving too fast. To combat this problem, I lowered the speed of each motor from 75% to 50%. The next problem I faced was a result of a design flaw in the car itself. The part of the car used to grip the ball was very flimsy and, therefore, the ball would not always remain in the grippers. As such, I added some support to make the gripping device more rigid. The next challenge I faced dealt with the stand holding the ball. To my dismay, every time the car would bump into the stand, thereby activating the touch sensor on the car, it would cause the stand to change position. To try and combat this nuisance, I tried to tape the stand to the floor. However, this did not work that well. The next thing I tried to do was to put weights on either side of stand. Again this was a failure. To fix my problem I decided to change how the car operated. Instead of using the touch sensor to activate the grippers, I had the grippers close after it went three revolutions. This seemed like it would work much better. Unfortunately, just when I thought I had designed the ultimate program, the batteries died on me.

Comments

Introduction to Mindstorms

On this day, I read over the Lego Mindstorm manual.  I learned how to control the sensors of the robot from the NXT brick.  After experimenting with the different sensors, I created two different cars.  The first one I designed had a touch sensor in the back, an ultrasonic sensor in the front, and two servo motors attached to the body for steering the car.  I was quite surprised at how well the ultrasonic sensor worked.  Although my car was unique and budding with potential, I realized it did not seem practical for the task at hand.  It seemed the car that I had just created would be better served to autonomously travel around a room, avoiding obstacles obstructing its path.  Next, I created a second car using the directions provided in the book.  Essentially, I created a ball retrieval device.  This project was quite interesting as no directions were given to build the base of the car.  After much perseverance and looking at many different pictures of the car from a variety of angles, I was able to recreate the “base car” shown in the book.

Comments