Prosty system do obsługi monitora dotykowego i 2 drukarek

0

Witam.
W sumie to nie znalazłem odpowiedniego działu na mój temat więc piszę tutaj. Jeśli jednak moderator znajdzie dla niego lepsze miejsce to proszę o przeniesienie.
Potrzebuję pomocy (a bardziej porad i wskazówek) w kwestii programu (systemu) do obsługi 2 drukarek i monitora dotykowego. Z zawodu jestem programistą Pythona i PHP (tworzę i rozwijam systemy CRM oraz ERP) ale tym razem mam trochę inny projekt (nie komercyjny, bez deadline'u itp). Mianowicie potrzebuję stworzyć program obsługiwany poprzez monitor dotykowy i obsługujący 2 drukarki. O ile napisanie samego programu desktopowego w C nie stanowi dla mnie problemu to nie mam pojęcia jaki dobrać do niego system.
W dużym skrócie:

  • Program będzie zainstalowany na dedykowanym sprzęcie do, którego komponenty już mam w większości wybrane (jak najtańsze są potrzebne). Będzie to procesor Intel Celeron 2 rdzeniowy 64bit, bez oddzielnej karty graficznej, 2GB DDR3, dysk HDD jak najmniejszy się uda kupić.
  • Będzie to jedyny program działający na tym komputerze. Ma się włączać bezpośrednio przy starcie systemu i nie powinno być możliwości jego wyłączenia (z wyjątkiem oczywiście wyłączenia całego komputera).
  • Ma nie być możliwości zmiany oprogramowania na dysku (oczywiście zahasłowany bios).

W pierwszej chwili pomyślałem o stworzeniu dedykowanego OSa pod ten projekt ale po wgłębieniu się w temat stwierdziłem, że nie dam rady (musiałbym praktycznie od zera uczyć się assemblera, a na nadmiar wolnego czasu nie cierpię). Potem przyszła myśl stworzenia OSa na gotowym jądrze (może nie koniecznie Linux Kernel ale MINIX?) ale materiałów i tutoriali na ten temat jak na lekarstwo. Na samym końcu pomyślałem o dobraniu jak najmniej zasobożernej distro linuxa (np. MinixOS) i wymuszenie w jakiś sposób ładowania mojego programu bezpośrednio po starcie systemu, bez możliwości podjęcia innych działań na komputerze oprócz oczywiście czynności wykonywanych przez użytkownika w samym programie. To ma niestety ten minus, że słaby sprzęt będzie musiał obsłużyć dodatkowo system operacyjny, który w większości będzie niepotrzebny. Dla tych, którzy nie zrozumieli mojego dosyć długiego i momentami mętnego wywodu mały przykład. Ma to działać na zasadzie kasy fiskalnej w markecie gdy kasjerka sprzedaje towar bez kodu kreskowego (np pieczywo czy owoce) i na monitorku dotykowym wybiera sobie najpierw grupę produktów, potem z tej grupy konkretny produkt i wpisuje ilość. Zastosowanie mojego systemu będzie zdecydowanie inne ale zasada działania podobna.

Prosiłbym o jakieś podpowiedzi bardziej doświadczonych kolegów. Jak byście się zabrali za taki system? Czy któraś z przedstawionych przeze mnie ścieżek myślowych wydaje Wam się słuszna czy jednak zabralibyście się do tego inaczej?

Pozdrawiam i z góry dziękuję za odpowiedzi.

PS. Jeśli chodzi o sterowniki do wspomnianych wyżej urządzeń to nie wiem jeszcze jak to rozwiążę jeśli skłonicie mnie raczej w stronę dedykowanego OSa na gotowym kernelu ale na razie się tym nie przejmuję więc ten wątek możecie pominąć.

0

Nadwyraz kombinujesz.
Właściwie, moim zdaniem, żaden z pomysłów przedstawionych przez ciebie, nie jest dobry.
Do tego co chcesz zrobić wystarczy jakiś linux, bądź windows, to na czym ci wygodniej, program który odpala się przy starcie na full screen.
Nic więcej, nic mniej.
Tworzenie OS bądź modyfikowanie kernela to nie armata na muchę, to debilizm w tym przypadku akurat : P

1

Kombinujesz, że się tak poetycko wyrażę, cholernie za bardzo (pleonazmy 4eva).

(...) Intel Celeron 2 rdzeniowy 64bit, bez oddzielnej karty graficznej, 2GB DDR3, dysk HDD jak najmniejszy się uda kupić.

Takie coś już istnieje, nazywa się Raspberry Pi, a używkę możesz dostać już za stówkę. Popularne rozwiązanie, szeroko dostępne, mały pobór prądu, małe wydzielane ciepła, masa rozszerzeń - poczytaj czy sprawdzi się w Twoim przypadku.

0

Proxima dziękuję bardzo za szybką odpowiedź. Po Twojej odpowiedzi się zastanowiłem, że faktycznie trochę sobie chciałem utrudnić życie. A jakie distro linuxa być polecał? Czy przytoczony przeze mnie MinixOS będzie dobrym rozwiązaniem? Zaleźy mi bardzo aby hardwear był jak najtańszy (ze względu na przyszłe zastosowania musi to być bardzo tani sprzęt, nie chodzi o to, że nie stać mnie na trochę lepszy :)) i dlatego OS musi być bardzo oszczędny.
Pozdrawiam i bardzo dziękuję za Twoją odpowiedź

