@RequestMapping("/back.html")
  public String back() throws InterruptedException {

    leftBackMotor.high();
    rightBackMotor.high();

    return "Moving backwards...";
  }
  @RequestMapping("/forward.htmlc")
  public String forward() throws InterruptedException {

    leftFrontMotor.high();
    rightFrontMotor.high();

    return "Moving forward...";
  }
Example #3
0
  private void sendActivePulse() {
    try {
      trigPin.low();
      Thread.sleep(300);

      trigPin.high();
      Thread.sleep(10);

      trigPin.low();

    } catch (InterruptedException e) {
      System.out.println("Interrupted exception");
    }
  }
Example #4
0
 @Override
 public void high(GpioPinDigitalOutput... pin) {
   if (pin == null || pin.length == 0) {
     throw new IllegalArgumentException("Missing pin argument.");
   }
   // ensure the requested pin has been provisioned
   for (GpioPinDigitalOutput p : pin) {
     if (!pins.contains(pin)) {
       throw new GpioPinNotProvisionedException(p.getPin());
     }
     // set pin state high
     p.high();
   }
 }
Example #5
0
  public static void main(String[] args) throws InterruptedException {

    // START SNIPPET: usage-create-controller-snippet
    // create gpio controller instance
    final GpioController gpio = GpioFactory.getInstance();
    // END SNIPPET: usage-create-controller-snippet

    // START SNIPPET: usage-provision-input-pin-snippet
    // provision gpio pin #02 as an input pin with its internal pull down resistor enabled
    // (configure pin edge to both rising and falling to get notified for HIGH and LOW state
    // changes)
    GpioPinDigitalInput myButton =
        gpio.provisionDigitalInputPin(
            RaspiPin.GPIO_02, // PIN NUMBER
            "MyButton", // PIN FRIENDLY NAME (optional)
            PinPullResistance.PULL_DOWN); // PIN RESISTANCE (optional)

    // END SNIPPET: usage-provision-input-pin-snippet
    // START SNIPPET: usage-provision-output-pin-snippet
    // provision gpio pins #04 as an output pin and make sure is is set to LOW at startup
    GpioPinDigitalOutput myLed =
        gpio.provisionDigitalOutputPin(
            RaspiPin.GPIO_04, // PIN NUMBER
            "My LED", // PIN FRIENDLY NAME (optional)
            PinState.LOW); // PIN STARTUP STATE (optional)
    // END SNIPPET: usage-provision-output-pin-snippet

    // START SNIPPET: usage-shutdown-pin-snippet
    // configure the pin shutdown behavior; these settings will be
    // automatically applied to the pin when the application is terminated
    // ensure that the LED is turned OFF when the application is shutdown
    myLed.setShutdownOptions(true, PinState.LOW, PinPullResistance.OFF);
    // END SNIPPET: usage-shutdown-pin-snippet

    // START SNIPPET: usage-control-pin-snippet
    // explicitly set a state on the pin object
    myLed.setState(PinState.HIGH);

    // use convenience wrapper method to set state on the pin object
    myLed.low();
    myLed.high();

    // use toggle method to apply inverse state on the pin object
    myLed.toggle();

    // use pulse method to set the pin to the HIGH state for
    // an explicit length of time in milliseconds
    myLed.pulse(1000);
    // END SNIPPET: usage-control-pin-snippet

    // START SNIPPET: usage-read-pin-snippet
    // get explicit state enumeration for the GPIO pin associated with the button
    PinState myButtonState = myButton.getState();

    // use convenience wrapper method to interrogate the button state
    boolean buttonPressed = myButton.isHigh();
    // END SNIPPET: usage-read-pin-snippet

    // START SNIPPET: usage-register-listener-snippet
    // create and register gpio pin listener
    myButton.addListener(new GpioUsageExampleListener());
    // END SNIPPET: usage-register-listener-snippet

    // START SNIPPET: usage-trigger-snippet
    // create a gpio synchronization trigger on the input pin
    // when the input state changes, also set LED controlling gpio pin to same state
    myButton.addTrigger(new GpioSyncStateTrigger(myLed));
    // END SNIPPET: usage-trigger-snippet

    // keep program running until user aborts (CTRL-C)
    while (true) {
      Thread.sleep(500);
    }

    // stop all GPIO activity/threads by shutting down the GPIO controller
    // (this method will forcefully shutdown all GPIO monitoring threads and scheduled tasks)
    // gpio.shutdown();   <--- implement this method call if you wish to terminate the Pi4J GPIO
    // controller
  }
Example #6
0
  /** Process the message */
  @Override
  public void process(Exchange exchange) throws Exception {
    if (log.isTraceEnabled()) {
      log.trace(exchange.toString());
    }

    GPIOAction messageAction =
        exchange.getIn().getHeader(Pi4jConstants.CAMEL_RBPI_PIN_ACTION, action, GPIOAction.class);

    if (messageAction == null) {
      log.trace("No action pick up body");
      this.output(exchange, exchange.getIn().getBody());
    } else {
      log.trace("action= {} ", action);
      switch (messageAction) {
        case TOGGLE:
          if (pin.getMode() == PinMode.DIGITAL_OUTPUT) {
            ((GpioPinDigitalOutput) pin).toggle();
          }
          break;

        case LOW:
          if (pin.getMode() == PinMode.DIGITAL_OUTPUT) {
            ((GpioPinDigitalOutput) pin).low();
          }
          break;

        case HIGH:
          if (pin.getMode() == PinMode.DIGITAL_OUTPUT) {
            ((GpioPinDigitalOutput) pin).high();
          }
          break;

        case BLINK:
          if (pin.getMode() == PinMode.DIGITAL_OUTPUT) {

            pool.submit(
                new Runnable() {

                  @Override
                  public void run() {
                    try {
                      Thread.sleep(getEndpoint().getDelay());
                      ((GpioPinDigitalOutput) pin).toggle();
                      Thread.sleep(getEndpoint().getDuration());
                      ((GpioPinDigitalOutput) pin).toggle();
                    } catch (InterruptedException e) {
                      log.error("Thread interruption into BLINK sequence", e);
                    }
                  }
                });
          }

          break;

        default:
          log.error("Any action set found");
          break;
      }
    }
  }
Example #7
0
 private void turnLightOn() {
   lightPin.high();
   System.out.println(String.format("Light was turned on"));
 }