Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
mindstorms:plnxt:plnxtdev:start [2009/03/19 11:40] holownia |
mindstorms:plnxt:plnxtdev:start [2019/06/27 15:50] (current) |
==== M2 ==== | ==== M2 ==== |
20.03.2009: F2 | 20.03.2009: F2 |
| |
| ==== M3 ==== |
| 06.02.2010: F3 |
| |
===== Functionality ===== | ===== Functionality ===== |
* run and debug on freerunner | * run and debug on freerunner |
* control concepts -> S. Nowaczyk | * control concepts -> S. Nowaczyk |
| ==== F3 ==== |
| control //several// robots! |
| |
==== F ==== | ==== F ==== |
| client-server |
==== F ==== | |
control //several// robots! | |
| |
==== F ==== | ==== F ==== |
| |
| |
| |
| ===== Algorithm examples ===== |
| |
| ==== Square, avoiding obstacles ==== |
| |
| <code prolog> |
| % * Robot does a square line move. |
| % * It will stop and turn around, if senses an obstacle. After that it continues square move. |
| % * Stops after typing "stop." |
| |
| % Type: start. |
| |
| :- consult('../plnxt'). |
| |
| start :- |
| nxt_open, |
| thread_create(rectangle_start,_,[detached(true)]). |
| |
| rectangle_start :- |
| trigger_create_noreturn(_,check_distance,obstacle), |
| rectangle_loop. |
| |
| check_distance :- |
| nxt_ultrasonic(Value,force), |
| Value < 15. |
| |
| obstacle :- |
| nxt_stop, |
| nxt_rotate(350,180), |
| thread_create(rectangle_start,_,[detached(true)]). |
| |
| rectangle_loop :- |
| nxt_go_cm(350,40), |
| nxt_rotate(350,100), |
| rectangle_loop. |
| |
| stop :- |
| trigger_killall, |
| nxt_stop, |
| nxt_close. |
| </code> |
| |
| ==== Following the black line ==== |
| |
| <code prolog> |
| % * Robot follows the black line on the test pad clockwise. |
| % * Stops after typing "stop." |
| |
| % Type: start. |
| |
| :- consult('../plnxt'). |
| |
| start :- |
| nxt_open, |
| nxt_light_LED(activate), |
| thread_create(follow_line,_,[detached(true)]). |
| |
| follow_line :- |
| trigger_create(_,check_colour,adjust), |
| nxt_go(350). |
| |
| check_colour :- |
| nxt_light(Value,force), |
| Value > 50. |
| |
| am_i_on_track(Value) :- |
| Value < 50, |
| follow_line. |
| |
| am_i_on_track(_) :- |
| adjust. |
| |
| adjust :- |
| nxt_stop, |
| nxt_rotate(350,5), |
| nxt_light(Value), |
| am_i_on_track(Value). |
| |
| stop :- |
| trigger_killall, |
| nxt_stop, |
| nxt_close. |
| </code> |
| |
===== SPOOL ===== | ===== SPOOL ===== |
* communication overhead, time issues | * communication overhead, time issues |
* interrobot communication -> groupwork | * interrobot communication -> groupwork |
| * thread polling frequency, parameter? |
| * bricku UI (Buttons/screen) support -> future work |
| |
==== NXT USB Linux ==== | ==== NXT USB Linux ==== |
| |
FIXME move to the mindstorms hp | FIXME move to the mindstorms hp |
| |
| |