Edit//
Do Patryk27.
W sumie to nie pomyślałem nawet o zestawach uruchomieniowych. A co byś powiedział o np. Arduino Nano? W przeszłości miałem styczność z AVRami więc sądzę, że łatwiej byłoby mi się odnaleźć na Arduino niż na Raspberry. Ale wtedy byłaby już niestety kompletna lipa ze sterownikami. Chyba, że się mylę? :)
Co do sprzętu to nie może być używany. Musi być nowy (nie moja decyzja). Ale faktycznie jakiś zestaw powinien wyjść taniej bo odpada koszt obudowy, którą planowałem zakupić poziomą (pod monitor).

0

Nie wiem dlaczego wydaje ci się że sprzęt który masz to grat, uciągnie on spokjnie środowisko graficzne + system bez żadnego mulenia.
Co do distro - bierz co chcesz, imo to. ubuntu, debian byłyby ok. Albo i windows, jak ci na nim wygodniej.
Właściwie co do sprzętu to pewnie i Pentium IV z 512 mb ramu by dał radę ;-)
A co do programu, to jako frameworka użyj Qt, będzie najprosciej, i program odpalaj po uruchomieniu systemu w trybie fullscreen.

0

W przeszłości miałem styczność z AVRami więc sądzę, że łatwiej byłoby mi się odnaleźć na Arduino niż na Raspberry

Nie potrafię sobie w tej roli wyobrazić Arduino, tym bardziej Nano - znaaaaacznie za mała moc obliczeniowa. Plus to oprogramowanie tworzyłbyś nie kilkanaście tygodni, a miesięcy ;)

Ale wtedy byłaby już niestety kompletna lipa ze sterownikami.

Bardziej martwiłbym się o ograniczone zasoby pamięciowe; co do sterowników to zawsze możesz przeportować sobie coś z Linuksa.

0
Proxima napisał(a):

Nie wiem dlaczego wydaje ci się że sprzęt który masz to grat, uciągnie on spokjnie środowisko graficzne + system bez żadnego mulenia.
Co do distro - bierz co chcesz, imo to. ubuntu, debian byłyby ok. Albo i windows, jak ci na nim wygodniej.
Właściwie co do sprzętu to pewnie i Pentium IV z 512 mb ramu by dał radę ;-)
A co do programu, to jako frameworka użyj Qt, będzie najprosciej, i program odpalaj po uruchomieniu systemu w trybie fullscreen.

W sumie to nie pomyślałem żeby użyć Pythona chociaż dużo na tym języku pracuję (ale tylko rozwiązania webowe, głównie na Django). Na pewno byłoby to dla mnie łatwiejsze niż C, którego w sumie od studiów nie używałem :).
Windows odpada bo musiałby być oryginalny co podwyższa koszty ale nie mam problemu z Linuxem (pracuję na Ubuntu 14.04). A przy dosyć popularnej distro nie byłoby problemu ze sterownikami i to bez kombinowania z Wine.

