HBM liniaal gehacked
Laatst
bijgewerkt: 2017-04-23
Deze pagina is in
aanbouw, meer info en foto's volgen.
In
het kort:
HBM-machines
(Herman Buitelaar, Wadinxveen) verkoopt naast de vrij dure Sino
glaslinialen ook
relatief goedkope
linialen voor het digitaal uitlezen van lineaire (machine) posities.
Deze
linialen komen met een los uitleeskastje en batterijtjes. Ik heb het
protocol dat via
het kabeltje gaat uitgeplozen en geïmplementeerd op een Arduino. Het
kan op tenminste alle Arduino versies die een ATmega 328 of 2560
gebruiken, zoals Mega, Ethernet en Nano.
Gerelateerde projecten:
Uitlezen van 2 assen van een draaibank.
De Sino linialen hebben een
TTL- of RS422 interface met 90° in fase verschoven signalen en lopen op
5 Volt.
Je kunt aan het aantal draadjes in de connector zien of het TTL of
RS422 is. Zie Sino
Info en een Handleiding
(Eng).
De resolutie is 0.005 mm.
Er was (sept 2013) 1 vrij lange versie in de aanbieding.
Inkorten is waarschijnlijk een riskante klus.
De andere maten zijn fors aan de prijs.
De HBM linialen hebben een
resolutie van 0.01 mm, en je moet zelf voor de mechanische bescherming
tegen bijv. snij-olie zorgen.
Ze kunnen wel eenvoudig ingekort worden.
Op gezette tijden zijn ze in de aanbieding voor €29 of zo.
Aansluitingen:
De liniaal is op het uitleeskastje aangesloten via een mini-USB
connector, maar het protocol is niet USB.
Attentie: nieuwere versies, ten minste v.a. begin 2017, hebben een USB MICRO aansluiting.
Van de 5 pootjes van de mini-USB connector zijn er 4 aangesloten:
PIN 1 is VDD, ca. 3.3 Volt, gegeven door de batterij, maar het gaat niet stuk bij 5 Volt.
PIN 2 is een clock signaal, gegenereerd door het uitleeskastje
PIN 3 is data, vanuit de liniaal.
PIN 4 is niet aangesloten.
PIN 5 is GND.
Let erop dat het metaal van de liniaal elektrisch verbonden is met GND.
Als er meerdere linialen op 1 machine gemonteerd worden zou dat tot een
aardlus-probleem kunnen leiden. Montage op kunststof blokjes en
met kunststof doorvoeren voor de schroeven is dan aan te raden.
Het data signaal (boven) en
de clock (onder).
De signalen:
De clock bestaat uit een serie van 21 pulsjes van 25 usec hoog, en een
herhaling van ca. 130 usec. Dat duurt dus krap 3 msec.
Het data signaal neemt kort na de opgaande flank van de clock de nieuwe
waarde aan en blijft daar tot de volgende clock puls.
Je moet het data signaal dus sampelen vlak vóór de neergaande flank van
de clock of later, maar niet kort na de opgaande flank.
De reeks van 21 pulsjes wordt om de ca. 6 msec. herhaald, dus pakweg
160
x per seconde. Deze pauze is voor de liniaal elektronica het sein om
een
nieuw woord te beginnen. Ik heb niet uitgezocht wat de minimale
pauzetijd moet zijn.
De data worden verstuurd als een 21-bit binair getal, het minst
significante bitje komt eerst.
Het is me gebleken dat deze ruwe data, geïnterpreteerd als honderste
millimeters, een fout van ongeveer 1% bevatten. Calibratie is dus nodig.
In het Draaibank project vind je de code en het gebruik ervan, evenals aanwijzingen voor de calibratie. De code heeft engelstalig commentaar.