marvin:ecp0
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
marvin:ecp0 [2009/01/29 00:28] – rieper | marvin:ecp0 [2009/01/29 11:11] (current) – rieper | ||
---|---|---|---|
Line 8: | Line 8: | ||
Our original project goal description can be found in its entirety in lab11(([[http:// | Our original project goal description can be found in its entirety in lab11(([[http:// | ||
+ | |||
=====Structure of this Document===== | =====Structure of this Document===== | ||
- | This documents is divided into 7 parts. The introduction is the first part and is meant to give a general introduction the project, the LEGO Mindstorm NXT and the software structure as well as the naming conventions for easier reading. | + | This documents is divided into 7 parts. The introduction is the first part and is meant to give a general introduction the project, the LEGO Mindstorm NXT and the software structure as well as the naming conventions for easier reading.\\ |
+ | Each lab report should not be read as a chronological evolution of the project, as there will be subjects mentioned that has not been fully implemented in that particular lab session. The lab reports are used to define different subjects of investigation.\\ | ||
The following 5 lap reports describes the process and the results.\\ | The following 5 lap reports describes the process and the results.\\ | ||
* Lap report 1 describes how the robot was build and how the communication with the gyroscope is handled.\\ | * Lap report 1 describes how the robot was build and how the communication with the gyroscope is handled.\\ | ||
Line 18: | Line 20: | ||
* Lap report 5 describes how to make the robot remote controlled utilizing BlueTooth.\\ | * Lap report 5 describes how to make the robot remote controlled utilizing BlueTooth.\\ | ||
Finally there is a discussion/ | Finally there is a discussion/ | ||
+ | |||
=====Motivation===== | =====Motivation===== | ||
- | This problem of balancing an inverted pendulum is a nice delicate control problem and it has become the “Holy Grail” for many robot hobbyists around the world. The task of balancing a two wheeled robot may sound simple, but in reality many people have tried – and failed. In LAB4(([[http:// | + | This problem of balancing an inverted pendulum is a nice delicate control problem and it has become the “Holy Grail” for many robot hobbyists around the world. The task of balancing a two wheeled robot may sound simple, but in reality many people have tried – and failed. In LAB4(([[http:// |
Another great motivation factor has been all the great videos from [[http:// | Another great motivation factor has been all the great videos from [[http:// | ||
- | {{: | + | {{ : |
- | {{: | + | {{ : |
=====Literature Review===== | =====Literature Review===== | ||
Line 50: | Line 53: | ||
=====Hardware===== | =====Hardware===== | ||
This section introduces the hardware used in this project. The sensors/ | This section introduces the hardware used in this project. The sensors/ | ||
+ | |||
====NXT Module==== | ====NXT Module==== | ||
- | {{: | + | {{: |
- | The NXT(([[http:// | + | The NXT(([[http:// |
- | ===Motor | + | ===Motor |
The NXT has three output ports for attaching motors - Ports A, B and C. | The NXT has three output ports for attaching motors - Ports A, B and C. | ||
- | ===Sensor | + | ===Sensor |
The NXT has four input ports for attaching sensors - Ports 1, 2, 3 and 4. | The NXT has four input ports for attaching sensors - Ports 1, 2, 3 and 4. | ||
- | ===USB | + | ===USB |
Connect a USB cable to the USB port and download programs from the computer to the NXT (or upload data from the robot to the computer). It is also possible to use the wireless Bluetooth connection for uploading and downloading. | Connect a USB cable to the USB port and download programs from the computer to the NXT (or upload data from the robot to the computer). It is also possible to use the wireless Bluetooth connection for uploading and downloading. | ||
- | ===Technical | + | ===Technical |
* 32-bit ARM7 microcontroller | * 32-bit ARM7 microcontroller | ||
* 256 Kbytes FLASH, 64 Kbytes RAM | * 256 Kbytes FLASH, 64 Kbytes RAM | ||
Line 84: | Line 88: | ||
- | ====The | + | |
+ | ====The | ||
{{: | {{: | ||
Line 93: | Line 98: | ||
There are three Servo Motors included in the Mindstorm kit. Each motor has a built-in Rotation Sensor. This lets your control your robot’s movements precisely. The Rotation Sensor measures motor rotations in degrees or full rotations (accuracy of +/- one degree). One rotation is equal to 360 degrees, so if you set a motor to turn 180 degrees, its output shaft will make half a turn. The built-in Rotation Sensor in each motor also lets you set different speeds for your motors (by setting different power parameters in the software). The motors have sufficient power in order to make the robot balance. | There are three Servo Motors included in the Mindstorm kit. Each motor has a built-in Rotation Sensor. This lets your control your robot’s movements precisely. The Rotation Sensor measures motor rotations in degrees or full rotations (accuracy of +/- one degree). One rotation is equal to 360 degrees, so if you set a motor to turn 180 degrees, its output shaft will make half a turn. The built-in Rotation Sensor in each motor also lets you set different speeds for your motors (by setting different power parameters in the software). The motors have sufficient power in order to make the robot balance. | ||
+ | |||
=====Software===== | =====Software===== | ||
- | The code is purely written in the Java syntax through the LeJOS NXT framework.\\ | + | The code is purely written in the Java syntax through the LeJOS NXT framework(([[http:// |
We use CamelCase notation(([[http:// | We use CamelCase notation(([[http:// | ||
All classes are fully documented by the javadoc documentation conventions(([[http:// | All classes are fully documented by the javadoc documentation conventions(([[http:// | ||
- | ====Class | + | ====Class |
{{ : | {{ : | ||
The above figure illustrates all the important classes in the project as well as their relations to each other. | The above figure illustrates all the important classes in the project as well as their relations to each other. | ||
Line 108: | Line 114: | ||
Take note that printing out to the LCD is a very expensive task, and since the art of balancing is very sensitive, the print class cannot be used while actually running. | Take note that printing out to the LCD is a very expensive task, and since the art of balancing is very sensitive, the print class cannot be used while actually running. | ||
- | =====The | + | =====The |
The name //" | The name //" | ||
marvin/ecp0.1233185325.txt.gz · Last modified: 2009/01/29 00:28 by rieper