WeAllCode / tinybit-python

1 stars 0 forks source link

Allow the user to read values from the front proximity sensor #6

Open karbassi opened 1 year ago

blainerothrock commented 9 months ago

here are the two methods which tells us how to read the proximity sensors from the robot (from the TinyBit MakeCode extension repository)

    //% blockId=Tinybit_Ultrasonic_Car block="ultrasonic return distance(cm)"
    //% color="#006400"
    //% weight=87
    //% blockGap=10
    //% name.fieldEditor="gridpicker" name.fieldOptions.columns=4
    export function Ultrasonic_Car(): number {

        let list:Array<number> = [0, 0, 0, 0, 0];
                for (let i = 0; i < 5; i++)
                {
                    pins.setPull(DigitalPin.P16, PinPullMode.PullNone);
                    pins.digitalWritePin(DigitalPin.P16, 0);
                    control.waitMicros(2);
                    pins.digitalWritePin(DigitalPin.P16, 1);
                    control.waitMicros(15);
                    pins.digitalWritePin(DigitalPin.P16, 0);
                    let d = pins.pulseIn(DigitalPin.P15, PulseValue.High, 43200);
                    list[i] = Math.floor(d / 40);
                }
                list.sort();
                let length = (list[1] + list[2] + list[3])/3;
                return  Math.floor(length);
    }

    //% blockId=Tinybit_Ultrasonic_CarV2 block="ultrasonic for V2 return distance(cm)"
    //% color="#006400"
    //% weight=87
    //% blockGap=10
    //% name.fieldEditor="gridpicker" name.fieldOptions.columns=4
    export function Ultrasonic_CarV2(): number {
        pins.setPull(DigitalPin.P16, PinPullMode.PullNone);
        pins.digitalWritePin(DigitalPin.P16, 0);
        control.waitMicros(4);
        pins.digitalWritePin(DigitalPin.P16, 1);
        control.waitMicros(10);
        pins.digitalWritePin(DigitalPin.P16, 0);

        let d = pins.pulseIn(DigitalPin.P15, PulseValue.High, 500 * 58);
        return  Math.floor(d / 58);

    }

I will need to test which methods works best. I am not sure if V2 refers to a version two of the method, or the hardware.

analog comm.