2009-05-28 6 views
13

में हार्डवेयर के साथ प्रोग्रामिंग मैं हाल ही में बना रहे छोटे खिलौनों के प्रोग्रामिंग से थोड़ा ऊब जाना शुरू कर रहा हूं, और मुझे प्रोग्रामिंग शुरू करना और हार्डवेयर के साथ बातचीत करना अच्छा लगेगा।पाइथन

एकमात्र समस्या यह है कि मैं ज्यादातर पाइथन लड़का हूं जिसने वास्तव में किसी अन्य भाषा को सीखा या उपयोग नहीं किया है। क्या मैं अभी भी पाइथन के साथ हार्डवेयर के साथ बातचीत कर सकता हूं?

इसके अलावा, मैं किस हार्डवेयर से बातचीत कर सकता हूं? मेरे पास वास्तव में सामान नहीं है जो मैं उपयोग कर सकता हूं, इसलिए मुझे एक किट या कुछ खरीदना होगा। इसके लिए कुछ सस्ते विकल्प क्या हैं?

उत्तर

13

एक पीसी पर सीरियल पोर्ट के साथ बातचीत काफी तुच्छ है और वहाँ Python Serial library उपलब्ध है। The roomba robot is controllable via a serial port। वहां शायद अन्य रोबोट हैं, लेकिन यह आपको जाने के लिए एक सरल, छोटा कदम हो सकता है।

व्यक्तिगत रूप से, मैंने a PIC programmer खरीदने और कुछ सरल circuits to flash LEDs खरीदने से बहुत कुछ सीखा। मैं सीरियल पोर्ट के माध्यम से उन पीआईसी को नियंत्रित करने के लिए आगे बढ़ गया और बाद में यूएसबी (libusb के माध्यम से) का उपयोग कर रहा था। वहां एक बड़ा सीखने की वक्र है क्योंकि आपको सी या असेंबलर में पीआईसी प्रोग्राम करना होगा, लेकिन मूल बातें लेने के बाद आप कुछ बहुत ही अविश्वसनीय परिणाम प्राप्त कर सकते हैं। मैं आपको चेतावनी देता हूं कि यह एक फिसलन ढलान है जब आप महसूस कर सकते हैं कि आप कितने शांत छोटे गैजेट बना सकते हैं :-)

+1

pySerial शानदार है (और ताज़ा क्रॉस-प्लेटफॉर्म); मैं फ्लैशिंग और लॉगिंग करने के लिए अपनी कार में ईसीयू (एम्बेडेड ऑन-बोर्ड कंप्यूटर, मूल रूप से; सुपरएच आर्किटेक्चर) के साथ संवाद करने के लिए इसका उपयोग कर रहा हूं, और यह एक चैंप की तरह काम करता है। यदि आप देशी सीरियल पोर्ट के बिना अधिक आधुनिक हार्डवेयर के साथ काम कर रहे हैं, तो एफटीडीआई (http://www.ftdichip.com/) सीरियल-टू-यूएसबी डिवाइस काफी आसान हैं; जबकि आप अभी भी उनसे बात करने के लिए pySerial का उपयोग कर सकते हैं, आप libftdi (http://www.intra2net.com/en/developer/libftdi/) का भी उपयोग कर सकते हैं, जिसका SWIG इंटरफ़ेस कुछ हद तक समृद्ध एपीआई देता है। माइक्रोकंट्रोलर विचार के लिए – esm

+1

+1। यह एक ऐसे माहौल में लोलेवल शुरू करने का एक अच्छा तरीका है जो अभी भी पर्यवेक्षित है। –

+0

आप यूएसबी सीरियल डोंगल और यहां तक ​​कि यूएसबी माइक्रोकंट्रोलर का भी उपयोग कर सकते हैं और अभी भी एसिंक सीरियल (ईआईए 232) पोर्ट के साथ उनसे बात करते रहेंगे। कीबोर्ड एलईडी और मोर्स कोड आइडिया के लिए – XTL

3

कोशिश BugLab या OpenMoko

+1

"इसके लिए कुछ सस्ते विकल्प क्या हैं?" एक फोन ख़रीदना सस्ता नहीं है –

3

आप हार्डवेयर के साथ इंटरफेसिंग के लिए ctypes का उपयोग कर सकते हैं। यह आपको देशी पुस्तकालयों में कॉल करने देगा, ताकि आप अनिवार्य रूप से ऐसा कुछ भी करने के लिए कर सकें जो सी कर सकता है। यह निश्चित रूप से माना जाता है कि आप अपने मेजबान कंप्यूटर के माध्यम से पाइथन चलाने के माध्यम से हार्डवेयर से बातचीत करना चाहते हैं।

मैं परियोजनाओं के एक जोड़े के लिए ctypes का उपयोग किया है:

के लिए यूएसबी/HID उपयोगकर्ता के भूमि ड्राइवर बनाना मैंने पाया यह आम तौर पर बहुत आसान उपयोग करने के लिए , लेकिन इससे मदद मिली कि मैं पहले ही सी/सी ++ जानता था।

+0

+1! –

2

लेगो Mindstorm किट खरीदें। प्रोग्रामिंग भाषा के साथ रहने के लिए आसान है - यह पायथन नहीं है - लेकिन यह काफी करीब है। और वे वास्तविक actuators और सेंसर के साथ असली रोबोट हैं।

+1

"सस्ता विकल्प" अनुमानित रूप से सापेक्ष है :) – XTL

