marvin:ecp5
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
marvin:ecp5 [2009/01/28 16:25] – deva | marvin:ecp5 [2009/01/29 09:23] – deva | ||
---|---|---|---|
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 protocol===== | =====The protocol===== | ||
+ | {{ : | ||
+ | |||
From wikipedia: //" | From wikipedia: //" | ||
- | Lejos has built an entire framework for bluetooth communication, | + | LeJOS has built an entire framework for bluetooth communication, |
(([[http:// | (([[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:// | 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 ' | + | 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/ |
- | =====The Client===== | + | LeJOS has put a lot of effort into making the bluetooth communication easy to use, and the implementation were therefore quite straight forward. Observe the resulting code below. |
- | FIXME: Insert | + | We experienced a lot of slowdown in the balancing thread whenever the bluetooth communication was running, |
+ | 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> | ||
+ | |||
+ | 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, | ||
=====The BTControl class===== | =====The BTControl class===== | ||
Line 87: | Line 94: | ||
</ | </ | ||
- | And on the PC a window (JFrame) captures keyboard input and redirects their keycode values to the bluetooth stream: | + | On the PC, a window (JFrame) captures keyboard input and redirects their keycode values to the bluetooth stream: |
<code java> | <code java> | ||
NXTComm nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH); | NXTComm nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH); |
marvin/ecp5.txt · Last modified: 2009/01/29 10:58 by rieper