Artykuł przedstawia w jaki sposób można wyświetlać dane z komputera na inny interface niż monitor przy użyciu Arduino.
Wyświetlanie informacji w taki sposób ma bardzo dobre zastosowanie w chili gdy nie wszystkie informacje są wyświetlane na ekranie (np procent życia w danej grze), gdy nie chcemy, żeby monitor cały czas się palił, a zależy nam na bieżąco monitorowanie jakiś informacji/procesów (np ilość maili w skrzynce, procent ściągniętego pliku).
Przykładowe filmiki przedstawiają poglądowe zastosowanie układu.
w Saperze - pokazuje ilość sekund trwania gry
Call of Duty Modern Warfare 2 - ilość amunicji poza magazynkiem
Oczywiście zastosowań może być wiele, wiele więcej.
Podłączenie
Potrzebne będą:
Arduino UNO
2x Rejestr przesuwny typu SIPO (Serial-In, Parallel-Out) o 8 wyjściach równoległych w tym przypadku 74HC595
2x wyświetlacz LED o wspólnej adnodzie
2x rezystor 220 ohm
kabel USB
kabelki podłączeniowe
Rejestr przesuwny
1 74HC59512 12 ST-CP -> Arduino 13 (cyfrowe)
1 74HC59512 11 SH-CP -> Arduino 12 (cyfrowe)
1 74HC59512 14 DS -> Arduino 11 (cyfrowe)
1 74HC59512 16 Vcc -> Arduino +5
1 74HC59512 8 GND -> Arduino GND
1 74HC59512 10 ^MR -> Arduino +5
1 74HC59512 13 ^OE -> Arduino GND
2 74HC59512 12 ST-CP -> Arduino 7 (cyfrowe)
2 74HC59512 11 SH-CP -> Arduino 6 (cyfrowe)
2 74HC59512 14 DS -> Arduino 5 (cyfrowe)
2 74HC59512 16 Vcc -> Arduino +5
2 74HC59512 8 GND -> Arduino GND
2 74HC59512 10 ^MR -> Arduino +5
2 74HC59512 13 ^OE -> Arduino GND
Uwaga, na układzie poniżej jest poprzemieniane połączenie z arduino. Poprawne jest wyżej.Kondensator dołączony do układu nie jest potrzebny...
LED ze wspólną anodą
Podłączenie LED z Rejestrem przesuwnym (podłączenie dla obu LED jest takie samo).
LED A -> 74HC59512 Q0
LED B -> 74HC59512 Q1
LED C -> 74HC59512 Q2
LED D -> 74HC59512 Q3
LED E -> 74HC59512 Q4
LED F -> 74HC59512 Q5
LED G -> 74HC59512 Q6
Kod dla Sapera
Kod jest napisany w pythonie. Do kompilatora potrzebne są dodatkowe 2 moduły: WMI i pyserial.
Informacje, którą chcemy wyświetlić na naszym LED znajduje się w pamięci komputera. Żeby ją znaleść (a konkretnie adres pamięci) polecam program Cheat engine.
Mając adres pamięci, w kodzie musimy podmienić nazwę procesu (w saperze name="winmine.exe") oraz adress (w saperze 0x100579C, 2) gdzie 0x100579C jest to adres pamięci, w którym zapisana jest ilość sekund, a 2 jest to ilość bajtów zajmująca pamięć.