marvin:ecp5
                Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| marvin:ecp5 [2009/01/28 16:25] – deva | marvin:ecp5 [2009/01/29 10:58] (current) – rieper | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| ======Lab report 5 - Bluetooth controlled robot====== | ======Lab report 5 - Bluetooth controlled robot====== | ||
| - | **Date:** January 19nd and 20th 2009\\ | + | **Date:** January 19nd 2009\\ | 
| - | **Duration of activity:** 8-16 (both days)\\ | + | **Duration of activity:** 8-16\\ | 
| **Participants: | **Participants: | ||
| Line 14: | Line 14: | ||
| =====Plan===== | =====Plan===== | ||
| * Make a bluetooth client code Behaviour on the Marvin, that can receive numbers and act on them. | * Make a bluetooth client code Behaviour on the Marvin, that can receive numbers and act on them. | ||
| - |   * Make pc bluetooth  | + |   * Make PC bluetooth  | 
| - | =====The  | + | =====Theory==== | 
| - | From wikipedia: //" | + | ====The  | 
| - | Lejos has built an entire framework for bluetooth communication, | + | {{ :marvin:bluetoothlogo.png |The Bluetooth  | 
| - | (([[http:// | + | |
| - | We do not want to go further into the details of the protocol itself, but the way the device is shared can eventually end up in data loss(([[http:// | + | |
| - | =====The ' | + | From wikipedia: //" | 
| + | LeJOS has built an entire framework for bluetooth communication, | ||
| + | (([[http:// | ||
| + | We do not want to go further into the details of the protocol itself, but the way the device is shared can eventually end up in data loss(([[http:// | ||
| - | =====The Client===== | + | On the PC LeJOS has also made a bluetooth interface. This works exactly the same as the one on the NXT, and we therefore simply had to make a connection (listening on the NXT and connecting on the PC) and then creating input/ | 
| - | FIXME: Insert  | + | LeJOS has put a lot of effort into making  | 
| + | |||
| + | We experienced a lot of slowdown in the balancing thread whenever the bluetooth communication was running, and we had to disable it entirely at numerous occasions to avoid the robot falling over.\\ | ||
| + | We later discovered that the problem could be worked around by disabling some of the other behaviour threads to release more resources, and make Marvin rebalance itself while driving around  | ||
| + | |||
| + | Here is a movie of the resulting remote controlled robot, with all other behaviours disabled:\\ | ||
| [[http:// | [[http:// | ||
| {{youtube> | {{youtube> | ||
| - | =====The BTControl  | + | As it can be seen from the video, Marvin is not exactly reacting real-time to the control changes. This is due to the way the BTControl has been implemented, | 
| + | |||
| + | =====Implementation===== | ||
| + | ====The BTControl  | ||
| {{ : | {{ : | ||
| - | Bluetooth control  | + | Bluetooth control  | 
| - | It reacts only on the keycodes  | + | It reacts only on the keycodes  | 
| ^ Key   ^ KeyCode ^ Variable  | ^ Key   ^ KeyCode ^ Variable  | ||
| Line 63: | Line 72: | ||
|         case directionLeft: |         case directionLeft: | ||
| left(200); | left(200); | ||
| + | |||
| + | |||
| break; | break; | ||
| Line 87: | Line 98: | ||
| </ | </ | ||
| - | And on the PC a window (JFrame)  | + | ====The PCController Class==== | 
| + | On the PC, we use a window (JFrame)  | ||
| <code java> | <code java> | ||
| NXTComm nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH); | NXTComm nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH); | ||
marvin/ecp5.1233156357.txt.gz · Last modified:  by deva
                
                