Inhoudsopgave:

Gehackte digitale schuifmaat met behulp van Arduino - Ajarnpa
Gehackte digitale schuifmaat met behulp van Arduino - Ajarnpa

Video: Gehackte digitale schuifmaat met behulp van Arduino - Ajarnpa

Video: Gehackte digitale schuifmaat met behulp van Arduino - Ajarnpa
Video: 2022 Lamy Dialog cc Dark Blue Fountain Pen Unboxing and Review 2024, Juni-
Anonim
Digitale schuifmaat gehackt met Arduino
Digitale schuifmaat gehackt met Arduino

Dus, hoe zit het met het doen van wat metingen met je digitale schuifmaat en het hebben van je Arduino om wat werk met deze metingen te doen? Misschien door ze op te slaan, op basis van berekeningen te doen of deze metingen toe te voegen aan een feedbacklus van uw mechanische apparaat. toon de gemeten waarden op de Arduino Serial Monitor.

Stap 1: Hoe het kan?

Hoe het kan?
Hoe het kan?

Het blijkt dat sommige digitale schuifmaten in staat zijn om de gemeten gegevens die op hun beeldschermen verschijnen te verzenden met behulp van verschillende protocollen die door andere apparaten worden gebruikt.

Eigenlijk IS ER een plaats voor een interface-aansluiting op het remklauwbord, maar er is niets op gesoldeerd.

Je kunt gewoon de bovenste afdekking in het display verwijderen (niet de batterijklep) en je zult 4 pads vinden die een aansluiting zouden moeten hebben om met de remklauw te communiceren, maar dat zijn ze niet:(.

Dit feit werd vele jaren geleden ontdekt op verschillende remklauwen en deze instructable richt zich op het exacte model van de Chinese digitale schuifmaat die je op de foto's kunt zien, dus zorg ervoor dat de jouwe hetzelfde model is, aangezien een ander model verschillende protocollen kan hebben werken met, daarom verschillende codes om te gebruiken, maar het hoofdidee is hetzelfde bij de meeste van deze Chinese.

Zouden gaan:

  • Demonteer de remklauw
  • Vind waar we een interface-aansluiting op het bord kunnen solderen
  • Identificeer de pin-out van de connector
  • Soldeer het en monteer de remklauw
  • Reverse-engineering van de verzonden gegevens om te weten hoe het protocol werkt
  • Niveauverschuiving van de Caliper-signalen om bij de Arduino te passen
  • Upload de code en dat is alles:)

Wat je nodig hebt:

  • Een digitale schuifmaat
  • Arduino (elk type zal het werk doen)
  • Logic Converter Board (ik zal er een schema voor bijvoegen)
  • Een soldeerbout met fijne schone punt
  • Dunne soldeerdraad
  • Sommige jumperdraden

Stap 2: Demonteer de remklauw

Demonteer de remklauw
Demonteer de remklauw
Demonteer de remklauw
Demonteer de remklauw
Demonteer de remklauw
Demonteer de remklauw
  • Verwijder eerst de Caliper-batterij uit de clip.
  • Bij dit model vind je op de achterkant een zilverkleurig geleidepapiertje en daaronder vind je vier bevestigingsschroeven. Ze houden de behuizing bij elkaar en we moeten ze losschroeven met een Philips-schroevendraaier. Je kunt gewoon met je schroevendraaier over het papier aan de zijkanten lopen en je ziet hun montagegaten.

Daarna zul je zien dat de printplaat met vier schroeven op het voorpaneel is gemonteerd. Je moet ze voorzichtig losdraaien met een Philips-schroevendraaier met fijne punt

Pas op dat u geen van de sporen aan beide zijden van de PCB bekrast of snijdt

  • Nu ik alle schroeven eruit heb gehaald en ze op een veilige plaats heb gelegd waar ze niet verloren kunnen gaan:),
  • U moet de printplaat voorzichtig optillen omdat het display en de drie rubberen knoppen uit elkaar kunnen vallen.
  • Op dit punt kunt u het display en de knoppen van de PCB trekken en ze met de schroeven plaatsen en doorgaan met uw werk met de blote PCB.

Stap 3: Zoek de benodigde pads om de socket te solderen

Vind de benodigde pads om de socket te solderen
Vind de benodigde pads om de socket te solderen
Vind de benodigde pads om de socket te solderen
Vind de benodigde pads om de socket te solderen
Vind de benodigde pads om de socket te solderen
Vind de benodigde pads om de socket te solderen
Vind de benodigde pads om de socket te solderen
Vind de benodigde pads om de socket te solderen

Als je nu naar de bovenzijde van de print kijkt, kun je gemakkelijk zien waar de dataconnector moet worden gemonteerd.

Je kunt ook zien dat generieke pin-headers niet kunnen worden gesoldeerd zonder veel tweaken, omdat de steek van de connector kleiner is dan die van hen (pitch: afstand tussen de middelpunten van twee aangrenzende pads op de connector)

De steek van de pin-headers is 100 mil of 2,54 mm, dus je kunt ze een beetje buigen en ze laten solderen, of je kunt een andere socket vinden.

En hier kwam mijn volle doos met alleen maar zitten rond PCB's goed van pas.

Ik vond een perfecte 4-pins flex-kabelconnector (FPC-connector) op een van de oude cd-rom-stationprintplaten en besloot deze te gebruiken met de schuifmaat.

Het is niet nodig om te zeggen dat u voorzichtig moet zijn bij het desolderen van PCB-connectoren, omdat hun plastic behuizing kan smelten.

Let er ook op dat u ofwel pin-headers of een speciale socket als connector gebruikt, dat u deze connector nodig hebt om mechanisch in de opening voor de connector in de Caliper-vitrine te passen. (U kunt de afbeelding zien voor meer verduidelijking)

Stap 4: Identificeer de pin-out van de connector

Identificeer de pin-out van de connector
Identificeer de pin-out van de connector
Identificeer de pin-out van de connector
Identificeer de pin-out van de connector
Identificeer de pin-out van de connector
Identificeer de pin-out van de connector

Nu we de benodigde pads hebben gevonden, moeten we weten waar elke pad op is aangesloten.

Welnu, het is al gevonden in andere reverse engineering-projecten voor deze remklauwen en meestal hebben ze dezelfde configuratie (GND, DATA, CLOCK, VCC)

Om het met jezelf te configureren:

Verwijder de batterij

  • zet je multimeter op zoemerstatus (continuïteitstest)
  • Begin met het aansluiten van een sonde op de Battery -VE-terminal (GND) en zoek met de andere sonde welke pin op de connector met de grond is verbonden
  • Doe hetzelfde met Batterij +VE-aansluiting

Je kunt de andere twee pinnen die op de chip zijn aangesloten, twee namen geven (EX: D0 en D1), omdat we hun functies later in hun reverse engineering-stap zullen kennen

Als u de pin-out niet wilt configureren, kunt u de pin-out van de connector als volgt schatten:

(GND, GEGEVENS, KLOK, VCC)

GND is de dichtstbijzijnde pad naar het display

VCC is het dichtstbijzijnde pad naar de PCB-rand

en beide grotere pads op de rand van de connector voor connectormontage zijn verbonden met GND (je kunt ze controleren met een multimeter)

Stap 5: Reverse-engineering van het communicatieprotocol

Het communicatieprotocol reverse-engineeren
Het communicatieprotocol reverse-engineeren
Het communicatieprotocol reverse-engineeren
Het communicatieprotocol reverse-engineeren
Het communicatieprotocol reverse-engineeren
Het communicatieprotocol reverse-engineeren

Na het aftasten van beide digitale uitgangspinnen met een oscilloscoop, ziet dit er zo uit.

je kunt zien dat een van de pinnen werkt als een klok voor het synchroniseren van datatransmissie (CLK-lijn) en de andere is de datalijn, dus we hebben te maken met een gesynchroniseerd datatransmissieprotocol.

Het blijkt dat: - Gegevens worden verzonden op een logisch niveau van 1,5 Volt (klinkt logisch omdat het dezelfde spanning is als de noniusbatterij) - Gegevens worden verzonden in 6 nibbles (6 x 4 bits) met in totaal 24 bits - Er is ongeveer 200 mS tussen het einde van elk datapakket en het begin van het andere

ik besloot de gegevens aan de stijgende rand van de klok te samplen, dus na het proberen met verschillende maten op de remklauw en het veranderen van de modus van (mm naar in) en ook enkele negatieve waarden weer te geven, kreeg ik deze tabel (3e foto's) voor mijn testomstandigheden en ik begon het communicatieprotocol uit te zoeken

Dus na het bestuderen van de vastgelegde gegevens:

- in mm-modus: bits nr. 1 tot 16 zijn de binaire weergave voor het weergegeven getal op de schuifmaat (vermenigvuldigd met 100) - in (inch) modus: bits nr. 2 tot 17 zijn de binaire weergave voor het weergegeven getal op de schuifmaat (vermenigvuldigd met 1000)

- bit no.21 vertegenwoordigt het minteken (1 als het weergegeven getal negatief is en 0 als het positief is)

- bit no.24 vertegenwoordigt de meeteenheid (1 als de eenheid (in) is en 0 als de eenheid (mm) is)

- in (inch) modus: bit no.1 vertegenwoordigt het 0,5 mil-segment (1 als het is toegevoegd en 0 als dat niet het geval is)

Stap 6: Een logische converter maken

Een logische converter maken
Een logische converter maken
Een logische converter maken
Een logische converter maken

Nu moeten we het spanningsniveau van de remklauwgegevens verschuiven (1,5 volt is niet geschikt om met Arduino te werken, het is te laag) Ik heb een schema toegevoegd voor de logische converter die ik voor dit project heb gemaakt, maar zoals je de gegevens nu kunt zien naast dat het wordt verschoven naar een logisch niveau van 5 volt, wordt het ook omgekeerd, dus we moeten dat in de code compenseren.

Stap 7: Arduino-code

Arduino-code
Arduino-code

En nu ben je klaar om het te verbinden met de Arduino. Je kunt de code bijgevoegd vinden. sluit de klokpen aan op pin 2 of 3 op Arduino uno, nano of pro-mini (je hebt een interrupt-compatibele pin nodig) sluit de datapin aan op een andere pin. Upload de code en open de seriële monitor om de gemeten gegevens te zien

De code kan automatisch detecteren in welke modus de schuifmaat werkt door de 24e databit te scannen

Aanbevolen: