تمثيل المسافة باستخدام الاردوينو وواجهة المستخدم الرسومية

مبتدئ

image_pdf

الكود البرمجي

افتح برنامج VIDLE for VPython والصق الكود البرمجي التالي وارفعه على لوحة الاردوينو عن طريق النقر على:

Run -> Run Module

from visual import *
import serial #Serial imported for Serial communication
import time #Required to use delay functions

ArduinoSerial = serial.Serial('com18',9600) #Create Serial port object called arduinoSerialData
time.sleep(2) #wait for 2 secounds for the communication to get established

obj = box(pos=(-5,0,0), size=(0.1,4,4), color=color.white)
wallL = box(pos=(-1,0,0), size=(0.2,12,12), color=color.cyan)
text(text='US sensor', axis=(0,1,0) , pos=(-2,-6,0), depth=-0.3, color=color.cyan)
t = 0
while 1:
rate(100)
t = int (ArduinoSerial.readline()) #read the serial data and print it as line
t= t* 0.05
obj.pos.x = t
print(t)

شرح الكود البرمجي

افتح صفحة جديدة في VIDLE for VPython وقم باستدعاء المكتبات المطلوبة visual تساعدك في انشاء نماذج ثلاثية الأبعاد, serial python لقرءة القيم من لوحة الاردوينو عن طريق المنفذ التسلسلي و time تساعدك في استخدام دوال معينة مثل delay.

from visual import *
import serial #Serial imported for Serial communication
import time #Required to use delay functions

حدد المنفذ COM المستخدم في الاتصال مع الاردوينو.
(هذا سطر قابل للتغيير بناء على نوع المنفذ الذي ستستخدمه في المشروع يمكنك تعيينه عن طريق برنامج اردوينو IDE من قائمة Port).

ArduinoSerial = serial.Serial('com18',9600) #Create Serial port object called arduinoSerialData

بعد ذلك ستتم قراءة المسافة من حساس الموجات فوق البنفسجية وسيتم تمثيل المسافة على الواجهة الرسومية بنماذج ثلاثية الأبعاد على شكل مستطيلين بالألوان والأبعاد المذكورة بالكود البرمجي.

obj = box(pos=(-5,0,0), size=(0.1,4,4), color=color.white)
wallL = box(pos=(-1,0,0), size=(0.2,12,12), color=color.cyan)
text(text='US sensor', axis=(0,1,0) , pos=(-2,-6,0), depth=-0.3, color=color.cyan)
t = 0
while 1:
rate(100)
t = int (ArduinoSerial.readline()) #read the serial data and print it as line
t= t* 0.05
obj.pos.x = t
print(t)

بعد رفع الكود البرمجي سيظهر تمثيل المسافة على شكل مستطيل ثلاثي الأبعاد سماوي ثابت ومستطيل ثلاثي الأبعاد متحرك رمادي.

سيتحرك المستطيل الرمادي بناء على المسافة التي يقرأها من حساس الموجات فوق البنفسجية.

arduino-python-gui-representing-distance

X
Product added to the cart