Micro:bit a serva 6

Řídíme servo odrazovým senzorem.

Tohle si asi budeme muset  vysvětlit podrobněji.

Senzor TCRT5000 (a podobné) pracuje na principu odrazu infračerveného světla, vysílaného LED, od překážky a jeho příjmem pomocí fototranzistoru.

Fototranzistor v TCRT5000 je celkem běžný tranzistor, ale jeho vodivost řídí místo proudu, tekoucího do báze, intenzita světla, dopadajícího na jeho polovodičový přechod. Proto je také umístěn v průsvitném pouzdře, připomínajícím LED.

Jak je vidět na schématu, fototranzistor je zapojen jako emitorový sledovač s emitorovým rezistorem o hodnotě 1 megaohm, jeho citlivost na dopadající světlo je tedy značná. Fototranzistor vytváří spolu s emitorovým rezistorem napěťový dělič, v jehož uzlu měří micro:bit napětí pomocí ADC převodníku na pinu 0.

Jakmile se před senzorem objeví odrazná plocha, tedy překážka, infračervený paprsek se odrazí zpět k senzoru, dosud uzavřený fototranzistor se pootevře, napětí na děliči se změní, program tuto změnu vyhodnotí a servo se začne natáčet do polohy, která přibližně odpovídá vzdálenosti odrazné plochy od senzoru.

Tento způsob vyhodnocení vzdálenosti samozřejmě není dokonalý, protože intenzita odrazu závisí nejen na vzdálenosti odrazné plochy, členitosti a odraznosti jejího povrchu, ale i na úhlu, pod kterým na ni paprsek infračerveného světla dopadá.

Přesto ale takový senzor může dobře posloužit při konstrukci různých hříček nebo robotů.

Schéma zapojení:

Místo TCRT5000 poslouží stejně dobře třeba senzor QRD1114 nebo CNY70, ale oba zmíněné pravděpodobně nebudou mít tak velký dosah jako originál.

Praktické zapojení:

Program v JavaScript Block editoru:

Program v JavaScriptu:

let uhel = 0
let reflex = 0
basic.forever(() => {
    reflex = pins.analogReadPin(AnalogPin.P0)
    uhel = pins.map(
    reflex,
    -1023,
    1023,
    0,
    180
    )
    pins.servoWritePin(AnalogPin.P1, uhel)
})

Konec.