Patryk27 napisał(a):

W przeszłości miałem styczność z AVRami więc sądzę, że łatwiej byłoby mi się odnaleźć na Arduino niż na Raspberry

Nie potrafię sobie w tej roli wyobrazić Arduino, tym bardziej Nano - znaaaaacznie za mała moc obliczeniowa. Plus to oprogramowanie tworzyłbyś nie kilkanaście tygodni, a miesięcy ;)

Ale wtedy byłaby już niestety kompletna lipa ze sterownikami.

Bardziej martwiłbym się o ograniczone zasoby pamięciowe; co do sterowników to zawsze możesz przeportować sobie coś z Linuksa.

No to faktycznie Arduino odpada. Raspberry musiałbym się uczyć kompletnie od zera. Chyba w tym momencie raczej skłaniam się ku pomysłowi kolegi Proxima z Linuxem ale dałeś mi do myślenia z tym Raspberry. Trzeba się tym kiedyś zainteresować. Dziękuję Ci bardzo za poświęcony czas :)

0

Pewnie, możesz użyć PyQt, tylko nie wiem jak z ekranem dotykowym, ale na 100% da się zrobić tak zeby był rozpoznawany "jako myszka" + jakaś klawiaturka ekranowa, coś jak w Empiku.
W C się nie baw, tylko się wnerwisz, moja propozycja - Najpierw skonfiguruj sobie PyQt, i spróbuj wydrukować coś z jednej drukarki, potem z dwóch, i tym sposobem to skończ :-)
// edit
Co do raspberry, to tam nie ma za bardzo co się uczyć w tym przypadku, stawiasz Linuxa, podłączasz ekran i drukarki pod usb, i jazda, pomijając zabawy z prockiem to programujesz właściwie tak samo jak pod x86.

0

Raspberry musiałbym się uczyć kompletnie od zera.

Jakie kompletnie od zera? Toż to przecież jest Linux, możesz sobie tam postawić Ubuntu, podpiąć klawiaturę pod USB, monitor pod HDMI (te porty ma out of the box) i programować jak na zwykłym komputerze :P
Jedyne co to architektura nie jest x86, ale zakładając, że korzystałbyś z Pythona bądź czegoś w tym guście, to nawet to nie stanowi bariery.

1

Dziękuję Proxima i Patryk27, w niecałą godzinę rozjaśniliście mi więcej niż 2 dni szukania informacji o pisaniu własnego OSa :) Czeka mnie weekend pełen przemyśleń i testów ale przynajmniej już znam kierunek w jakim powinienem podążać. Pewnie jeszcze nasunie mi się sporo pytań podczas pracy więc byłbym bardzo wdzięczny za zerknięcie raz na jakiś czas na mój temat bo już tutaj będę pisał żeby nie zaśmiecać forum.
PS. Żałuję, że się tu wcześniej nie zarejestrowałem chociaż często bywałem jako gość. Byłem pewny, że na jakąkolwiek sensowną odpowiedź będę czekał przynajmniej do rana (jak na większości for) a tu bardzo miła niespodzianka. :)
Pozdrawiam i życzę Wam miłego wieczoru

0

Jakbyś myślał o normalnym PC to ja jakiś czas temu kupiłem coś takiego http://www.asrock.com/mb/Intel/Q1900B-ITX/ jako HTPC - procek z grafiką onboard, nie potrzebuje wentylatora, dokładasz jedynie zasilacz (są wersje płyty do zasilacza 12V - koszt + ok. 100zł) i pamięć SO-DIMM. Moc ma jak na taki zestaw dość poważną - filmy full hd dekoduje zużywając niecałe 10% mocy. Szukaj pod hasłem J1900 - to model procesora intela

0

Nie zaimponowałeś mi. Chiński OrangePi dekoduje 4k dci, zakodowane kodekien hevc, nie zuzywając wcale mocy procesora. Przy tym kosztuje 15 dolarów i pobiera 3.5W mocy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1