Inhoudsopgave:

CircuitPython en TinyLiDAR: eenvoudig voorbeeld: 3 stappen
CircuitPython en TinyLiDAR: eenvoudig voorbeeld: 3 stappen

Video: CircuitPython en TinyLiDAR: eenvoudig voorbeeld: 3 stappen

Video: CircuitPython en TinyLiDAR: eenvoudig voorbeeld: 3 stappen
Video: Cytron Edu:bit with Adafruit CLUE and tinyLiDAR - servo-mounted scanning 2024, November
Anonim
CircuitPython en TinyLiDAR: eenvoudig voorbeeld
CircuitPython en TinyLiDAR: eenvoudig voorbeeld

De MicroElectronicDesign tinyLiDAR is een op ST VL53L0X gebaseerde time-of-flight (ToF) variërende module met een i2c-busverbinding. De Adafruit-microcontrollerborden kunnen eenvoudig op deze sensor worden aangesloten, omdat ze het i2c-protocol via hun datapinnen kunnen uitspreken.

De M0/M4-serie heeft het voordeel ten opzichte van andere boards omdat ze een subset van Python ondersteunen, waardoor programmeren toegankelijker wordt voor een breder publiek dan C op een Arduino. Dit is een eenvoudig voorbeeld waarbij CircuitPython op een Gemma M0-bord wordt gebruikt om de afstandswaarden van een tinyLiDAR af te lezen en de afstand aan te geven door de helderheid van de ingebouwde RGB-led te variëren. Het bord moet de M0-versie zijn voor python-ondersteuning.

Opmerking: Adafruit maakt ook verschillende afstandsdetectieborden, waaronder een op basis van de VL53L0X.

Stap 1: CircuitPython-code

  1. Download lib/adafruit_dotstar.mpy en lib/adafruit_bus_device/i2c_device.mpy als je ze nog niet hebt. Deze maken deel uit van de optionele bibliotheekbundel, zie het eerste gedeelte van CircuitPython I2C voor opmerkingen over hoe deze te installeren. Deze bestanden moeten in de mappen lib en lib/adafruit_bus_device op de Gemma M0.
  2. Download gemma-m0-tinylidar-simple.py, hernoem het naar main.py en kopieer naar de hoofdmap van de Gemma M0.

Het programma schrijft output naar de seriële console en varieert de helderheid van de Gemma MO RGB LED in verhouding tot de gelezen afstand. De Gemma M0-led wisselt tussen aan en uit voor het lezen, dus knippert met ongeveer 5 Hz en het standaardgedrag van het tinyLiDAR-bord is om de blauwe led per opdracht te laten knipperen op 10 Hz.

De bus wordt aangedreven op 100 kHz, wat goed werkt voor dit geval. Zoals elke bus, wordt de communicatiesnelheid van de communicatie beperkt door de kenmerken van de transmissielijn(en), dus moet aandacht worden besteed aan lengte, capaciteit en andere factoren.

Stap 2: De TinyLiDAR aansluiten op een Gemma M0

De TinyLiDAR aansluiten op een Gemma M0
De TinyLiDAR aansluiten op een Gemma M0

De afbeelding toont een effectieve maar onelegante tijdelijke opstelling om de tinyLiDAR aan te sluiten op een Gemma M0-bord. De "Grove" 4-pins universele connector van de tinyLiDAR wordt gebruikt via een Seeed Grove-conversiekabel, een reservekop en krokodillenklemmen om verbinding te maken met de Gemma M0. Enige scheiding tussen de pinnen op de kop elimineert het risico van een onbedoelde kortsluiting. De aansluitingen zijn:

  • Zwart: gnd naar gnd
  • Rood: +V tot 3Vo
  • Wit: SDA tot D0 (gegevens)
  • Geel: SCL tot D2 (klok)

De Adafruit-borden hebben enkele pinnen die het i2c-protocol efficiënt in hardware ondersteunen. In het geval van de Gemma M0 moeten deze worden gebruikt, D0 voor data en D2 voor klok.

Een i2c-bus vereist een pull-up-weerstand op de data- en kloklijnen. In dit geval biedt de tinyLiDAR zo'n 4,7K ingebouwde weerstanden. Als deze uit het circuit zijn verwijderd door de lijnen door te snijden, moeten equivalenten aan het circuit worden toegevoegd.

Stap 3: Seriële uitgang

Seriële uitgang
Seriële uitgang

Het programma schrijft uitvoer naar de seriële console en toont de gemeten afstand, hier is een voorbeeldschermafbeelding van een terminal die een object toont dat van de sensor af beweegt.

Aanbevolen: