|
شبكة
ومنتديات خط الطيران - نسخة خفيفة من المنتدى
|
(يمكن لكم التسجيل مباشرة في المنتدى للمشاركة والتعقيب على الموضوعات المطروحة)
|
مشاهدة النسخة كاملة : مشروع تصميم جهاز تحكم عن بعد للانظمة غير المأهولة
محمدالامين 20-10-2009, 08:54 PM بسم الله الرحمن الرحيم
السلام عليكم
انا اخوكم محمد الامين
وحابب اتشارك معكم فى دائرة الكترونية قمت بتصميمها قبل شهور
وهى عبارة عن wireless Real time control system
10 قنوات 6 سيرفو و 2 اكتشويترز و 2 bus switches
*http://2.bp.blogspot.com/_oiccDSAEaj0/SZUkMKymMtI/AAAAAAAAAC8/PfPRf3zwYf4/s320/P1010321.JPG
الهدف من هذا المشروع هو تصميم نظام تحكم عن بعد بسيط وفعال وقابل لتشغيل مختلف تطبيقات قيادة الانظمة غير المهأهولة سواء كانت روبوتات او قوارب مراقبة او الطارات بدون طيار
http://2.bp.blogspot.com/_oiccDSAEaj0/SZUmmKZS0CI/AAAAAAAAADM/mWdAme0FIHg/s320/simple-samrabii.bmp
http://2.bp.blogspot.com/_oiccDSAEaj0/SZV7_M2WmaI/AAAAAAAAADk/-xHx9bpoSoE/s320/P1010354.JPG]
ينقسم النظام الى وحدتين اساسيتين هما
1- الكمبيوتر الرئيسى (وحدة القيادة)
:joystick:
وهى مكونة من عصى تحكم من نوع اتاك3 (معدلة ) و وحدة معالجة الاوامر وهى فى الاساس تتكون من المتحكم الدقيق pic18f4550 ووحدة ادارة الطاقة وشاشة صغيرة
يمكن ظبط وبرمجة الكمبيوتر على حسب متطلبات النظام مثل تحديد سرعة السيرفوهات واتجاهاتها واقصى زواية
http://4.bp.blogspot.com/_oiccDSAEaj0/SZUpmCzs3WI/AAAAAAAAADc/vokggIsVZlE/s320/P1010350.JPG
http://1.bp.blogspot.com/_oiccDSAEaj0/SZUoZn1TAfI/AAAAAAAAADU/OFt-PtZP_V4/s320/P1010417.JPG
يتميز هذه النظام عن غيرة من الانظمة اللاسلكية بعدم السماح للاشارات التى تعمل على نفس التردد بالتداخل وايضا بخوارزميات اضافية تجعل المعالج ينفز اوامر خاصة عند انقطاع الاشارة
مثل فتح المظلة فى حال الطائرات بدون طيار و اغلاق المحرك فى حالة الروبوتات والقوارب اللاسلكية لتجنب عملية الخروج عن السيطرة
http://3.bp.blogspot.com/_oiccDSAEaj0/SZV-H4OofII/AAAAAAAAAD8/tgWHW_mHqoQ/s320/P1010289.JPG
صورة تصميم اللوحة الالكترونية لوحدة القيادة
2- وحدة التحكم المدمج
وهى عبارة عن دائرة الكتروينة تثبت على الروبوت او على الطائرة ومهمتها استقبال الاشارة اللاسلكية المرسلة عن طريق وحدة القيادة وتحليلها وتنفيز الاوامر مثل تحريك السيرفوهات او الالكتشويترز او غيرها من الانظمة الالكتروميكانيكية
يوجد المزيد من الصور سوف اقوم برفها قريبا
==============================
مواصفات النظام
1- تردد العمل 433.525 بقدرة 13 ملى واط نطاق التغطية 1 كيلو ميتر mono dipole
5 كيلو ميتر with yagi antenna
2- نمط التعديل هو الاغلاق بازاحة التردد
3- استهلاك الطاقة 100 ملى امبير بالنسبلة لوحدة القيادة او 30 -400 ملى امبير بالنسبة لوحدة التحكم المدمج
4- التاخير الزمنى بين عضى التحكم وتنفيز الامر 1 ملى ثانية (تقريبا لايوجد تاخير)
تقبلوا تحياتى اخوكم محمد الامين
sskk77 21-10-2009, 09:16 AM ممتاز أخي
شيئ رائع بالفعل
لكن ممكن تقول لي الدارة انت قد استخدمت فيها سبيد كونترول جاهز ام صممته ايضاً
لكني استغرب من انك تقول 13 ملي واط يصل الى 1 كم
مع العلم انه لدي دارة ارسال 1 واط وصل مداها الى 600 متر تقريباً
شيئ آخر الصور لم تظهر
محمدالامين 21-10-2009, 01:22 PM اولا احب اشكرك على ردك اخوى
sskk77
ممتاز أخي
شيئ رائع بالفعل
لكن ممكن تقول لي الدارة انت قد استخدمت فيها سبيد كونترول جاهز ام صممته ايضاً
لكني استغرب من انك تقول 13 ملي واط يصل الى 1 كم
مع العلم انه لدي دارة ارسال 1 واط وصل مداها الى 600 متر تقريباً
شيئ آخر الصور لم تظهر
بالنسبة للاسبيد كنترولر فهو لايختلف عن السيرفو فى بروتوكول التحكم بمعنى انك يمكن اضافت سبيد كنترولر فى اى قناة من قنوات السيرفو السته يتناسب مع مواصفات الموتور المستخدم
لم اصمم built in ESC
----------------------------------------------------
فيما يتعلق بدائرة الارسال والمدى فهو يختلف بالطبع من دائرة الى اخرى وتوجد عوامل كثيرة تتحكم فى نطاق الارسال مثل نوع الهوائى المستخدم ونوع القناة المستخدمة ومعدل الضجيج فى القناة ونوع التعديل المستخدم وكفاءة الهاردوير فى حد ذاتها ونوع البيانات المرسلة
-----------------------------------------------------
انا مستخدم
digital data transmitter module
13mW
FSK modulation
433 / 343 mhz
المدى المكتوب فى الداتا شيت
1000متر لاين اوف سايت
انا استقبل اشارة حتى 1300 متر لاين اوف سايت بهوائى من نوع مونو دايبول
-------------------------------------------------
فى نفس الوقت اذا كان عندك فيديو ترانسميتر
500mW بتجد انو المدى مابيتعدى ال 300 متر تقريبا
وذلك لاسباب كثيرة واهما مايعرف بمعدل الضجيج بالنسبة للاشارة المرسلة signal to noise ratio
--------------------------------------------------
نفس الامر ينطبق على مايعرف باشارة ال
fm/ppm
وهى مستخدمة فى كثير من اجهزة الارسال للهواء
بتجد قدرة الارسال تتراوح بين
600mW و 1.5mW
والمدى يتراوح بين 400 متر الى 900 متر
وسهل جدا تعمل jamming للاشارة اذا استخدمت نفس التردد
----------------------------------------------------
بالنسبة للصور فسوف اعيد رفعها على سيرفر اخر
http://www.qatarspeed.com/up/out.php/i6687_P1010409.JPG
صورة العينة الاولية للنظام
----------------------------
http://www.qatarspeed.com/up/out.php/i6691_P1010344.JPG
الكمبيوتر الرئيسى اثناء الاختبار
------------------------
http://www.qatarspeed.com/up/out.php/i6689_P1010302.JPG
اللوحة الالكترونية للكمبيوتر الرئيسى
-------------------------
http://www.qatarspeed.com/up/out.php/i6688_P1010406.JPG
وحدة التحكم المدمج
http://www.qatarspeed.com/up/out.php/i6690_P1010456.JPG
شكل جهاز التحكم
sskk77 21-10-2009, 02:03 PM اولا احب اشكرك على ردك اخوى
sskk77
بالنسبة للاسبيد كنترولر فهو لايختلف عن السيرفو فى بروتوكول التحكم بمعنى انك يمكن اضافت سبيد كنترولر فى اى قناة من قنوات السيرفو السته يتناسب مع مواصفات الموتور المستخدم
لم اصمم built in ESC
----------------------------------------------------
فيما يتعلق بدائرة الارسال والمدى فهو يختلف بالطبع من دائرة الى اخرى وتوجد عوامل كثيرة تتحكم فى نطاق الارسال مثل نوع الهوائى المستخدم ونوع القناة المستخدمة ومعدل الضجيج فى القناة ونوع التعديل المستخدم وكفاءة الهاردوير فى حد ذاتها ونوع البيانات المرسلة
-----------------------------------------------------
انا مستخدم
digital data transmitter module
13mW
FSK modulation
433 / 343 mhz
المدى المكتوب فى الداتا شيت
1000متر لاين اوف سايت
انا استقبل اشارة حتى 1300 متر لاين اوف سايت بهوائى من نوع مونو دايبول
-------------------------------------------------
فى نفس الوقت اذا كان عندك فيديو ترانسميتر
500mW بتجد انو المدى مابيتعدى ال 300 متر تقريبا
وذلك لاسباب كثيرة واهما مايعرف بمعدل الضجيج بالنسبة للاشارة المرسلة signal to noise ratio
--------------------------------------------------
نفس الامر ينطبق على مايعرف باشارة ال
fm/ppm
وهى مستخدمة فى كثير من اجهزة الارسال للهواء
بتجد قدرة الارسال تتراوح بين
600mW و 1.5mW
والمدى يتراوح بين 400 متر الى 900 متر
وسهل جدا تعمل jamming للاشارة اذا استخدمت نفس التردد
----------------------------------------------------
بالنسبة للصور فسوف اعيد رفعها على سيرفر اخر
http://www.qatarspeed.com/up/out.php/i6687_P1010409.JPG
صورة العينة الاولية للنظام
----------------------------
http://www.qatarspeed.com/up/out.php/i6691_P1010344.JPG
الكمبيوتر الرئيسى اثناء الاختبار
------------------------
http://www.qatarspeed.com/up/out.php/i6689_P1010302.JPG
اللوحة الالكترونية للكمبيوتر الرئيسى
-------------------------
http://www.qatarspeed.com/up/out.php/i6688_P1010406.JPG
وحدة التحكم المدمج
http://www.qatarspeed.com/up/out.php/i6690_P1010456.JPG
شكل جهاز التحكم
طيب أخي ممكن تساعدني بالتحكم بالسبيد كونترول
اقصد عن الاشارة المطبقة على المدخل للتحكم بالسبيد كنترول
علماً أن قد جربت دارة تعمل مع السيرفو بشكل جيد لكنها لم تعمل مع السبيد كونترول
واذا ممكن تضع الكود الخاص بالمعالج في دارتك
لأني قد صممت دارة لريموت وقد عملت جيداً مع السيرفوات لكنها لم تعمل مع السبيد كونترول
ولك فائق الاحترام والتقدير
سيف العراق 21-10-2009, 02:23 PM اخي العزيز ... فكرة رائعة ومميزة بس ممكن تعطينا التصميم او المواد التي تستخدم في صنع الدارة.
وشكرا
سامر الشعيري 21-10-2009, 03:50 PM الصور لا تظهر عندي ومشكورررررررررررر
محمدالامين 21-10-2009, 05:26 PM طيب أخي ممكن تساعدني بالتحكم بالسبيد كونترول
اقصد عن الاشارة المطبقة على المدخل للتحكم بالسبيد كنترول
علماً أن قد جربت دارة تعمل مع السيرفو بشكل جيد لكنها لم تعمل مع السبيد كونترول
واذا ممكن تضع الكود الخاص بالمعالج في دارتك
لأني قد صممت دارة لريموت وقد عملت جيداً مع السيرفوات لكنها لم تعمل مع السبيد كونترول
ولك فائق الاحترام والتقدير
مانوع الاسبيد كنترولر الزى تستخدمة ؟؟
مانوع المايكروكنترولر الذى تجيد التعامل معة ؟
هل عندما صممت الدائرة كانت السيرفوهات ثابتة فى الحركة ام مهتزة ؟
لان معظم الاسبيد كنترولر ماتقبل الاشارة الغير ثابتة وماتشتغل اذا كانت اشارة التحكم لها عرض نبضة اكبر من 1 ملى ثانية عند بداء التشغيل باعتبار ان عصى الثروتيل مرفوعة :joystick:
الكود التالى هو كود لقيادة 8 سيرفوهات عن طريق المعالج pic16f77a
يستم استقبال القيم عن طريق منفز ار اس 232 للمايكرو
الكود مكتوب بلغة البيك بيزك برو
دا تقريبا اول كود اكتبه متعلق بقيادة السيرفوهات
'************************************************* ***************
'* Name : UNTITLED.BAS *
'* Author : [eng . Mohammad Alamin Ali] *
'* Notice : Copyright (c) 2008 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 1/23/2008 *
'* Version : 1.0 *
'* Notes : *
'* : *
'************************************************* ***************
define osc 12
include "modedefs.bas"
value var byte
angle var byte
d var byte [16]
trisd = $00
' INTCON = %00100001
' OPTION_REG = %11100000
' TMR0 = 0
' on interrupt goto ISR
' INTCON = %11000000
main:
serin2 portc.1 , 84 , [WAIT($A6 ,$41), str d\16 ]
' if d[0] = $C6 then
portd = d[9]
'servo1:
if d[1] > 127 then
angle = d[1] - 128
high portb.0
pauseus 1500 + angle*4
low portb.0
endif
if d[1] < 128 then
angle = 127 - d[1]
high portb.0
pauseus 1500 - angle * 4
low portb.0
endif
''''''''''''''''servo2
'servo2:
if d[2] > 127 then
angle = d[2] - 128
high portb.1
pauseus 1500 + angle*4
low portb.1
endif
if d[2] < 128 then
angle = 127 - d[2]
high portb.1
pauseus 1500 - angle * 4
low portb.1
endif
''''''''''''''''servo3
'servo3:
if d[3] > 127 then
angle = d[3] - 128
high portb.2
pauseus 1500 + angle*4
low portb.2
endif
if d[3] < 128 then
angle = 127 - d[3]
high portb.2
pauseus 1500 - angle * 4
low portb.2
endif
''''''''''''''''servo4
'servo4:
if d[4] > 127 then
angle = d[4] - 128
high portb.3
pauseus 1500 + angle*4
low portb.3
endif
if d[4] < 128 then
angle = 127 - d[4]
high portb.3
pauseus 1500 - angle * 4
low portb.3
endif
''''''''''''''''servo5
'servo5:
if d[5] > 127 then
angle = d[5] - 128
high portb.4
pauseus 1500 + angle*4
low portb.4
endif
if d[5] < 128 then
angle = 127 - d[5]
high portb.4
pauseus 1500 - angle * 4
low portb.4
endif
''''''''''''''''servo6
'servo6:
if d[6] > 127 then
angle = d[6] - 128
high portb.5
pauseus 1500 + angle*4
low portb.5
endif
if d[6] < 128 then
angle = 127 - d[6]
high portb.5
pauseus 1500 - angle * 4
low portb.5
endif
''''''''''''''''servo7
'servo7:
if d[7] > 127 then
angle = d[7] - 128
high portb.6
pauseus 1500 + angle*4
low portb.6
endif
if d[7] < 128 then
angle = 127 - d[7]
high portb.6
pauseus 1500 - angle * 4
low portb.6
endif
''''''''''''''''servo8
'servo8:
if d[8] > 127 then
angle = d[8] - 128
high portb.7
pauseus 1500 + angle*4
low portb.7
endif
if d[8] < 128 then
angle = 127 - d[8]
high portb.7
pauseus 1500 - angle * 4
low portb.7
endif
goto main
الدائرة الالكترونية موجودة فى مدونتى
هنا
http://ec23.blogspot.com/2009/01/blog-post.html
ممكن تقولوا لى ايه الحل فى مشكلة رفع الصور فى المنتدى :violent6::qust:
abu_abdalah 21-10-2009, 05:28 PM ممكن تقولوا لى ايه الحل فى مشكلة رفع الصور فى المنتدى :violent6::qust:
خربان مركز رفع الصور في هذا المنتدى .
استخدم اي واحد اخر .
تمنياتي لكم بالتوفيق والنجاح
سيف العراق 21-10-2009, 06:42 PM شكرا يا اخي على الاجابة السريعة .....
اتمنى منك المزيد......
mohammed hassan 21-10-2009, 08:54 PM ما شاء الله عليك يا اخى و الله الفكره حلوه بس لو تفسر لنا اكثر فى الدائره و تتعمق اكثر فى الموضوع و تشرح طريقه البناءخطوه خطوه يكون لك جزيل الشكر
ramy807 21-10-2009, 09:32 PM والله الفكرة اكتر من رائعة لكن لو سمحت يا اخي تشرحها بطرقة مفصلة ويعني ياريت لو خطوة خطوة
الله يبارك فيك
محمدالامين 21-10-2009, 09:44 PM ان شاء الله سوف اجهز شرح وافى للمشروع خطوة خطوة واوضح كفية العمل وارفع الملف فى المنتدى قريبا
هل الصور ظاهرة ؟
abu_abdalah 21-10-2009, 10:14 PM ان شاء الله سوف اجهز شرح وافى للمشروع خطوة خطوة واوضح كفية العمل وارفع الملف فى المنتدى قريبا
هل الصور ظاهرة ؟
اتمنى لك التوفيق اخوي ...
الصور التي في المشاركه رقم 3 غير ظاهرة .
تمنياتي لكم بالتوفيق والنجاح
sskk77 22-10-2009, 09:14 AM مانوع الاسبيد كنترولر الزى تستخدمة ؟؟
مانوع المايكروكنترولر الذى تجيد التعامل معة ؟
هل عندما صممت الدائرة كانت السيرفوهات ثابتة فى الحركة ام مهتزة ؟
لان معظم الاسبيد كنترولر ماتقبل الاشارة الغير ثابتة وماتشتغل اذا كانت اشارة التحكم لها عرض نبضة اكبر من 1 ملى ثانية عند بداء التشغيل باعتبار ان عصى الثروتيل مرفوعة :joystick:
الكود التالى هو كود لقيادة 8 سيرفوهات عن طريق المعالج pic16f77a
يستم استقبال القيم عن طريق منفز ار اس 232 للمايكرو
الكود مكتوب بلغة البيك بيزك برو
دا تقريبا اول كود اكتبه متعلق بقيادة السيرفوهات
'************************************************* ***************
'* Name : UNTITLED.BAS *
'* Author : [eng . Mohammad Alamin Ali] *
'* Notice : Copyright (c) 2008 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 1/23/2008 *
'* Version : 1.0 *
'* Notes : *
'* : *
'************************************************* ***************
define osc 12
include "modedefs.bas"
value var byte
angle var byte
d var byte [16]
trisd = $00
' INTCON = %00100001
' OPTION_REG = %11100000
' TMR0 = 0
' on interrupt goto ISR
' INTCON = %11000000
main:
serin2 portc.1 , 84 , [WAIT($A6 ,$41), str d\16 ]
' if d[0] = $C6 then
portd = d[9]
'servo1:
if d[1] > 127 then
angle = d[1] - 128
high portb.0
pauseus 1500 + angle*4
low portb.0
endif
if d[1] < 128 then
angle = 127 - d[1]
high portb.0
pauseus 1500 - angle * 4
low portb.0
endif
''''''''''''''''servo2
'servo2:
if d[2] > 127 then
angle = d[2] - 128
high portb.1
pauseus 1500 + angle*4
low portb.1
endif
if d[2] < 128 then
angle = 127 - d[2]
high portb.1
pauseus 1500 - angle * 4
low portb.1
endif
''''''''''''''''servo3
'servo3:
if d[3] > 127 then
angle = d[3] - 128
high portb.2
pauseus 1500 + angle*4
low portb.2
endif
if d[3] < 128 then
angle = 127 - d[3]
high portb.2
pauseus 1500 - angle * 4
low portb.2
endif
''''''''''''''''servo4
'servo4:
if d[4] > 127 then
angle = d[4] - 128
high portb.3
pauseus 1500 + angle*4
low portb.3
endif
if d[4] < 128 then
angle = 127 - d[4]
high portb.3
pauseus 1500 - angle * 4
low portb.3
endif
''''''''''''''''servo5
'servo5:
if d[5] > 127 then
angle = d[5] - 128
high portb.4
pauseus 1500 + angle*4
low portb.4
endif
if d[5] < 128 then
angle = 127 - d[5]
high portb.4
pauseus 1500 - angle * 4
low portb.4
endif
''''''''''''''''servo6
'servo6:
if d[6] > 127 then
angle = d[6] - 128
high portb.5
pauseus 1500 + angle*4
low portb.5
endif
if d[6] < 128 then
angle = 127 - d[6]
high portb.5
pauseus 1500 - angle * 4
low portb.5
endif
''''''''''''''''servo7
'servo7:
if d[7] > 127 then
angle = d[7] - 128
high portb.6
pauseus 1500 + angle*4
low portb.6
endif
if d[7] < 128 then
angle = 127 - d[7]
high portb.6
pauseus 1500 - angle * 4
low portb.6
endif
''''''''''''''''servo8
'servo8:
if d[8] > 127 then
angle = d[8] - 128
high portb.7
pauseus 1500 + angle*4
low portb.7
endif
if d[8] < 128 then
angle = 127 - d[8]
high portb.7
pauseus 1500 - angle * 4
low portb.7
endif
goto main
الدائرة الالكترونية موجودة فى مدونتى
هنا
http://ec23.blogspot.com/2009/01/blog-post.html
ممكن تقولوا لى ايه الحل فى مشكلة رفع الصور فى المنتدى :violent6::qust:
مشكور أخي الغالي
جزاك الله خيراً ووفقك لكل خير
افضل واجيد التعامل PIC عامة
لكن ممكن الكود بالاسمبلي ان سمحت
واذا سمحت ممكن شرح للاشارة الخاصة بذلك هل هي مجرد نبضات 1 ميكرو فقط دون تمهيد للاقلاع بالمحرك
والواحد ميكرو هل هو طول النبضة ON ام هو ON مع OFF
وهل يوجد نسبة خطأ مسموحة
من هذه الصورة ممكن توضح كم يجب ان يكون الزمن من A-B ومن A-C بالنسبة للرسم الأول الذي يمثل السرعة الدنيا والثاني الذي يمثل السرعة القصوى
http://dc128.4shared.com/img/142624872/5cec2af9/2007-10-15-PWM3.jpg (http://www.4shared.com/file/142624872/5cec2af9/2007-10-15-PWM3.html)
الف شكر مرة أخرى
محمدالامين 22-10-2009, 04:20 PM الاشارة لها اقل قيمة تساوى 1 ملى ثانية (ليس مايكرو) واعلى قيمة تكون 2 ملى ثانية حتى تستطيع التحكم بالسيرفوا و الاسبيد كترولر
بالنسبة للسيرفو 1.5 هى نقطة المنتصف 2 ملى ثانية اعلى قيمة للزاوية و 1ملى ثانية هى اعلى قيمة للزاوية فى الاتجاة المعاكس
بالنسبة للسبيد كنترولر 1 ملى ثانية يكون الموتور لايعمل وتزيد سرعة الموتور بزيادة عرض النبضة حتى تصل الى 2 ملى ثانية تكون اقصى سرعة
ملحوظة مهمة عند استخدام اسبيد كنترولر لازم تبداء الاشارة عند التشغيل من 1m sec عدى ذلك لن يشتغل
هذه العملية للحماية معظم الاسبيد كنترولر تعمل بنفس المبداء
-----------------------------------
يتم حساب الجزء مرتفع الجهد من النبضة الجزء كما فى الرسم من A to B هو المهم
الجزء BC ليس حساس يمكن ان يكون اى قيمة حسب تجربتى
-----------------------------------
بالنسبة للاخطاء اذا كانت مسموحة ام لا (سوف تلاحظ ذلك فى حركة السيرفو )
اذا لم يكن الاداء ثابت وسريع معناها فى عدم استقرار فى الاشارة
------------------------------------
اذا كانت الاشارة لها عرض نبضة اكبر من 2 ملى ثانية سوف يتحرك السيرفوو الى اقل زاوية كما لو كانت الاشارة تساوى 1 ملى ثانية
------------------------------------
تردد الاشارة يفضل ان يكون 50 هيرتز يجب ان تعيد الاشارة نفسها كل 18 ملى ثانية
-----------------------------------
حسب ماطلبت هذا هو كود الاسمبلى
PM_USED EQU 1
INCLUDE "16F84A.INC"
; Define statements.
#define osc 12
RAM_START EQU 0000Ch
RAM_END EQU 0004Fh
RAM_BANKS EQU 00001h
BANK0_START EQU 0000Ch
BANK0_END EQU 0004Fh
EEPROM_START EQU 02100h
EEPROM_END EQU 0213Fh
R0 EQU RAM_START + 000h
R1 EQU RAM_START + 002h
R2 EQU RAM_START + 004h
R3 EQU RAM_START + 006h
R4 EQU RAM_START + 008h
R5 EQU RAM_START + 00Ah
R6 EQU RAM_START + 00Ch
R7 EQU RAM_START + 00Eh
R8 EQU RAM_START + 010h
T1 EQU RAM_START + 012h
FLAGS EQU RAM_START + 014h
GOP EQU RAM_START + 015h
RM1 EQU RAM_START + 016h
RM2 EQU RAM_START + 017h
RR1 EQU RAM_START + 018h
RR2 EQU RAM_START + 019h
_d EQU RAM_START + 01Ah
_angle EQU RAM_START + 02Ah
_value EQU RAM_START + 02Bh
_PORTL EQU PORTB
_PORTH EQU PORTA
_TRISL EQU TRISB
_TRISH EQU TRISA
#define _PORTC_1 PORTC, 001h
#define _PORTB_0 PORTB, 000h
#define _PORTB_1 PORTB, 001h
#define _PORTB_2 PORTB, 002h
#define _PORTB_3 PORTB, 003h
#define _PORTB_4 PORTB, 004h
#define _PORTB_5 PORTB, 005h
#define _PORTB_6 PORTB, 006h
#define _PORTB_7 PORTB, 007h
; Constants.
_T2400 EQU 00000h
_T1200 EQU 00001h
_T9600 EQU 00002h
_T300 EQU 00003h
_N2400 EQU 00004h
_N1200 EQU 00005h
_N9600 EQU 00006h
_N300 EQU 00007h
_OT2400 EQU 00008h
_OT1200 EQU 00009h
_OT9600 EQU 0000Ah
_OT300 EQU 0000Bh
_ON2400 EQU 0000Ch
_ON1200 EQU 0000Dh
_ON9600 EQU 0000Eh
_ON300 EQU 0000Fh
_MSBPRE EQU 00000h
_LSBPRE EQU 00001h
_MSBPOST EQU 00002h
_LSBPOST EQU 00003h
_LSBFIRST EQU 00000h
_MSBFIRST EQU 00001h
_CLS EQU 00000h
_HOME EQU 00001h
_BELL EQU 00007h
_BKSP EQU 00008h
_TAB EQU 00009h
_CR EQU 0000Dh
_UnitOn EQU 00012h
_UnitOff EQU 0001Ah
_UnitsOff EQU 0001Ch
_LightsOn EQU 00014h
_LightsOff EQU 00010h
_Dim EQU 0001Eh
_Bright EQU 00016h
INCLUDE "SERVO-~1.MAC"
INCLUDE "PBPPIC14.LIB"
MOVE?CB 000h, TRISD
LABEL?L _main
SERIN2DPIN?T _PORTC_1
SERIN2MODE?C 054h
LABEL?L L00001
SERIN2WAIT?CL 0A6h, L00001
SERIN2WAIT?CL 041h, L00001
SERIN2COUNT?C 010h
SERIN2STR?B _d
MOVE?BB _d + 00009h, PORTD
CMPLE?BCL _d + 00001h, 07Fh, L00002
SUB?BCB _d + 00001h, 080h, _angle
HIGH?T _PORTB_0
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_0
LABEL?L L00002
CMPGE?BCL _d + 00001h, 080h, L00004
SUB?CBB 07Fh, _d + 00001h, _angle
HIGH?T _PORTB_0
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_0
LABEL?L L00004
CMPLE?BCL _d + 00002h, 07Fh, L00006
SUB?BCB _d + 00002h, 080h, _angle
HIGH?T _PORTB_1
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_1
LABEL?L L00006
CMPGE?BCL _d + 00002h, 080h, L00008
SUB?CBB 07Fh, _d + 00002h, _angle
HIGH?T _PORTB_1
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_1
LABEL?L L00008
CMPLE?BCL _d + 00003h, 07Fh, L00010
SUB?BCB _d + 00003h, 080h, _angle
HIGH?T _PORTB_2
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_2
LABEL?L L00010
CMPGE?BCL _d + 00003h, 080h, L00012
SUB?CBB 07Fh, _d + 00003h, _angle
HIGH?T _PORTB_2
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_2
LABEL?L L00012
CMPLE?BCL _d + 00004h, 07Fh, L00014
SUB?BCB _d + 00004h, 080h, _angle
HIGH?T _PORTB_3
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_3
LABEL?L L00014
CMPGE?BCL _d + 00004h, 080h, L00016
SUB?CBB 07Fh, _d + 00004h, _angle
HIGH?T _PORTB_3
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_3
LABEL?L L00016
CMPLE?BCL _d + 00005h, 07Fh, L00018
SUB?BCB _d + 00005h, 080h, _angle
HIGH?T _PORTB_4
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_4
LABEL?L L00018
CMPGE?BCL _d + 00005h, 080h, L0****
SUB?CBB 07Fh, _d + 00005h, _angle
HIGH?T _PORTB_4
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_4
LABEL?L L0****
CMPLE?BCL _d + 00006h, 07Fh, L00022
SUB?BCB _d + 00006h, 080h, _angle
HIGH?T _PORTB_5
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_5
LABEL?L L00022
CMPGE?BCL _d + 00006h, 080h, L00024
SUB?CBB 07Fh, _d + 00006h, _angle
HIGH?T _PORTB_5
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_5
LABEL?L L00024
CMPLE?BCL _d + 00007h, 07Fh, L00026
SUB?BCB _d + 00007h, 080h, _angle
HIGH?T _PORTB_6
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_6
LABEL?L L00026
CMPGE?BCL _d + 00007h, 080h, L00028
SUB?CBB 07Fh, _d + 00007h, _angle
HIGH?T _PORTB_6
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_6
LABEL?L L00028
CMPLE?BCL _d + 00008h, 07Fh, L00030
SUB?BCB _d + 00008h, 080h, _angle
HIGH?T _PORTB_7
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_7
LABEL?L L00030
CMPGE?BCL _d + 00008h, 080h, L00032
SUB?CBB 07Fh, _d + 00008h, _angle
HIGH?T _PORTB_7
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_7
LABEL?L L00032
GOTO?L _main
END
بالتوفيق اخى
sskk77 25-10-2009, 06:59 AM الاشارة لها اقل قيمة تساوى 1 ملى ثانية (ليس مايكرو) واعلى قيمة تكون 2 ملى ثانية حتى تستطيع التحكم بالسيرفوا و الاسبيد كترولر
بالنسبة للسيرفو 1.5 هى نقطة المنتصف 2 ملى ثانية اعلى قيمة للزاوية و 1ملى ثانية هى اعلى قيمة للزاوية فى الاتجاة المعاكس
بالنسبة للسبيد كنترولر 1 ملى ثانية يكون الموتور لايعمل وتزيد سرعة الموتور بزيادة عرض النبضة حتى تصل الى 2 ملى ثانية تكون اقصى سرعة
ملحوظة مهمة عند استخدام اسبيد كنترولر لازم تبداء الاشارة عند التشغيل من 1m sec عدى ذلك لن يشتغل
هذه العملية للحماية معظم الاسبيد كنترولر تعمل بنفس المبداء
-----------------------------------
يتم حساب الجزء مرتفع الجهد من النبضة الجزء كما فى الرسم من A to B هو المهم
الجزء BC ليس حساس يمكن ان يكون اى قيمة حسب تجربتى
-----------------------------------
بالنسبة للاخطاء اذا كانت مسموحة ام لا (سوف تلاحظ ذلك فى حركة السيرفو )
اذا لم يكن الاداء ثابت وسريع معناها فى عدم استقرار فى الاشارة
------------------------------------
اذا كانت الاشارة لها عرض نبضة اكبر من 2 ملى ثانية سوف يتحرك السيرفوو الى اقل زاوية كما لو كانت الاشارة تساوى 1 ملى ثانية
------------------------------------
تردد الاشارة يفضل ان يكون 50 هيرتز يجب ان تعيد الاشارة نفسها كل 18 ملى ثانية
-----------------------------------
حسب ماطلبت هذا هو كود الاسمبلى
PM_USED EQU 1
INCLUDE "16F84A.INC"
; Define statements.
#define osc 12
RAM_START EQU 0000Ch
RAM_END EQU 0004Fh
RAM_BANKS EQU 00001h
BANK0_START EQU 0000Ch
BANK0_END EQU 0004Fh
EEPROM_START EQU 02100h
EEPROM_END EQU 0213Fh
R0 EQU RAM_START + 000h
R1 EQU RAM_START + 002h
R2 EQU RAM_START + 004h
R3 EQU RAM_START + 006h
R4 EQU RAM_START + 008h
R5 EQU RAM_START + 00Ah
R6 EQU RAM_START + 00Ch
R7 EQU RAM_START + 00Eh
R8 EQU RAM_START + 010h
T1 EQU RAM_START + 012h
FLAGS EQU RAM_START + 014h
GOP EQU RAM_START + 015h
RM1 EQU RAM_START + 016h
RM2 EQU RAM_START + 017h
RR1 EQU RAM_START + 018h
RR2 EQU RAM_START + 019h
_d EQU RAM_START + 01Ah
_angle EQU RAM_START + 02Ah
_value EQU RAM_START + 02Bh
_PORTL EQU PORTB
_PORTH EQU PORTA
_TRISL EQU TRISB
_TRISH EQU TRISA
#define _PORTC_1 PORTC, 001h
#define _PORTB_0 PORTB, 000h
#define _PORTB_1 PORTB, 001h
#define _PORTB_2 PORTB, 002h
#define _PORTB_3 PORTB, 003h
#define _PORTB_4 PORTB, 004h
#define _PORTB_5 PORTB, 005h
#define _PORTB_6 PORTB, 006h
#define _PORTB_7 PORTB, 007h
; Constants.
_T2400 EQU 00000h
_T1200 EQU 00001h
_T9600 EQU 00002h
_T300 EQU 00003h
_N2400 EQU 00004h
_N1200 EQU 00005h
_N9600 EQU 00006h
_N300 EQU 00007h
_OT2400 EQU 00008h
_OT1200 EQU 00009h
_OT9600 EQU 0000Ah
_OT300 EQU 0000Bh
_ON2400 EQU 0000Ch
_ON1200 EQU 0000Dh
_ON9600 EQU 0000Eh
_ON300 EQU 0000Fh
_MSBPRE EQU 00000h
_LSBPRE EQU 00001h
_MSBPOST EQU 00002h
_LSBPOST EQU 00003h
_LSBFIRST EQU 00000h
_MSBFIRST EQU 00001h
_CLS EQU 00000h
_HOME EQU 00001h
_BELL EQU 00007h
_BKSP EQU 00008h
_TAB EQU 00009h
_CR EQU 0000Dh
_UnitOn EQU 00012h
_UnitOff EQU 0001Ah
_UnitsOff EQU 0001Ch
_LightsOn EQU 00014h
_LightsOff EQU 00010h
_Dim EQU 0001Eh
_Bright EQU 00016h
INCLUDE "SERVO-~1.MAC"
INCLUDE "PBPPIC14.LIB"
MOVE?CB 000h, TRISD
LABEL?L _main
SERIN2DPIN?T _PORTC_1
SERIN2MODE?C 054h
LABEL?L L00001
SERIN2WAIT?CL 0A6h, L00001
SERIN2WAIT?CL 041h, L00001
SERIN2COUNT?C 010h
SERIN2STR?B _d
MOVE?BB _d + 00009h, PORTD
CMPLE?BCL _d + 00001h, 07Fh, L00002
SUB?BCB _d + 00001h, 080h, _angle
HIGH?T _PORTB_0
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_0
LABEL?L L00002
CMPGE?BCL _d + 00001h, 080h, L00004
SUB?CBB 07Fh, _d + 00001h, _angle
HIGH?T _PORTB_0
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_0
LABEL?L L00004
CMPLE?BCL _d + 00002h, 07Fh, L00006
SUB?BCB _d + 00002h, 080h, _angle
HIGH?T _PORTB_1
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_1
LABEL?L L00006
CMPGE?BCL _d + 00002h, 080h, L00008
SUB?CBB 07Fh, _d + 00002h, _angle
HIGH?T _PORTB_1
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_1
LABEL?L L00008
CMPLE?BCL _d + 00003h, 07Fh, L00010
SUB?BCB _d + 00003h, 080h, _angle
HIGH?T _PORTB_2
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_2
LABEL?L L00010
CMPGE?BCL _d + 00003h, 080h, L00012
SUB?CBB 07Fh, _d + 00003h, _angle
HIGH?T _PORTB_2
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_2
LABEL?L L00012
CMPLE?BCL _d + 00004h, 07Fh, L00014
SUB?BCB _d + 00004h, 080h, _angle
HIGH?T _PORTB_3
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_3
LABEL?L L00014
CMPGE?BCL _d + 00004h, 080h, L00016
SUB?CBB 07Fh, _d + 00004h, _angle
HIGH?T _PORTB_3
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_3
LABEL?L L00016
CMPLE?BCL _d + 00005h, 07Fh, L00018
SUB?BCB _d + 00005h, 080h, _angle
HIGH?T _PORTB_4
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_4
LABEL?L L00018
CMPGE?BCL _d + 00005h, 080h, L0****
SUB?CBB 07Fh, _d + 00005h, _angle
HIGH?T _PORTB_4
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_4
LABEL?L L0****
CMPLE?BCL _d + 00006h, 07Fh, L00022
SUB?BCB _d + 00006h, 080h, _angle
HIGH?T _PORTB_5
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_5
LABEL?L L00022
CMPGE?BCL _d + 00006h, 080h, L00024
SUB?CBB 07Fh, _d + 00006h, _angle
HIGH?T _PORTB_5
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_5
LABEL?L L00024
CMPLE?BCL _d + 00007h, 07Fh, L00026
SUB?BCB _d + 00007h, 080h, _angle
HIGH?T _PORTB_6
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_6
LABEL?L L00026
CMPGE?BCL _d + 00007h, 080h, L00028
SUB?CBB 07Fh, _d + 00007h, _angle
HIGH?T _PORTB_6
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_6
LABEL?L L00028
CMPLE?BCL _d + 00008h, 07Fh, L00030
SUB?BCB _d + 00008h, 080h, _angle
HIGH?T _PORTB_7
MUL?BCW _angle, 004h, T1
ADD?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_7
LABEL?L L00030
CMPGE?BCL _d + 00008h, 080h, L00032
SUB?CBB 07Fh, _d + 00008h, _angle
HIGH?T _PORTB_7
MUL?BCW _angle, 004h, T1
SUB?CWW 005DCh, T1, T1
PAUSEUS?W T1
LOW?T _PORTB_7
LABEL?L L00032
GOTO?L _main
END
بالتوفيق اخى
الف شكر لك اخي سأجرب وارد لك خبر
mohammed hassan 25-10-2009, 05:59 PM و الله يا جماعه بس لو اعيد طرح الموضوع بشكل مرتب اكثر و اكثر ترتيبا و الله راح تكون الاستفاده اكبر
التايفون1997 25-10-2009, 11:31 PM ماشاء الله موفق
the black horse 26-07-2010, 02:18 PM وين بقيت الموضوع يا جماعة
ليش وقفتوا
ايوب الطائرات الجوية 16-09-2010, 11:26 PM السلام عليكم ورحمت الله وبراكاته .
ايمكنكم اعطائي الدائرة الالكترونية لهدا الجهاز. وهل يمكنني ان استعمل هدا الجهاز في الطائرة دات التحكم عن بعد ادا كان ممكن هل يكن ان تعطوني اسم البرنامج المستعمل للطيار الالي.
وشكرا لكم.
vBulletin® v3.8.4, Copyright ©2000-2012, Jelsoft Enterprises Ltd.
|