ESP32 gebaseerde doe-het-zelf digitale uitlezing

Deze DRO-adapter is gebaseerd op de nieuwe 32-bit ESP32-module en maakt gebruik van de tweede generatie universele TouchDRO-firmware die gegevens kan decoderen van kwadratuur-encoders, iGaging 21-bits schalen, iGaging absolute schalen en Shahe BIN6-schalen. In feite is de firmware functioneel identiek aan de versie die wordt geleverd op de voorgemonteerde iGaging- en Shahe-schaaladapters.

Het circuit is identiek aan dat van de TouchDRO DIY Kit en is geoptimaliseerd voor 5V- en 3,3V-weegschalen. Dit omvat glazen/magnetische DRO-uitleesschalen, iGaging EZ-View DRO, iGaging DigiMag DRO, iGaging Absolute DRO lineaire uitleesschalen en Shahe Liner Remote DRO-uitleesschalen. Dit ontwerp is gekozen vanwege de goede balans tussen doe-het-zelfvriendelijk zijn en goede geluids- en storingsbestendigheid.

Het bundelen van deze schakeling op een prototypebord is nogal een uitdaging vanwege het aantal vereiste point-to-point-verbindingen. Daarom gaan we ervan uit dat iedereen die deze constructie uitvoert, al een goed begrip van elektronica en goede soldeervaardigheden heeft. Er zijn dan ook geen gedetailleerde montage-instructies, omdat er van wordt uitgegaan dat je het meegeleverde schakelschema kunt lezen en volgen.

Circuitoverzicht

De kern van deze adapter wordt gevormd door het ESP32 DevKit V1-ontwikkelbord. Het is een op zichzelf staand circuit dat de ESP32 WROOM-module, USB-naar-seriële interface, spanningsregelaar en status-LED’s omvat. ESP32 WROOM heeft twee krachtige processors, hardware-kwadratuurdecoders, hardware-toerenteller en ingebouwde BlueTooth-transceiver. Bovendien is het erg goedkoop en gemakkelijk verkrijgbaar in de meeste delen van de wereld.

Als gevolg hiervan is het een geweldig platform voor een doe-het-zelf-DRO. Het heeft één opmerkelijk nadeel: het is niet ontworpen om rechtstreeks met de buitenwereld te communiceren, dus de invoerpinnen hebben geen ingebouwde Schmitt-triggers, enz.. Als gevolg hiervan kunnen we de uitleesschaal niet rechtstreeks aansluiten en in plaats daarvan, moeten een geschikt ingangsconditioneringscircuit bouwen.

ESP32 Devkit V1 Pinout - colandino.nl
ESP32 Devkit V1 Pinout – colandino.nl

Het circuit voor deze doe-het-zelf-adapter maakt gebruik van twee 74HC14 hex inverterende Schmitt-triggers om een ​​robuuste en ruisbestendige conditionering van het ingangssignaal te bieden. In wezen heeft elke schaalingangslijn een serieweerstand van 4,7 KOhm en een NOT-poort met een Schmitt-trigger. De lijn wordt door een weerstand van 47 KOhm omhoog getrokken naar de schaal Vcc.

De serieweerstand is nodig om het IC tegen overspanning te beschermen. Omdat de 74HC14 wordt gevoed door een voeding van 3,3 V (dus het hoge uitgangssignaal is 3,3 V), ligt de ingang op de schaal van 5 V buiten de aanbevolen hoge ingangsspanning. Om het IC tegen schade te beschermen, voegen we een weerstand van 4,7 K toe, die de stroom beperkt tot een niveau dat veilig kan worden verwerkt door de interne diodes van de chip.

Bovendien heeft elke schaalingang, evenals de toerenteller- en probleemingangen, 0,1 uF bypass-condensatoren. Deze zijn nodig om de ruis op de voedingslijn van de weegschaal te verminderen. Deze condensatoren moeten zo dicht mogelijk bij de schaalingangen worden geïnstalleerd. Op dezelfde manier bevindt zich naast elk van de 74HC14 een bypass-condensator van 0,1 uF.

Ten slotte zijn er twee elektrolytische condensatoren van 100 uF, één op de 3,3 V-voedingsrail en één op de 5 V-voedingsrail. Als u van plan bent slechts één van die rails te gebruiken om de weegschaal van stroom te voorzien, kunt u de tweede condensator achterwege laten.

Circuitschema

Schema TouchDRO uitleesschaal adapter kit
Schema TouchDRO uitleesschaal adapter kit

Onderdelen / Stuklijst

Deze DIY (Doe Het Zelf) DRO-kit bevat alle componenten die nodig zijn om een ​​TouchDRO-adapter te monteren.

Waarde Beschrijving Aantal Referentie
ESP32 Devkit V1 ESP32 WROOM Dev. Kit 1 U1
74xx14 SN74HC14N Hex Schmitt Trigger 2 IC1, IC2
Condensator, 100 uF Condensator elektrolytisch, 100uF, 35V 2 C14, C15
Condensator, 0.1 uF Condensator keramisch, 0,1uF 50V 8 C1, C3, C5, C7, C9, C10, C11 en C12
Weerstand, 4,7 KOhm Metaalfilmweerstand, 4,7 KOhm, 1/4W, 5% 10 R1 tot en met R10
Weerstand, 47 KOhm Metaalfilmweerstand, 47 KOhm, 1/4W, 5% 10 R21 tot en met R30

Configuratie schaalinvoer

Voor elke ingang moet u de Vcc-pin op de juiste voedingsrail aansluiten. Als u het schema volgt, worden hierdoor ook de pull-up-weerstanden op dezelfde rail aangesloten (dit is erg belangrijk; anders kunt u uw uitleesschaal permanent beschadigen). Bovendien moet op iGaging 21-bits weegschalen de “CLOCK OUT”-pin zijn aangesloten (jumpers zijn gemarkeerd R11-R14 in het schema).

Veel voorkomende configuraties zijn als volgt:

  • Glazen en magnetische uitleesschalen gebruiken een 5V-rail; Lijn “CLOCK OUT” (R11-R14) niet aangesloten
  • iGaging EZ-View DRO en iGaging DigiMag gebruiken 3,3V-rail; “CLOCK OUT”-lijn aangesloten
  • iGaging Absolute DRO en Shahe Remote DRO-uitleesschalen gebruiken een 3,3V-rail; “CLOCK OUT”-lijn niet aangesloten

Opmerking: Hoewel het 3,3V-signaal afkomstig van capacitieve uitleesschalen [over het algemeen] veilig is voor ESP32, kunt u ze niet rechtstreeks aansluiten. Allereerst verwacht de firmware een omgekeerd signaal en zal niet werken zonder een “NOT”-poort. Ten tweede zou de uitlezing zonder de Schmitt-trigger te haperend kunnen zijn. Ten slotte kunnen eventuele geluidspieken boven de 3,6 V de ingangspinnen van de ESP32 permanent beschadigen.

DRO-firmware

De firmware die nodig is om deze DIY DRO-adapter uit te voeren, kunt u vinden in de sectie Downloads (Universele Firmware – 32 Bit). Deze ESP32-firmware is geschreven in low-level C, niet in Arduino. Om het in de ESP32-module te flashen, moet u Espressif tool chain callend IDF installeren. Het proces is ingewikkelder dan het uploaden van een schets naar een Arduino en vereist de installatie van USB-stuurprogramma’s en een paar opdrachtregelprogramma’s. De documentatie is te vinden op de Espressif-site.

Installatie onder Linux Mint ESP-IDF

Om te controleren of de Espressif IDF correct is geïnstalleerd, voert u de volgende opdracht uit: esptool.py versie Uw resultaat zou er ongeveer zo uit moeten zien:

Voer uit in je terminal: esptool.py version
Voer uit in je terminal: esptool.py version
Voorbeelduitvoer van de bovenstaande opdracht

Zodra u een werkomgeving heeft, decomprimeert u de gedownloade firmware in een map en voert u op de opdrachtregel het volgende uit:

esptool.py \
-p /dev/ttyACM0 \
-b 460800 \
--before default_reset \
--after hard_reset \
--chip esp32 write_flash \
--flash_mode dio \
--flash_size detect \
--flash_freq 40m \
0x1000 bootloader.bin \
0x8000 partition-table.bin \
0x10000 touchdro-universal-32-v14.bin

