♬ ☘ Moja muzyka do majstrowania ♬ ♬ ♬ ☘
♫ ♩ ♪ Distant Dream ⚡ ☘ ⚡ It All Starts From Pieces ♪ ♩ ♫
https://youtu.be/953o5iD688Q
Nie ma tego złego co by na dobre i tak dalej. Kolejny komunał ktoś pomyśli, ale jednak potwierdzający pewne ciekawe zjawisko, że przy odrobinie samozaparcia można praktycznie każdą sytuację obrócić w korzystną dla siebie stronę. Wysłanie bazgrołów o V543 do `Elektronika dla Wszystkich` zablokowało mi nieco analogiczny temat na forum, albo kiosk albo sieć, ale za to przydarzył się inny Meratronik, V628 także z zewnętrznym konektorem, no wow. Przedstawiam zatem inne ujęcie zagadnienia pt. jak ożenić miernik Meratronik z PC przy pomocy tanich i ogólnie dostępnych środków. Nie jest to opracowanie wyczerpujące temat, raczej wskazówki umożliwiające odtworzenie zabawki u siebie na biurku i dalsze, twórcze poszukiwania, być może także w kierunku innych urządzeń np. ZOPAN PFL-22. Granicą jest fantazja i cierpliwość, a dowodem że da się - grafomania poniżej, zapraszam.
Inspirujący zadeczek
Odwłok mojego nowego nabytku niezwykle ciekawy się wydaje, głównie za sprawą złącza krawędziowego, które to obfotografowałam przy okazji wstępnych oględzin i czyszczenia urządzonka. Złącze, będące de facto fragmentem górnej dolnej, cyfrowej płytki drukowanej przedstawia zdjęcie poniżej:
Widząc raster i wymiary, pierwszym skojarzeniem była taśma do zapinania stacji 5.25" w starych komputerach PC, taka z szerokim i grubym szczelinowym złączem. No i proszę, fragment kabla od FDD idealnie pasuje do Meratronika, należy tylko usunąć tapeciakiem wewnętrzną przegródkę zapobiegającą odwrotnemu nasadzeniu złączki. Zdjęcia z przymiarek poniżej:
I paradoksalnie, tu temat porzuciłam, zdjęcia pokazuje, a nuż komuś się pomysł spodoba. Ja z galopady pomysłów złapałam innego kuca za grzywę - a może jednak interfejsik-moduł, mocowany na tyle przyrządu? I tak oto rozpoczęło się rozmyślanie nad materializacją ulotnej wizji.
Wszelkie podobieństwo - zupełnie przypadkowe
Tradycyjnie, dla ustalenia uwagi - dokumentacja V628: http://bee.mif.pg.gda.pl/ciasteczkowypo ... i/v628.pdf
No właśnie, sztuczka cała w tym, aby zaprezentować model interfejsu do V628 nie powielając treści już wcześniej przygotowanych, ale udało się. Meratronik V628 udostępnia swoje dane analogicznie jak V543 - w postaci zawartości zatrzasków wyświetlaczy (trzy i pół nibbla) oraz kilku bitów kontrolnych. Jest również możliwość zdalnego wystartowania pomiaru. Natchnienie odnośnie jakie sygnały są dostępne pochodzi z dokumentacji:
Do realizacji sprzęgu wykorzystałam rejestry przesuwne z ładowaniem równoległym typu CD4021, mi wystarczą dwie sztuki, przy założeniu że polaryzację rozpoznamy jednym bitem (miernik wystawia dwa - komplementarne).
Schemat zabawki wygląda tak:
Taki układ umożliwia podpięcie Meratronik V628 do praktycznie dowolnego mikrokontrolera, Arduino, ośmiobitowca, czy nawet bezpośrednio do portu LPT komputera PC. Ja ponownie eksperymenty swe radosne oparłam o Arduino i nie jest to pisanie pod publiczkę, bo akurat pełno teraz Ardu w EdW, nie. To jest po prostu zajewygodne i efekty działania (czy czasem niedziałania) mam praktycznie od razu. No i jeszcze jednak kwestia, rzadko poruszana - cena modułku. Jak mi się takie chińskie Ardu usmaży, to za paręnaście złotych mam nowe i niezłej jakości, a straszenie dziwnymi układami przy USB typu CH340 proszę włożyć między bajki, Linux te kostki ogarnia kompleksowo i nie ma żadnych problemów ze stabilnością komunikacji. Można wykorzystać Uno, można Nano, co tam kto ma. Ważne, aby systemik dawał choć jedną linię przerwań zewnętrznych, bo na tym opieram wyzwalanie odczytu danych. Jak nie ma - trzeba będzie deczko przerobić program.
Praca własna z brzeszczotem i lutownicą
Nie wykluczam, że ktoś kto akurat kolekcjonuje płyty główne AT dostanie zaraz palpitacji. No to trudno. Proszę, oto dawca złączek czyli płyta x86 z całą furą gniazd ISA. Niestety, widać, że po taniości robiona była - w starych dobrych cześć 8-bitowa gniazda i 16-bitowe, krótkie rozszerzenie były osobnymi elementami, z ebonitopodobnego tworzywa, z grubymi pinami. Można było bezpiecznie wydłubać dłuższe lub krótsze, a tu demolka po całości.
Dawca.
Piła 9.
Fragment gniazda do dalszej obróbki, przede wszystkim do wylutowania z resztek laminatu.
Przy okazji widać, jak jest skonstruowana drabinka rezystorowa z ceramicznym rdzeniem.
No i tu się zaczęły schody, styki niektóre z natury delikatności swej uszkodzeniu uległy.
Jak łatwo zauważyć złącze Meratronika ma niepełną obsadę i szeroką szczerbę oddzielająca cześć przecinkową od numeryczno-sterującej, zatem tam gdzie nie ma styku - blaszkę można przełożyć w miejsce gdzie styk ma być, ale akurat jest uszkodzony. Taka rzeźba.
Efekt dłubaniny jest zadowalający, choć w sumie to zajęło dość dużo czasu.
Proszę zwrócić uwagę na konieczność podpiłowania boczku złącza. Obudowa Meratronika ma wewnątrz otworu na złącze takie jakby słupki, do dokręcania śrub wtyczki. Nie chciałam tego podcinać, aby nie ruszać oryginalnej obudowy, stąd pilniczkiem po wtyczce.
Dygresia sieciowa
Ano właśnie, szczerzące się zaciski z 230AC jednak poprosiły o litość i kabelek z Castoramy dostał seksowne złączki pod śrubki, nie wygląda to już tak ordynarnie, choć dalej trzeba bardzo uważać, gdzie się pcha łapy.
Lutować każdy może - wieczór
Po serii przymiarek na sucho udało się wypracować sensowne według mnie rozłożenie elementów na płytce uniwersalnej.
Jak łatwo zgadnąć przymiarki uwzględniały też trwałe osadzenie w interfejsie jakiegoś MCU, tu układanki pod stary AT902313 z zewnętrznym kwarcem, ale to plany póki co, możliwe, że zmienię zdanie.
No i fotka co czas jakiś - lutowanki przy progmetalowej muzyce, wtedy było fajnie.
Ponownie przymiarka na zadek, czy aby nie uwiera i ładnie leży.
Oczywiście sprawdzenie omomierzem czy jest ciągłość sygnałów i czy coś się nie przywarło - ponieważ nic niepokojącego się nie wydarzyło to komisyjnie włożone kostek CD4021:
Miernik włączony z założonym modułem zaczął szybko mrugać +4000, sporo szybciej niż przy normalnym OVER, a mnie zrobiło się tak jakoś mdło.
Olśnienie przyszło po dłuższej chwili i w sumie przypadkiem: przed nosem miałam kartkę ze swoją roboczą rozpiską, a na ekranie akurat firmowy schemat z małym rysunkiem złącza.
Góra i dół były zamienione miejscami, A z B.
Płytka śliczna specjalnie kupiona dwustronna z metalizacją, złącze podczas odzysku z płyty głównej i tak dostało do wiwatu, drugiej takiej akcji już nie przeżyje, podstawki kielichowe, kabelki ładnie poukładane, każdy doginany z osobna i tyle czasu, noż...[regulamin]
I przyszła Tośkowa blond-makówa powiedzieć dobranoc przez spaniem, tak patrzy to na mnie, to na tę rozwałkę na biurku i słyszę pokrzepiające:
Co Natek? Źle pospawałaś druciki?
No to RIP.
Lutować każdy może - poranek
Dla porządku, rozpisanie sygnałów na tyle V628 - wersja ostateczna i jedynie słuszna.
Nowy dzień, nowe siły i w sumie prosta myśl - chce mieć interfejsik to trzeba albo zacząć od nowa, albo odratować to co już jest zrobione. Nie ma innej opcji, po prostu. Drugie podejście z estetyką już nie ma tyle wspólnego, ale też czołowe lutowanie do padów ocynowanych przewodów wykluczało kładzenie ich na płask. Stąd te wszelkie łuczki i garby. Taka - cena mienia.
Pierwsze (drugie?) próby uruchomienia - póki co nic złego się nie dzieje.
Aby miernik pokazywał coś sensownego, zapięłam mu LM35 w metalowej puszce - był sobie odczyt temperatury w pokoju.
Podłączenie Arduino, przesiadkowa płytka stykowa i garść zdjęć robiony w czasie, gdy powstawało oprogramowanie.
No i gdy słonko wyszło, nieco za ciepło się zrobiło na biurku - mały wentylatorek ze śmietnika, ustawiony na 8..9V aby nie hałasował. Zastanawiam się, jak to w lato będzie, V628 w wykonaniu które mam nie ma zbyt dobrej wentylacji jednak, temat rozwojowy zatem.
700 nanosekund
Mając ogarniętą elektronikę mogłam z pieśnią bojową w piersiach zasiąść do dłubania programiku zbierającego dane z interfejsu. Nie było to jakieś arcyskomplikowane, po prostu przerobiłam to, co przyszło na świat z okazji interfejsu do V543. Przede wszystkim, przydaś - tabelka pokazująca przypisanie bitów rejestrów i sygnałów z miernika V628:
Odczyt danych z miernika odbywa się, gdy tylko owy odmelduje zakończenie pomiaru, a robi to króciutkim impulsem na linii a7 - koniec pomiaru (w V543 nazywa się to M i ma inna charaktersytykę czasową).
Czysto programowe łapanie takiej szpileczki jest bez sensu, tu trzeba wykorzystać system przerwań. Tak więc w handlerze przerwania OnMeterDataReady() odbywa się wywołanie funkcji readV628rawData() odczytującej dane i przepisanie jej wyniku to zmiennej globalnej. Ta zmienna jest odczytywane w pętli głównej (przy chwilowo zablokowanych przerwaniach) i wysyłana na terminal. Aplikacja jest porażająco wręcz prosta, cały kod w pigułce:
v628link.ino pisze:Kod: Zaznacz cały
#define LINE_READY 2
#define LINE_DATA 3
#define LINE_LOAD 4
#define LINE_CLK 5
#define LINE_START 6
volatile unsigned short ushLastMeterState = 0;
void setup() {
Serial.begin( 9600 );
pinMode( LINE_DATA, INPUT );
pinMode( LINE_READY, INPUT );
// H - parallel-transparent, L-lock data, serial
pinMode( LINE_LOAD, OUTPUT ); digitalWrite( LINE_LOAD, HIGH );
pinMode( LINE_CLK, OUTPUT ); digitalWrite( LINE_CLK, LOW ); // L by default
pinMode( LINE_START, OUTPUT ); digitalWrite( LINE_START, HIGH ); // unused
attachInterrupt( digitalPinToInterrupt( LINE_READY ), OnMeterDataReady, RISING );
}
void OnMeterDataReady (void) {
ushLastMeterState = readV628rawData();
}
unsigned short readV628rawData( void ) {
unsigned short rawFrame = 0;
int n;
digitalWrite( LINE_LOAD, LOW ); // down L and shift serial data
for ( n = 15; n >= 0; n-- ) {
if ( digitalRead( LINE_DATA ) ) {
rawFrame |= ( (unsigned short)1 << n );
}
digitalWrite( LINE_CLK, HIGH);
digitalWrite( LINE_CLK, LOW);
} // for
digitalWrite( LINE_LOAD, HIGH ); // release register to transparent
return rawFrame;
}
void loop() {
unsigned short t;
char s[ 20 ];
while (1) {
_delay_ms (200);
noInterrupts();
t = ushLastMeterState;
interrupts();
if ( t & (1 << 14) ) {
Serial.println( "over!" );
}
else {
sprintf ( s, "%c%04x", t & (1 << 15) ? '-' : '+', t & 0x2FFF );
Serial.println( s );
} //else
} //while
}
Zrzutki ekranu z nowej atrakcji - oznaki życia na terminalu:
Reakcja na przytrzymanie w palcach obudowy LM35:
Na koniec kilka filmików prezentujących zbieranie danych do komputera, póki co przy pomocy tego co ma Arduino IDE. Zadajnikiem wartości do pomiarów był generator z Analog Discovery 2. Widać obsługę polaryzacji wyniku pomiaru oraz wykrywanie przekroczenia zakresu pomiarowego.
https://youtu.be/LF7-tAeqU3w
https://youtu.be/qztWk2LhcoU
https://youtu.be/SYm7GqFvZSQ
Perspektywy
No, to na tym etapie mam całkiem sympatyczny cyfrowo-neonowy miliwoltomierz z możliwością komunikacji z nadrzędnym systemem, niekoniecznie PC. Do zrobienia pozostało zarządzanie pozycją kropki dziesiętnej, czyli zapalanie neonówek P1..P3, to też na szeregowo idzie zrobić utrzymując spójny interfejs. Zastanawiam się mocno, czy aplikując AVR 902313 nie posterować w kierunku małego systemu pomiarowego na bazie RS485, w końcu mam już dwa gadające po ludzku urządzonka. Pożyjemy, zobaczymy.
--- edytka autorska ---
2018.02.21 - zmiana treści: pomyłka w opisie, dodana tabela-złącze, cytowanie listingu