HBM liniaal gehacked   Laatst bijgewerkt: 2017-04-23

Deze pagina is in aanbouw, meer info en foto's volgen. 

ReactiesNaar.jpg ReactiesNaar.jpg
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.


Sino-tmb.jpg
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.

Linialen-tmb.jpg
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.


Signalen.jpg
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.