עזרה עם RS232 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

עזרה עם RS232


DaTHE

Recommended Posts

שלום,

אני רוצה לבנות ממשק די פשוט עם התכונה (בשפת C או ASM):

1. אני רוצה שיוצא '1' או 5V באחת מהיציאות בהתאם ללחיצה שלי בממשק

2. אני רוצה שהממשק יהיה דבר פושט ביותר שיופיע לי על השולחן העבודה עם 4 כתפורים בערך, הוצאת '1' ברגל 3 ו- 7, ו- 2 הכפתורים האחרים יראו לי מצב של הכניסות 2 ו- 6 מחיישן מגנטי פשוט ('0' או '1' החיישן מוציא).

אשמח לעזרה עם הממשק...

תודה רבה.

קישור לתוכן
שתף באתרים אחרים

מצאתי כבר תוכנה שעושה זאת: pyserial +python, הבעיה שהתכונה\שפה די חדשה לי (לא מכיר אותה בכלל) ויש לי בעיה עם להגדיר משתנים ותחביר.

לפתוח את הפורט COM1 אני חושב שהצלחתי, עכשיו אני רק צריך לראות איך אני ממשיך הלאה..

קישור לתוכן
שתף באתרים אחרים

בפייתון, בניגוד להרבה שפות אחרות, הרווחים חשובים.

ניסית ללמוד פייתון ממדריך באופן מסודר?

חוץ מזה, באיזו גרסה של פייתון אתה משתמש (2 או 3)? כי יש הבדל ב-print בין הגרסאות, ואם אתה לומד ממדריך כלשהו אז תוודא שהמדריך מתאים לגרסת פייתון שאתה משתמש בה.

קישור לתוכן
שתף באתרים אחרים

אממ, אני התחלתי מפה - http://www.sthurlow.com/python/lesson05/ עם פייתון 2.4.1

אחר- כך (עדיין לא סיימתי את כל השיעורים) עברתי ל- py-serial ונאמר לי שהייתי צריך לשדרג את הגירסא, אז אני עכשיו עם 2.7.1 ואני ממשיך ללמוד מפה - http://pyserial.sourceforge.net/ על הפורט הסריאלי.

הבעיה שאני עובד עם , אז כנראה אין לי תיאום, ולפעמיים הוא מודיע על הרשאות, למרות שאני Administrator.

יש הודעות שהוא מודיע לי שהוא לא מכיר כל מיני פקודות למשל:

miniterm.py -h:

הוא אומר לי:

NameError: name 'miniterm' is not defined

^ זה השגיאות אחרי נפוצות שקרות לי.

הייתי שמח מאור אם היית יכול לעזור לי עם הסקריפט (הבעיה שהסקריפט לא שלי, ואני לא יודע אם אפשרי לכתוב אותו פה).

קישור לתוכן
שתף באתרים אחרים

תראה, ניסתי לפתוח\לדבר עם COM1, והגעתי להאתר הזה - http://bytes.com/topic/python/answers/453772-accessing-windows-serial-port

שם, מישהו נתן בתור דוגמא סקריפט שמתבסס על WEB:

import socket
import sys

import serial

ser = serial.Serial('COM1', 38400, timeout=1)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
while True:
msg = ser.readline()
sock.sendto(msg, ('<broadcast>', 5000))
sys.stdout.write(msg)

והוא מודיע לי את השגיאה הבאה:

Syntax error

There'e an error in your program:

expected an indented block

אז ניסתי אולי בדרך אחרת לדבר איתו והגעתי לפה -

http://pyserial.sourceforge.net/examples.html

ואני מנסה להריץ את הדוגמאות בסביבה המתאמיה ותמיד אני מקבל שגיאות על הדוגמאות האלה, בהתחלה כתוב

"On the typical console window is dumb and does not support any escapes. When ANSI.sys is loaded it supports some escapes"

לא כל-כך הבנתי איך לפרש את זה, יכול להיות שחלונות לא תומכות בפקודות? - לפי הבנתי צריך לטעון קובץ בשם ANSI.sys אבל לא מצאתי אותו.

קישור לתוכן
שתף באתרים אחרים

אם למדת פייתון באופן מסודר אתה אמור לדעת איך למצוא את השגיאה בקוד הזה.

הפקודות שאחרי while True צריכות להיות בהזחה (טאב), כלומר ככה:

import socket
import sys

import serial

ser = serial.Serial('COM1', 38400, timeout=1)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
while True:
msg = ser.readline()
sock.sendto(msg, ('<broadcast>', 5000))
sys.stdout.write(msg)

ולבעיה השנייה יש גוגל:

http://www.google.co.il/search?q=ansi.sys

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...