Nowe posty

Autor Wątek: Zaprogramowanie urządzenia  (Przeczytany 4632 razy)

Offline mateo86

  • Users
  • Guru
  • *****
  • Wiadomości: 647
    • Zobacz profil
Zaprogramowanie urządzenia
« dnia: 2009-02-03, 17:17:11 »
Nie wiem czy ten dział, czy może w innych językach powinienem go umieścić, w każdym razie C/C++ najbardziej mi pasuje ;)

Zostałem szczęśliwym posiadaczem kilku niedziałających dysków twardych (głównie uszkodzona elektronika, ale silniczki działają ;P) I przyszedł mi do głowy diabelski pomysł zrobienia z nich jakiegoś dziwacznego urządzenia, którym mógłbym sterować za pomocą komputera. Ostatecznego kształtu jeszcze nie mam, bo wszystko jest w wczesnej fazie wymyślania.

Marzy mi się stworzenie bardzo prostego pojazdu, który by jeździł w przód/tył oraz skręcał. Projekt tego mniej więcej już sobie opracowałem, tylko nie bardzo wiem jak się zabrać do zaprogramowania tego wszystkiego. Lepiej korzystać ze starych portów COM czy lepiej z USB? Z jakich układów korzystać?

Moja prośba jest następująca: Czy ktoś z obecnych forumowiczów zajmuje/zajmował się podobnymi rzeczami, ew. ma jakieś pojęcie o tym, mógł naprowadzić mniej więcej na jakieś materiały, z których można skorzystać przy tworzeniu tego urządzenia. Najlepiej w języku polskim, ale angielskimi też nie pogardzę :)

Będę bardzo wdzięczny za jakieś rady, pomysły cokolwiek, co mogłoby mi w tym pomóc.

Dla formalności tylko dodam że nigdy wcześniej się tym nie zajmowałem i nie bardzo mam pojęcie od czego nawet zacząć.

Pozdrawiam

arctgx

  • Gość
Zaprogramowanie urządzenia
« Odpowiedź #1 dnia: 2009-02-03, 18:19:01 »
Źródła jądra - dokumentacja i sam kod sterowników - zdają się być jednym z miejsc do obowiązkowego przeszukania. W końcu zawarte są w nich sterowniki większości urządzeń.

Offline Robert

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2516
    • Zobacz profil
Zaprogramowanie urządzenia
« Odpowiedź #2 dnia: 2009-02-03, 20:38:33 »
Myślę, że co do układów, to pomocne może być dla Ciebie forum elektroda.pl. Tam również nie brakuje linuksiarzy, na pewno łatwiej będzie złozyć układ elektroniczny tego urządzenia.
Zanim popełnisz grafomaństwo: 1 | 2 | 3
Baza RPM Jak szukać informacji

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2720
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • keybase.io/pkraszewski
Zaprogramowanie urządzenia
« Odpowiedź #3 dnia: 2009-02-03, 20:47:44 »
Po pierwsze primo: Wybor jezyka programowania po stronie komputera to dopiero wisienka na wierzchu tortu. Zamiast C/C++ sugerowalbym cos skryptowego (Python, Ruby).

Najpierw musisz zdecydowac sie na ten typ portu, ktory latwiej ci bedzie "odrutowac" po stronie samochodziku. Jezeli samochodzik ma byc "dumb" (czyli czysto analogowy) to pozostaje port rownolegly sterujacy przez tranzystory bezposrednio silnikami.
* Sterowanie zwyklym silnikiem (2 kable - taki jak np od wentylatora, tzw bezkomutatorowy potrafi krecic tylko w 1 strone) wlacz/wylacz to 1 tranzystor i jedna linia LPT
* Sterowanie zwyklym silnikiem komutatorowym (2 kable - taki jak np od tacki w CD) lewo/wylacz/prawo to 4 tranzystory i 2 linie LPT (H-bridge)
* Sterowanie silnikiem krokowym unipolarnym (ma 5 lub 6 kabli, wystepuje w drukarkach, starszych HDD i bardzo starych FDD do napedu glowic) to 4 tranzystory i 4 linie LPT
* Sterowanie silnikiem krokowym bipolarnym (ma 4 kable, wystepuje w nowszych drukarkach, starszych HDD i FDD do napedu glowic) to 8 tranzystorow i 4 linie LPT (dual H-Bridge)
* Sterowanie silnikiem 3-fazowym (4 kable, naped talerzy HDD/FDD) to 3 tranzystory i 3 linie LPT

Do "miachania" liniami LPT mozesz wykorzystac np "parport", wbudowane w nowe kernele.

Jezeli chcesz zrobic autko bardziej inteligentne, to zapinasz do niego mikrokontroler i zamiast do LPT wpinasz tranzystory do kontrolera - a kontroler podpinasz do PC najwygodniej na poczatek przez COM - to sie najlatwiej oprogramuje po stronie PC.

Najwiekszo frajda bedzie na pewno, jak dodasz jakies czujniki i zrobisz autko autonomiczne (bez komputera nadrzednego) i pobawisz sie w programowanie komputera pokladowego.
Paweł Kraszewski
~Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline mateo86

  • Users
  • Guru
  • *****
  • Wiadomości: 647
    • Zobacz profil
Zaprogramowanie urządzenia
« Odpowiedź #4 dnia: 2009-02-05, 02:43:16 »
Cytat: pkraszewski
Po pierwsze primo: Wybor jezyka programowania po stronie komputera to dopiero wisienka na wierzchu tortu. Zamiast C/C++ sugerowalbym cos skryptowego (Python, Ruby).
Trzeba jeszcze je umieć :) No nic, chyba będę musiał liznąć jeszcze kilka języków...

Cytat: pkraszewski
Najwiekszo frajda bedzie na pewno, jak dodasz jakies czujniki i zrobisz autko autonomiczne (bez komputera nadrzednego) i pobawisz sie w programowanie komputera pokladowego.
Myślałem o tym, ale w pierwszej wersji niech będą tylko te 4 "podstawowe" funkcje.
Jak już się rozkręcę i będę miał sprzęt, fundusze i czas, to wtedy będę tworzył cuda ;P

Dzięki za zainteresowanie, widzę że będę musiał trochę dłużej nad tym posiedzieć niż myślałem...

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2720
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
    • keybase.io/pkraszewski
Zaprogramowanie urządzenia
« Odpowiedź #5 dnia: 2009-02-05, 07:37:59 »
Skrypty zasugerowałem z prostego powodu: przy C/C++ czy innych kompilowanych masz cykl popraw->kompiluj->uruchom->popraw->... Przy skryptach upraszcza się do popraw->uruchom->popraw->...

A może (jak finanse pozwolą) zainteresuj sioę Lego Mindstorms NG? To dopiero zabawa :)

Zdajesz sobie sprawę, że od momentu pierwszego zadziałania sprzętu żona/dziewczyna/kochanka straci cię na kilka miesięcy?
Paweł Kraszewski
~Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline mateo86

  • Users
  • Guru
  • *****
  • Wiadomości: 647
    • Zobacz profil
Zaprogramowanie urządzenia
« Odpowiedź #6 dnia: 2009-02-05, 13:07:17 »
Mniej więcej o 1/3 skraca się ilość etapów na korzyść skryptów... Chyba trochę posiedzę najpierw nad skryptami...

Jak już będę miał potomstwo, to będę mu kupował lego ;P

Przyzwyczai się :)