Programowanie ze sprzętem w Pythonie [zamknięty]

Zaczynam się trochę nudzić programowaniem małych zabawek, które ostatnio robię, i chciałbym rozpocząć programowanie i interakcję ze sprzętem.

Jedyny problem polega na tym, że jestem głównie Pythonem, który tak naprawdę nie nauczył się ani nie używał żadnego innego języka. Czy nadal mogę wchodzić w interakcje ze sprzętem za pomocą Pythona?

Ponadto, z jakim sprzętem mogę współpracować? Naprawdę nie mam rzeczy leżących wokół, które mogę wykorzystać, więc musiałbym kupić zestaw lub coś. Czym są jakieś tanie opcje na to?

Author: Devin Jeanpierre, 2009-05-28

9 answers

Interakcja z portem szeregowym na PC jest dość trywialna i dostępna jest Biblioteka szeregowa Pythona. Robot roomba jest sterowany przez port szeregowy. Prawdopodobnie istnieją inne roboty tam, ale może to być prosty, mały krok, aby cię uruchomić.

Osobiście wiele się nauczyłem kupując programator PIC i wykonując kilka prostych obwodów do lamp błyskowych led. Przejąłem do sterowania tymi zdjęciami przez port szeregowy, a później za pomocą USB (poprzez libusb ). Jest tam większa krzywa uczenia się, ponieważ będziesz musiał zaprogramować zdjęcia w C lub asemblerze, ale możesz osiągnąć całkiem niesamowite wyniki, gdy już opanujesz podstawy. Ostrzegam jednak, że to śliska droga, gdy uświadomisz sobie, ile fajnych gadżetów możesz zbudować: -)

 13
Author: Jon Cage,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-28 09:13:44

Zdecydowanie spójrz na Arduino .

  • konstrukcja sprzętu jest open-source, więc możesz nawet złożyć swój własny, jeśli chcesz
  • płyta zawiera cyfrowe i analogowe wejścia i wyjścia, dzięki czemu łatwo jest szybko migać Diody LED
  • programujesz go w "języku" o nazwie Wiring , który ukrywa wiele złożoności C, które jest zwykle używane na zdjęciach

Po stronie komputera można użyć pySerial do komunikacji z płytą przez USB jak wspomniano powyżej

 11
Author: pufferfish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-24 20:29:46

Nowe urządzenia Raspberry Pi mają dobry zakres I / O, a Python wydaje się być dla nich najczęściej używanym językiem.

 4
Author: Deanna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-10 11:05:51
 3
Author: oscarkuo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-28 08:55:12

Możesz użyć ctypes do łączenia ze sprzętem. Pozwoli Ci to na wywołanie w natywnych bibliotekach, więc możesz go zasadniczo użyć do wszystkiego, co może zrobić C. Jest to oczywiście przy założeniu, że chcesz wchodzić w interakcje ze sprzętem za pośrednictwem KOMPUTERA hosta z Pythonem.

Użyłem ctypes do kilku projektów:

Ogólnie uważam, że jest dość łatwy w użyciu, ale pomogło mi to, że znam już C / C++.

 3
Author: John Montgomery,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-28 10:07:26

Kup zestaw Lego Mindstorm . Język programowania jest łatwy w obsłudze - nie jest Pythonem-ale jest wystarczająco blisko. I są prawdziwymi robotami z prawdziwymi siłownikami i czujnikami.

 2
Author: S.Lott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-28 10:11:07

Wiele pc nadal ma porty parellel, a moduł Pythona istnieje dla interakcji z portem równoległym, choć nie używałem go.

Port równoległy może być najprostszym sposobem na rozpoczęcie sterowania sprzętem, ponieważ można do niego dołączyć najprostszą elektronikę. Wystarczy dioda led, aby od razu uzyskać coś widocznego.

Wtedy, jak wspomina Jon Cage, możesz dostać programator Pic

 2
Author: David Sykes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-28 11:03:08

SNAP Wireless nodes at www.synapse-wireless.com Uruchom podzbiór Pythona o nazwie SNAPpy. Możesz użyć peek() i poke() wbudowanych w języku SNAPpy do interakcji bezpośrednio ze sprzętem wewnątrz chipa (na przykład PWM). SNAPpy ma również wbudowane I2C, SPI i serial, dzięki czemu można kontrolować zewnętrzny sprzęt. Posiada również wbudowane wejścia/Wyjścia niższego poziomu, takie jak readPin() writePin () i readAdc (). Coś w rodzaju zestawu EK2500 może być dobre na początek. Zobacz też użytkownika online forum w forums.synapse-wireless.com

 1
Author: Kevin Banks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-31 22:17:26

Nie jestem pewien, czy ktoś wspomniał o podstawowym znaczku. Ponownie - jest bardzo ograniczony, ale bardzo prosty w obsłudze. Są też inne procesory, które robią, ale jako wprowadzenie-myślę , że to świetne urządzenie.

Arduino też jest dobre, a z tym urządzeniem można pewnie dostać więcej bang for you buck.

Jak wspomniano powyżej, zacząłem od procesorów PIC - które nie są najłatwiejszą rzeczą do pracy początkowo (lub naprawdę kiedykolwiek... haha - jego dyskusyjne), ale mam świetne zrozumienie, jak rzeczy działają w świecie interakcji mikro kontroler / sprzęt.

Powodzenia i jeśli masz jakieś pytania, nie krępuj się pytać!

 0
Author: Robotman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-06 01:35:36