Afhankelijk van uw besturingssysteem zullen de parameters waarschijnlijk variëren. Met name de parameter -p die de poort specificeert.

  • Op een op UNIX/Linux gebaseerd besturingssysteem kunt u ‘ls /dev/TTy*‘ uitvoeren om alle TTY-apparaten te zien voordat u ESP32 op de USB-poort aansluit, en daarna hetzelfde commando uitvoeren en het verschil vinden (wat de poort zal zijn voor ESP32).
    In de meeste gevallen zal dit “TTy……….” zijn.
  • Op Windows vindt u de poort die door ESP32 wordt gebruikt in het gedeelte “Seriële poorten” van Apparaatbeheer.

Bouwtips en testen

Het bouwproces voor deze adapter kent twee uitdagingen:

  • Het flashen van de firmware op ESP32 is een ingewikkeld proces
  • Het ingangscircuit vereist een aantal point-to-point-verbindingen

Om het testen te vereenvoudigen, wilt u het misschien in deze twee fasen opdelen en elke fase afzonderlijk testen.

ESP32-firmware

ESP32 is een op zichzelf staande module en kan de TouchDRO-firmware prima uitvoeren zonder de ondersteunende circuits. Daarom zou uw eerste stap het flashen van de firmware op de module moeten zijn en ervoor zorgen dat deze werkt zoals verwacht:

  1. Schakel de module in via USB en controleer of de rode LED brandt en de blauwe LED knippert
  2. Koppel de module met uw Android-tablet en zorg ervoor dat het koppelingsproces slaagt. Apparaatnaam in de BT-apparaatlijst moet “TouchDRO DIY” zijn
  3. Open de TouchDRO-applicatie en sluit deze aan op de module
  4. Laat TouchDRO minimaal een minuut draaien. De applicatie mag de verbinding niet verliezen

Optioneel kunt u een BlueTooth-terminaltoepassing (zoals BlueTerm) installeren en het volgende doen:

  1. Ontkoppel de TouchDRO-applicatie (indien aangesloten)
  2. Maak verbinding met de DRO-adapter via BlueTerm
  3. U zou een gegevensstroom moeten zien die x0;y0;z0;w0;t0;p0;
  4. Zoek de sondepin (zie pin-out hierboven) en sluit deze kort met de aarde
  5. De waarde voor p in de datastroom moet veranderen naar p1; en de stroom zou moeten versnellen
  6. Koppel de pin los van de aarde; p moet terugkeren naar p0;

Als de tests slagen, werkt de firmware zoals verwacht.

Ingangscircuit

Nadat u het ingangscircuit hebt gebouwd (voordat u iets op de ESP32-module aansluit), is het een goed idee om elke lijn te testen om er zeker van te zijn dat de verbindingen werken.

Hiervoor kunt u het volgende doen:

  1. Sluit 5V, 3,3V en aarde aan op de ESP32-module (zie pin-out hierboven). Als alternatief kunt u een bankvoeding of zelfs batterijen gebruiken.
  2. Controleer met behulp van een voltmeter de spanning op elke ingangspin. Omdat de pinnen omhoog zijn getrokken naar Vcc, moet de spanning zeer dicht bij de nominale Vcc liggen (5V of 3,3V, afhankelijk van uw configuratie)
  3. Controleer met behulp van een voltmeter de spanning op elke uitgang (de lijn die op ESP32 wordt aangesloten). De spanning moet dichtbij 0V liggen, aangezien 74HC14 een inverterende Schmitt-trigger is.
  4. Aard elke ingangslijn en controleer de spanning aan de uitgang. Het moet dichtbij de 3,3V liggen

Als al deze tests slagen, werkt uw schakeling zoals verwacht en kunt u deze nu aansluiten op de ESP32-module. Controleer anders uw verbinding opnieuw, los eventuele problemen op en voer de test opnieuw uit.

Uitleesschaal bedrading

Glazen en magnetische uitleesschalen zijn over het algemeen zeer goed bestand tegen storende lijnruis enz. De 0,1 uF-condensatoren zijn niet strikt noodzakelijk, maar bieden wel enige bescherming tegen ruispieken op de toevoerlijn.
Voor capacitieve uitleesschalen zijn de bypass-condensatoren erg belangrijk, omdat deze uitleesschalen zeer gevoelig zijn voor ruis en storingen. Idealiter zouden deze condensatoren in de leeskop van de uitleesschaal moeten worden geïnstalleerd. Als u het niet prettig vindt om de leeskop aan te passen, moeten de condensatoren op de USB-breakout-kaarten worden geïnstalleerd [tenzij u van plan bent de uitleesschaal op de hoofd-PCB aan te sluiten].