11

निश्चित रूप सेदेखें।

  • हार्डवेयर डिजाइन खुला स्रोत तो आप भी अपने खुद के इकट्ठा सकता है अगर आप चाहते थे है
  • तो यह कुछ एल ई डी जल्दी से चमकती
  • प्राप्त करने के लिए आप इसे कार्यक्रम आसान है बोर्ड डिजिटल और एनालॉग इनपुट और आउटपुट शामिल एक 'भाषा' Wiring कहा जाता है जो सी की जटिलताओं को जो आम तौर पर PICs

पीसी तरफ पर प्रयोग किया जाता है की एक बहुत कुछ छुपाता में, आप तो के रूप में

ऊपर उल्लेख किया USB पर बोर्ड के साथ संवाद करने pySerial इस्तेमाल कर सकते हैं
+0

+1: Arduino के उल्लेख के लिए। मैं पहले नाम के बारे में सोचने की कोशिश कर रहा था और इसे याद नहीं कर सका। मैंने अक्सर एक के साथ जाने के विचार के साथ खिलवाड़ किया है :-) –

2

कई पीसी के पास अभी भी पेरेलेल बंदरगाह हैं, और एक पाइथन मॉड्यूल interacting with the parallel port के लिए मौजूद है, हालांकि मैंने इसका उपयोग नहीं किया है।

समांतर बंदरगाह हार्डवेयर को नियंत्रित करने का सबसे आसान तरीका हो सकता है, क्योंकि आप इलेक्ट्रॉनिक्स के सबसे सरल को संलग्न कर सकते हैं। सिर्फ एक नेतृत्व आपको सीधे कुछ दिखाई देगा।

फिर, जॉन केज उल्लेख के रूप में, आप एक Pic programmer

+0

+1: आप सही हैं, समांतर बंदरगाह शुरू करने के लिए शायद आसान है। –

+0

मैंने इसका इस्तेमाल किया है। एक बंदरगाह को अधिभारित न करने के लिए सावधान रहें जो प्रतिस्थापित करना मुश्किल है। इसके अलावा, यूएसबी समांतर बंदरगाह अक्सर नहीं हैं। वे समांतर बंदरगाह प्रिंटर ड्राइव करने के लिए हार्डकोडेड हैं। – XTL

1

www.synapse-wireless.com एटी SNAP वायरलेस नोड्स मिल सकता है अजगर के एक सबसेट चलाने तेज़ कहा जाता है। चिप के अंदर हार्डवेयर (उदाहरण के लिए पीडब्ल्यूएम) के साथ सीधे बातचीत करने के लिए आप एसएनएपीपी भाषा में peek() और poke() बिल्ट-इन्स का उपयोग कर सकते हैं। एसएनएपीपीआई में आई 2 सी, एसपीआई और सीरियल के लिए भी अंतर्निहित है, ताकि आप बाहरी हार्डवेयर को नियंत्रित कर सकें। इसमें निम्न स्तर I/O के लिए भी अंतर्निहित है, जैसे readPin() writePin() और readAdc()। एक ईके 2500 किट की तरह कुछ शुरू करने के लिए अच्छा हो सकता है। Forums.synapse-wireless.com पर ऑनलाइन उपयोगकर्ता मंच भी देखें

+0

केवल कीमत मैंने पाया: $ 180। ओच, यहां तक ​​कि एक devkit के लिए भी। – XTL

0

मुझे यकीन नहीं है कि किसी ने मूलभूत डाक टिकट का उल्लेख किया है। दोबारा - यह बहुत सीमित है, लेकिन इसके साथ काम करना शुरू करने के लिए इसके सुपर सरल है। वहां कुछ अन्य प्रोसेसर हैं जो वे भी करते हैं, लेकिन एक प्रारंभिक के रूप में - मुझे लगता है कि यह एक महान डिवाइस है।

Arduino भी एक अच्छा है, और आप शायद उस डिवाइस के साथ अपने लिए अधिक धमाकेदार हो सकते हैं।

जैसा ऊपर बताया गया है, मुझे पीआईसी प्रोसेसर पर अपनी शुरुआत मिली - जो शुरुआत में (या वास्तव में कभी ... हाहा - बहस करने योग्य) के साथ काम करने की सबसे आसान बात नहीं है, लेकिन मुझे समझ में आया कि चीजें कैसे काम करती हैं माइक्रो नियंत्रक/हार्डवेयर बातचीत की दुनिया।

शुभकामनाएं & यदि आपके कोई प्रश्न हैं, तो बेझिझक पूछें!

+0

मैंने साल पहले बेसिक स्टैम्प पर भी शुरुआत की थी, लेकिन मुझे लगता है कि यह आधुनिक माइक्रोक्रोनरोलर क्या कर सकता है इसका एक खराब प्रतिनिधित्व कर सकता है। उल्लेख नहीं है कि किट कितनी हास्यास्पद रूप से महंगा है! –

4

नया Raspberry Pi डिवाइसों की I/O की अच्छी श्रृंखला है और पायथन उनके लिए सबसे अधिक उपयोग की जाने वाली भाषा प्रतीत होता है।