@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..."; }
private void sendActivePulse() { try { trigPin.low(); Thread.sleep(300); trigPin.high(); Thread.sleep(10); trigPin.low(); } catch (InterruptedException e) { System.out.println("Interrupted exception"); } }
@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(); } }
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 }
/** 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; } } }
private void turnLightOn() { lightPin.high(); System.out.println(String.format("Light was turned on")); }