@Override
    public void setup() {
        if(Gpio.wiringPiSetup() == -1) {
            System.out.println("> GPIO SETUP FAILED");
        }
               
        
        // set GPIO # as the OUTPUT trigger
//        GpioUtil.export(/* GPIO PIN */, GpioUtil.DIRECTION_OUT);
        GpioUtil.getEdgeDetection(ECHO);
        Gpio.pinMode(ECHO, Gpio.OUTPUT);
        Gpio.pullUpDnControl(ECHO, Gpio.LOW);
        
        // set GPIO # as the INPUT trigger 
//        GpioUtil.export(/* GPIO PIN */, GpioUtil.DIRECTION_IN);
        GpioUtil.getEdgeDetection(TRIG);
        Gpio.pinMode(TRIG, Gpio.INPUT);
        Gpio.pullUpDnControl(TRIG, Gpio.LOW);
              
        
        
        // sleep for 2 seconds
        try {
            Thread.sleep((2 * 1000));
        } catch (InterruptedException ex) {
            Logger.getLogger(Movement1.class.getName()).log(Level.SEVERE, null, ex);
        }
        
//        for(;;) {
            Gpio.digitalRead(16);
//        }
            
        
            
    //        // output (send signal to object)
    //        GpioPinDigitalOutput trigPin = 
    //                ultraSonicTransceiverCtrl.provisionDigitalOutputPin(RaspiPin.GPIO_16);
    //        
    //        // input (receieves echo from ultra sonic wave to indicate the proximity between 
    //        // the object and the ultra-sonic transceiver itself
    //                ultraSonicTransceiverCtrl.provisionDigitalInputPin(RaspiPin.GPIO_16);
    //                ultraSonicTransceiverCtrl.provisionDigitalInputPin(RaspiPin.GPIO_16);  
    }