Page 117 - The Definitive Guide to Building Java Robots
P. 117

Preston_5564C03.fm  Page 98  Wednesday, October 5, 2005  7:21 AM



                 98     CHAPTER 3  ■  MOTION



                                // add to collection for easier checks
                                servos.add(s1);
                                servos.add(s2);
                                servos.add(e);
                                servos.add(w);
                                servos.add(g1);
                                servos.add(g2);
                            }

                            public void rest() throws Exception {
                                for (int i = 0; i < servos.size(); i++) {
                                    ServoPosition2 tmpPos = (ServoPosition2) servos.get(i);
                                    lm32.sscCmd(tmpPos.pin, tmpPos.neutral);
                                }
                                lm32.move(1000);
                            }

                            // move to position A (experimentally determined)
                            public void posA() throws Exception {
                                lm32.sscCmd(s1.pin, 50);
                                lm32.sscCmd(s2.pin, 135);
                                lm32.sscCmd(e.pin, 75);
                                lm32.sscCmd(w.pin, 200);
                                lm32.sscCmd(g1.pin, 150);
                                lm32.sscCmd(g2.pin, 255);
                                lm32.move(1000); // move in 1 second
                            }


                            // move to position B (experimentally determined)
                            public void posB() throws Exception {

                                lm32.sscCmd(s1.pin, 220);
                                lm32.sscCmd(s2.pin, 135);
                                lm32.sscCmd(e.pin, 100);
                                lm32.sscCmd(w.pin, 190);
                                lm32.sscCmd(g1.pin, 130);
                                lm32.sscCmd(g2.pin, 255);
                                lm32.move(1000); // move in 1 second

                            }

                            private void move(int pin, int pos) throws Exception {
                                // check range first
                                checkRange(pin, pos);
                                // then move
                                lm32.move(pin, pos);
                            }
   112   113   114   115   116   117   118   119   120   121   122