Fórum témák

» Több friss téma
Fórum » Állapot jelző LCD számítógéphez
Lapozás: OK   1 / 1
(#) sxxavier hozzászólása Aug 31, 2007 /
 
Hello!

Egy egyszerű eszközt szeretnék készíteni az egyik ottoni gépemhez, nevezetes egy olyan kütyüt, ami jelzi nekem, hogy mikor lehet kikapcsoani a gépet, mikor van munkára készen.

Van ugyanis otthon egy régi AT gép, amit beállítottam Linux szervernek, de mivel kicsi otthoni hálózatról van szó esténként kikapcsolom a masinát. De mivel AT szabványú a gép, ezért nem áll le magától, meg kell nyomni a kikapcsoló gombot.

Egy szervert azonban nem ajánlott csak úgy akármikor lelövöldzni, ezért kellene egy ilyen kütyü. A szoftveres részét azthiszem meg tudom oldani. Maga a hardver egy soros porta köthető okosság kell hogy legyen.

Elolvastam az idetartozó cikkeket az oldalró, viszont teljesen új nekem ez atémakör. Oké, láttam már forrasztó pákát, tudom, mi fán terem a nyák és a többi okosság, de még az életben nem raktam össze magamtól ilyen kütyüt.

Egy minimális tervet is összeraktam fejben: Egy PIC proci a dolog feje, a kijelző egy három LED-es panel, rendre piros, sárga és zöld színnel. //Ha a gép éppen "feláll" akkor sárga, ha aktív, akkor zöld, ha ki lehet kapcsolni, akkor piros//

Abban szeretném a segítségeteket kérni, hogy milyen eszközök szükségesek egy ilyen áramkör összeállításához? Ezeket honnan és kb. mennyiért lehet beszerezni, illetve hol találok segítséget. Egyáltalán minden segítséget szívesen fogadok! Kérlek, segítsetek.
(#) Medve válasza sxxavier hozzászólására (») Aug 31, 2007 /
 
Hello, PIC-kel kezdenéd? Szerezz be egy pákát valami műszaki boltból, jó hegyeset és forrasztgassál amig szépen nem megy anélkül, hogy szétégne az alkatrész. Ja és kell ón is 60/40-es pl a vékonyabb fajtából. Meg folyasztószer, csipesz, fogó, oldalcsípő, satu. Szerezz valami rossz panelt abból szedjed ki az alkatrészeket, azokkal játssz...

ui.: A cimben LCD-t emlegettél, itt már LED-et! Ne keverjük!
(#) Medve válasza Medve hozzászólására (») Aug 31, 2007 /
 
De van egy ötletem, javaslatom, lehet hogy hamarabb célhoz érsz, ha a hangszóróval jelzed valahogy ezeket az állapotokat
(#) Doky586 válasza sxxavier hozzászólására (») Aug 31, 2007 /
 
Szerintem egyszerűbb ha nem bonyolítod ennyire.
Írj egy kis programot ami a PC soros vagy párhuzamos portján billegtet egy lábat, erre köss egy soros ellenállást és egy (3mm-es) ledet.
A progit tedd automatikus indulásba (vagy serviceként fusson).
Ha villog a led futnak a gépen programok, ha nem akkor kikapcsolhatod..
(#) sxxavier válasza Doky586 hozzászólására (») Aug 31, 2007 /
 
Próbáltam már a szoftveres hangjelzést, csakhogy nem működött... Pedig három módszert is kipróbáltam. Viszont Doky586 megoldása már érdekesebb!

Az LCD-s bakiért bocsi...
(#) Stadi válasza sxxavier hozzászólására (») Aug 31, 2007 /
 
Én a következőképp oldottam meg ezt a helyzetet: Volt itthon rossz billentyűzet, amiből kiszedtem a vezérlőpanelt (ez egy kicsi NYÁK a procival és 3 LEDdel). A 3 LED-et kiforrasztottam és beraktam a helyükre 3 db. dupla tüskét. A panelt becsavaroztam a gép belsejébe, a dugót pedig kidugtam hátul, és csatlakoztattam a billentyűzet aljzathoz. A panel tüskéire dugtam a ház előlapi LEDjeit. A billentyűzet LEDeket startup/shutdown script kapcsolgatta egy kis segédprogrammal, amit asszem a neten találtam.

A megoldás hátránya, hogy bukod a billentyűzet csatlakoztatási lehetőséget, előnye viszont, hogy minden a gépben lesz, és nem fog lógni rajta semmi pluszban. A hátrány meg nem is akkora hátrány, mivel Linuxot SSH-val remekül lehet menedzselni bármilyen TCP/IP hálózaton keresztül.

Nekem egyébként PVM clusterhez kellett. ELTE Párhuzamos programozás tárgyhoz gyakorlásképpen.
(#) sxxavier válasza Stadi hozzászólására (») Szept 4, 2007 /
 
Na, ez még érdekesebb megoldás! Ezt lehet, hogy kipróbálom... Már csak egy kimustrált AT billentyűzetet kell beszereznem.
(#) Macsek71 válasza sxxavier hozzászólására (») Szept 4, 2007 /
 
Annó úgy próbálkoztuk automatikus kikapcsolássat / win9x+AT gép/, amíg a winyó pörög, relé behúzva tart.
Winfos leáll->winyó kikapcs.-> relé tápot leállít.

indítás : nyomógomb zárja relé helyett a táp körét...

Hátrány power manage nem ajánlott
(#) neogeo2 válasza Macsek71 hozzászólására (») Szept 4, 2007 /
 
És azt honnan tudod, hogy forog-e a vinyó? Egyébként szellemes az 5let
(#) Macsek71 válasza neogeo2 hozzászólására (») Szept 4, 2007 /
 
Vesz fel 12 V áramot ?

YES = forog a motor ....
(#) neogeo2 válasza Macsek71 hozzászólására (») Szept 4, 2007 /
 
Mert amikor a motor nem forog, akkor a 12 voltos csatlakozón egyáltalán nem folyik áram?
(#) neogeo2 hozzászólása Szept 4, 2007 /
 
Ha igy van, akkor leállítás közben folyamatosan világít a hdd ledje. Ha az már nem villog, le leht lőni a gépet
(#) sxxavier válasza neogeo2 hozzászólására (») Szept 8, 2007 /
 
Majdnem megoldottam a problémát billentyűzetes megoldással... Bár a Linux nem adja egykönnyen magát, mégis a $60 protról ár tudom olvasni az értékeket. Írni még nem enged. De hamarosan!

Ha elkészól, akkor bemásolom ide is a forrást. Egyébként: GNU C++ fordítóra készül Ubuntu 7 és Fedore Core 2 rendszerek alatt.
(#) Stadi válasza sxxavier hozzászólására (») Szept 8, 2007 /
 
Nem értem, minek írod meg, mikor már kész van. setleds a neve. Debian-ban a console-tools csomag tartalmazza. Sztem a többi Linuxnál is alaptartozék.
(#) sxxavier válasza Stadi hozzászólására (») Szept 10, 2007 /
 
Azért, mert ha mindig megkeresgetem hozzá a programot, akkor az életbe nem fogok tudni programozni rendesen.

Viszont meg kell tanulnom programozni, tehát választok kicsi feladatokat, és megoldom őket. Jelen pillanatban az a feladat, hogy tudjak ledeket villogtatni.
(#) sxxavier hozzászólása Szept 10, 2007 /
 
El is készült a programocska. Itt az ígért forráskód:

// -----------------------------------------------------------------------------------------------
//
// keyled.c
//
// This program is based on Michael Ringaard's keyboard driver.
//
// -----------------------------------------------------------------------------------------------

#include
#include
#include

// -----------------------------------------------------------------------------------------------
//
// Macros
//
// -----------------------------------------------------------------------------------------------

#define KBD_DATA 0x60 // I/O port for read data from the keyboard
#define KBD_COMMAND 0x64 // I/O port for keyboard commands
#define KBD_STATUS 0x64 // I/O port for read keyboard status

#define CMD_SETLEDS 0xED // Set the keyboard leds

#define KBD_STAT_IBF 0x20 // Keyboard input buffer is full

#define LED_NUMLOCK 2 // Id for num lock
#define LED_SCROLLLOCK 1 // Id for Scroll lock
#define LED_CAPSLOCK 4 // Id for Caps lock

#define KEYBOARD_TIMEOUT 100000 // Keyboard timeout

// -----------------------------------------------------------------------------------------------
//
// Functions
//
// -----------------------------------------------------------------------------------------------

// kbdReady - Wait for ready state of keyboard
void kbdReady() {
int tmo = KEYBOARD_TIMEOUT;

while (inb(KBD_STATUS) & KBD_STAT_IBF) {
if (--tmo == 0) {
std::cout << "Keyboard is busy, timed out.";
return;
}

usleep(1);
}
}

// help - Displays help inforamtions for application
void help() {
using namespace std;

cout << "keyled.bin [--help] [-h]\n [--num] [-n]\n [--caps] [-c]\n [--scroll] [-s]\n\n";
cout << " --help, -h Displays this help.\n";
cout << " --num, -n Sets the \"Num lock\" led.\n";
cout << " --caps, -c Sets the \"Caps lock\" led.\n";
cout << " --scroll, -s Sets the \"Scroll lock\" led.\n";
cout << "\n by Sx Xavier, 2007\n\n";
}

// ------------------------------------------------------------------------------------------------
//
// Main
//
// ------------------------------------------------------------------------------------------------

using namespace std;

int main(int argc, char *argv[]) {

unsigned char ledStatus = 0;


// Reading program parameters except program name
if (argc > 1) {
for (int i=1; i
string arg = argv[i];

if (arg == "--help" | arg == "-h") { help(); return 0; }
else if (arg == "--num" | arg == "-n") ledStatus = ledStatus | LED_NUMLOCK;
else if (arg == "--caps" | arg == "-c") ledStatus = ledStatus | LED_CAPSLOCK;
else if (arg == "--scroll" | arg == "-s") ledStatus = ledStatus | LED_SCROLLLOCK;
else {
std::cout << "Invalid argument: " << argv[i] << "\nTry to use \"keyled.bin -h\"\n";
return 1;
}
}
}

// Getting permission for using I/O ports
ioperm(KBD_DATA, 1, 1);
ioperm(KBD_STATUS, 1, 1);

// Setting the key leds:
std::cout << " Ok.\nSetting the keyboard leds...";
outb(CMD_SETLEDS, KBD_DATA);
kbdReady();
outb(ledStatus, KBD_DATA);
std::cout << " Success.\n";

return 0;
}

Elég egyszerű kis program. A fordításhoz g++ fordító kell. Lehetséges, hogy egyes Linux disztribúcióknak gondja lesz majd az io.h fájllal!>>>>>>>>>>>>>>>>>>>>>>>>
(#) BobThornton válasza sxxavier hozzászólására (») Szept 10, 2007 /
 
Helló!
Van egy kis router-rendszer, kimustrált gépekből lehet szuperül programozható routert bütykölni. Ehhez mindenféle modulok vannak, az egyik pont azt tudja, mint amit te szeretnél: egy kis kapcsolópult, néhány leddel és tudod irányítani az egyébként eldugott, monitor nélküli gépet. A Fli4L oldalon mindent megtudhatsz róla. A modul neve: Cpanel, de linkelem, meg képet az általam megépítettről. Két gomb működik csak, alá van írva, melyik-melyik. A vörös led sajnos kapott egy maflást, kicsit beesett. Amúgy a gép bekapcsolt állapotát mutatja, a zöld meg kialszik, ha nincs hálózati kapcsolat.
Sok sikert!
Bob
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem