Inhoudsopgave:
- Stap 1: Hoe het kan?
- Stap 2: Demonteer de remklauw
- Stap 3: Zoek de benodigde pads om de socket te solderen
- Stap 4: Identificeer de pin-out van de connector
- Stap 5: Reverse-engineering van het communicatieprotocol
- Stap 6: Een logische converter maken
- Stap 7: Arduino-code
Video: Gehackte digitale schuifmaat met behulp van Arduino - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
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?
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
- 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
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
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
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
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
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:
Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen)
Digitale netwerkklok met de ESP8266: we leren hoe we een schattige kleine digitale klok kunnen bouwen die communiceert met NTP-servers en de netwerk- of internettijd weergeeft. We gebruiken de WeMos D1 mini om verbinding te maken met een wifi-netwerk, de NTP-tijd te verkrijgen en deze weer te geven op een OLED-module. De video hierboven
Een digitale schuifmaat afbreken en hoe werkt een digitale schuifmaat: 4 stappen
Een digitale schuifmaat afbreken en hoe werkt een digitale schuifmaat: Veel mensen weten hoe ze een schuifmaat moeten gebruiken om te meten. Deze tutorial leert je hoe je een digitale schuifmaat afbreekt en een uitleg over hoe de digitale schuifmaat werkt
BlackJack (gehackte IRig): 4 stappen
BlackJack (gehackt IRig): Ik haatte de manier waarop ik mijn iRig moest gebruiken met de elektrische gitaar en mijn smartphone omdat er te veel kabels waren!!!!!!! - Ik wil geen gitaarkabel gebruiken, want dat is iets anders
Gehackte Pendrive: 8 stappen
Gehackte Pendrive: ik heb een nieuwe telefoon, Samsung Galaxy op 7, en deze heeft heel weinig geheugen. Dus besloot ik een OTG-pendrive te kopen die me 500 roepies kostte. Maar ik heb veel pendrives. Nu hebben ze geen enkel nut. Dus besloot ik een OTG-kabel te kopen. Het heeft me ook honderd gekost
Hoe u gebruikersniveaus van NUMA toevoegt aan uw exemplaar van N met behulp van NumADD Firefox AddOn: 4 stappen
Gebruikersniveaus van NUMA toevoegen aan uw exemplaar van N NumADD Firefox-add-on gebruiken: Elke gebruiker van Metanet's N-database op gebruikersniveau NUMA weet hoe onhandig de interface is voor het kopiëren van door gebruikers gemaakte niveaus naar uw exemplaar van het spel. NumADD, elimineert de noodzaak van kopiëren en plakken en maakt het overzetten van niveaus het werk van één muisklik