الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشروع مفتوح المصدر، Open Ecg Project ، ما هي ال Avr المناسبة لي؟

بدأه Mohammed-Saeed في 22 يناير 2010 · 35 رد · 6,849 مشاهدة · في الميكروكنترولر (المتحكم) و الدوائر الرقمية و المنطقية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كنت اقوم بدراسة مشروع اود القيام به، وخلال بحثي وجدت الموقع التالي:

http://www.open-ecg-project.org

وهو الجزء الاول من مشروعي ...

صنع جهاز شريط القلب، متصل بالكمبيوتر ...

ساختلف معهم في عدة امور، منها اني لن استخدم جافا (طبعا ساترجم خوارزمياتهم للغتي، ساحاول ان تكون Python ، مع اني مبرمج VB منذ عقد ونصف)

سؤالي الاول، هو اي AVR MicroController سيكون الانسب لي؟

ساحتاج الى 10 اسلاك تزود المتحكم بالفولتات الموجودة على سطح البدن ... ولذا اعتقد ان ATmega16 سيحوي اكثر مما اريد (يحوي 40 مدخل) ...

ما هي المتحكمة المناسبة لي؟ طبعاً السعر مهم لان المشروع قد يصل لانتاج تجاري في ما بعد ...

شكرا جزيلاً للجميع

#2

هل ATtiny2313 ستكون مناسبة؟

http://microcontrollershop.com/product_info.php?cPath=110_182&products_id=993

سؤال بحثت عنه، قد يفيد المراجعين لاحقاً

ما هي معادلة تحويل MHz للثانية؟

انا احتاج ان يرسل المتحكم البيانات للكمبيوتر (عبر USB ) کل 0.04 ثانية (وهي سرعة شريط القلب القياسية) ... ولامور برمجية لنفرض اننا بحاجة لبيانات اكثر، فلتكن السرعة 0.02 ثانية اي : 20 ميلي ثانية

الهرتز= دورة/ ثانية

اي الـ ميجا هرتز = 1,000,000 دورة في الثانية ...

راجع ويكيبديا

يبقى، كم سيكون مدى تاثر المتحكم بدرجة الحرارة، اختلاف الفولت و... هل يمكن ان اتغاضى عنه، ام علي التفكير بامور لحل هذه المشاكل؟

شكرا

#3

اخي الكريم اتمنى التواصل على abokamelscs@hotmail.com

اعتقد انني استطيع المساعدة

#4

اشتريت ATmega16

و LCD ... للتجارب الاولية ...

وقمت ببرمجته لدى احد الاصدقاء، للتجربة بدايةً ...

صنعت مبرمجة، ولكنها لم تعمل، لعلي اخطات في توصيل بعض الاسلاك ...

تحياتي

#5

كيف سيتصل الحساس الذى سيوضع على البدن مع المتحكم

وبخصوص المتحكم المناسب

اشترى اكثرهم فى ال Peripherals وعندما تصل للإنتاج يمكنك ان تقلصه الى متحكم يحوى ما استخدمته فقط

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#6
اقتباس
كيف سيتصل الحساس الذى سيوضع على البدن مع المتحكم

الا يمكن توصيله مباشرة للبدن؟

ما هو مدى فرق الجهد الذي يمكن لكل PIN في المتحكم ان يقبله؟

وما هي حساسيته؟

هذه اسئلة لم اجد اجابة واضحة لها ...

اقتباس
شترى اكثرهم فى ال Peripherals وعندما تصل للإنتاج يمكنك ان تقلصه الى متحكم يحوى ما استخدمته فقط

اشتريت ATMEGA 16

ويحوي عدد كافي من الاطراف التي يمكنني استعمالها كمدخلات (احتاج لـ 10) ... وبعض المخرجات كي يرسل البيانات للحاسوب ...

تحيياتي

#7

المدخلات المخرجات فى ال atmega16 بعيد عن اطراف ال ADC كلها تتعامل مع بيانات رقمية اى ان لها حالتين فقط عالية ومنخفضة لذا اسئلك عن نوع الحساس وكيف يخرج بياناته

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#8

حسبت انها تقبل مدى من القيمة ...

مكتوب في الـ Datasheet لها :

في قسم الـ Electrical Characteristics

اقتباس
Voltage on any Pin except RESET

with respect to Ground ................................-0.5V to VCC+0.5V

ان كان الامر كما تقول، فسيصعب الامر علي، لاني لا اعرف الالكترونيات ...

#9

اخي الكريم ان حساسية مدخل المتحكم هو من رتبة 5mV

اذا تطلب المشروع حساسية اقل بالامكان استخدام مكبر OP-AMP

#10

لدي جميع الادوات اللازمة بالنسبة للميكرو

اما بالنسبة للامور الطبية المتعلقة بتخطيط القلب فلا املك من المعلومات اي شيئ

ونحن بحاجة لتحديد عدة معلومات مهمة لنبدء

قيم الفولت الدنيا والعليا

الحساسية

ماهو الضجيج الموجود

كمية البيانات او دقتها

سرعة نقل البيانات وما الى ذلك من امور

انا جاهز لنتعاون بالنسبة لامور الالكترونيات:::

من مضخم للاشارة بوساطة المضخم العملياتي برمجة الميكرو ومن ثم نقلها الى الحاسوب

:cool:

#11

مشروعك هذا ذكرنى بالكورس الذى ادرسه هذا النص من السنة وهو الإجزهة الطبية والآن ادرش تشريح ما علاقة الهندسة بهذه الأشياء وانا أكره هذا جدا :mad:

اقتباس
Voltage on any Pin except RESET

with respect to Ground ................................-0.5V to VCC+0.5V

ما وضعته انت فى الأعلى هى الجهود التى يمكن ان توضع على البنات بدون ان تحترق

ولكن لا تحزن هناك بنات مكتوب عليها ADC وهى تستطع قراءة الإشارة التناظرية لكن لها دقة معينة

أى انها تقرأها فى خطوات مثلا تقرأ 0 والخطوة التالية 0.2 ثم مثلا 0.4 ولا تستطيع مثلا قراءة 0.3 و 0.1 هذه كلها أمثلا وكلها حسب ال resolution

بصخصوص موضوع القلب ستحتاج الى مكبر عالى بنسبة ضجيج منخفضة لأن ما أعرفة ان الإشارة الخارجة من جسم الإنسان صغيرة جدا

1

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#12

هنلك طريقتين لتحسس دقات القلب

الاولى عن طريق مرسل ومستقبل اشعة تحت حمراء وربطها بالمايكرو للعد والعرض

الطريقة التانية اكثر دقة يوجد حساس مخصص لاستشعار المجال الناتج عن التيار الكهربى المار فى عضلات القلب وهى الطريقة الالكتر دقة

وكل من الطريقتين مستخدمتين فعليا والاولى هى الاسهل

اقتباس

ولكن لا تحزن هناك بنات مكتوب عليها ADC

وين دول :lol:

تحياتى

1

عن أبي هريرة رضي الله عنه عن النبي صلى الله عليه وسلم أنه قال: سيأتي على الناس زمان سنوات خداعات: يصدق فيها الكاذب ويكذب فيها الصادق، ويؤتمن فيها الخائن ويخون فيها الأمين، وينطق فيها الرويبضة. قيل يا رسول الله وما الرويبضة؟ قال: الرجل التافه ينطق في أمر العامة . رواه احمد والحاكم وصححه الالبانى من حديث ابى هريره.‏

#13
اقتباس
وين دول :lol:
المفترض الكلام على ATmega16 موجودين على PORTA
1

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#14

حريف برمجة ...

حاول الاستمتاع بدراسة التشريح والفيزيولوجيا و...

تذكر ان المبدعين موسوعيين ... وبهذا يمكنهم تقديم الجديد ...

وبما انك تدرس الاجهزة الطبية هذا الفصل، فستكون فرصة ممتعة ومفيدة كي تدخل في مشروع عملي (والاستفادة منه ماديا)

في ATmega16 يعد PortA قابلاً لـ ADC، ولكنه يحوي فقط 8 بنات، وانا بحاجة لـ 10

هل من حل لهذه المشكلة؟

سابحث عن دقة المتحكم واذكره هنا ...

محمد الامين

شريط تخطيط القلب ليس الهدف منه حساب دقات القلب فقط ...

بل يشير للكثير من الامور حول عمل القلب ...

فمثلا القطعة ST ترتفع فی الجلطة القلبية ...

المهم:

عضلة القلب لها فرق جهد 110mV

ولکن یصل لسطح الجلد مقدار اقل بكثير ... ويعتمد على بعده عن القلب ... وفي كل الاحوال فهو في الاكثر 4mV (حسب ما اذكر، دقة المتحكم عالية، قد لا احتاج فيها لمضخم)

سرعة التخطيط القياسية هي 2.5cm لکل ثانیة اي 0.04 ثانية لكل mm، ولكن هذه قابلة للتغير، ولذا افضل اعطاء امر القراءة من الحاسوب ... كي اتمكن من التحكم في سرعة القراءة

شكرا للجميع لمشاركتهم

* طالب طب مشرف على التخرج (طبيب مقيم Intern)

* مبرمج منذ عقد ونصف

#15

وجدت هذه:

•
10-bit Resolution
0.5 LSB Integral Non-linearity
±2 LSB Absolute Accuracy
13 - 260 µs Conversion Time
Up to 15 kSPS at Maximum Resolution
8 Multiplexed Single Ended Input Channels
7 Differential Input Channels
2 Differential Input Channels with Optional Gain of 10x and 200x
Optional Left adjustment for ADC Result Readout
0 - VCC ADC Input Voltage Range
Selectable 2.56V ADC Reference Voltage
Free Running or Single Conversion Mode
ADC Start Conversion by Auto Triggering on Interrupt Sources
Interrupt on ADC Conversion Complete
Sleep Mode Noise Canceler

ماذا تعني

LSB

SPS

#16
اقتباس

ماذا تعني

LSB

SPS

least significant bit (lsb)

the most significant bit (msb)

Ksps

Kilo Samples Per Second

1

عن أبي هريرة رضي الله عنه عن النبي صلى الله عليه وسلم أنه قال: سيأتي على الناس زمان سنوات خداعات: يصدق فيها الكاذب ويكذب فيها الصادق، ويؤتمن فيها الخائن ويخون فيها الأمين، وينطق فيها الرويبضة. قيل يا رسول الله وما الرويبضة؟ قال: الرجل التافه ينطق في أمر العامة . رواه احمد والحاكم وصححه الالبانى من حديث ابى هريره.‏

#17

هل يعني Kilo Samples Per Second انه سيكون بامكان المتحكم استقبال 15.000 اشارة كهربائية في الثانية؟

:) سيكون الامر جيد لان احتاج اقل من هذا العدد بكثير ...

#18
اقتباس
حاول الاستمتاع بدراسة التشريح والفيزيولوجيا و...

تذكر ان المبدعين موسوعيين ... وبهذا يمكنهم تقديم الجديد ...

وبما انك تدرس الاجهزة الطبية هذا الفصل، فستكون فرصة ممتعة ومفيدة كي تدخل في مشروع عملي (والاستفادة منه ماديا)

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

لكن هى مجرد دراسة واضافة لمعلومات جديده

ولا عليك خلينا فى جهازك :)

اقتباس
سرعة التخطيط القياسية هي 2.5cm لکل ثانیة اي 0.04 ثانية لكل mm، ولكن هذه قابلة للتغير، ولذا افضل اعطاء امر القراءة من الحاسوب ... كي اتمكن من التحكم في سرعة القراءة
مالذى تعنيه ب cm / s هناك وحده قياس طول ما هو هذا الطول أو المسافة

اما الإشارة هل الموضوع يكفى لتحسس وجودها على جسم المريض ام انها تتغير مع الزمن بشكل دورى ام ان لكل مريض اشارة ولا لكل مرض اشارة

معلش حاول تبسط الأمور فى منظور كهربى فقط

بالنسبة للسرعة ال ADC يكون ابطأ فى العادة من سرعة المتحكم القصوى وذلك لانه يقوم بالعد من 0 الى قيمة عظمى وكل عده بدرجة معينة من الجهد داخليا

ثم بعد ذلك يقارن الجهد المولد داخليا من العداد مع الجهد الموجود على ال ADC pin واذا حدث توافق يقوم بقراءة العداد ثم يعطيك قيمة للجهد الخارجى

لذلك تلاحظ انه العداد يعتمد على ال internal clock الذى يستخدمها المتحكم ويأخذ وقت اطول من تعليماته التى فى العادة تحتاج الى clock واحدة

لذلك فى كل قراءة يجب ان تنتظر ال adc حتى يقرأ الجهد الخارجى ثم تقوم بعملياتك عليه

لذلك هو سماها عينة لانها يتم اختبارها وليس قراءتها

اقتباس
هل يعني Kilo Samples Per Second انه سيكون بامكان المتحكم استقبال 15.000 اشارة كهربائية في الثانية؟

نعم تقد تقول كده وممكن العدد يتخطى اذا كان الرزليوشن اقل

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#19

شريط القلب يتم رسمه على ورقة هندسية (تحوي mm و cm)

المحور الطولي لعرض الفولت، وهو 1mv=cm

المحور العرضي للزمان، وفيه 0.04sec=mm

ECG%20trace%20with%20grid.gif

وتتغير قيمة فرق الجهد بتغير الزمان، فهي تزيد عند اقباض عضلة القلب او اي عضلة اخرى)

ويمكنك تجربة هذا بالـ فولت متر، بعد ضبطه لقياس الميلي فولت ورؤية تغير قيمة فرق الجهد بين يديك ...

شريط القلب (القياسي) يحوي 12 اشتقاق، لعرض صورة ثلاثية الابعاد عن عمل القلب

ecg1.jpg

بالنسبة للـ ADC

كيف يمكنني تعين دقة القراءة؟

لم اجد في وثيقة المنتج ما يفيدني ... يبدوا انه امر برمجي ، اليس كذلك؟

غدا ساجرب عدة امور، فقد اصبح لدي مبرمجة :)

#20

هحاول بعد ما ارجع اليوم افهم منك ما رسمته ان شاء الله

وربما تشرح لى التشريح :) هصطحب ضفدع معى :lol:

تم تعديل هذه المشاركة بواسطة حريف برمجة في 4 مارس 2010 في 08:10

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#21

بالخدمة، بس في التشريح احنا نستخدم اجساد آدمية ...

تريد الصور؟

انتظر عودتك ...

عودا على بدء:

ساحتاج لاحقاً التعامل مع الـ USB

وقد وجدت هذه:

http://www.obdev.at/products/vusb/index.html

وهو:

اقتباس
V-USB is a software-only implementation of a low-speed USB device for Atmel's AVR® microcontrollers, making it possible to build USB hardware with almost any AVR® microcontroller, not requiring any additional chip.

والجميل انه:

اقتباس
V-USB can be licensed freely under the GNU General Public License or alternatively under a commercial license.

موضوع مفيد (عربي) من المنتدى: كل ما يتعلق بتقنية USB شرح متكامل

ولكنه لا يزال اقل من ويكي بيديا الانجليزي

من يريد الاشتراك معي في المشروع؟ كي نقوم بتقسيم المهام ...

#22

انا متأسف جدا جدا عن التأخير فى الرد فقد كنت اعد احد الدوائر ولم أستطع التركيز فيما شرحه

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

بالنسبة لل usb لم انخرط فى هذا الأمر هذه الأيام وانصحك ان تتركه مؤقتا حتى لا يتشتت الموضوع معك فحل جزئ جزئ افضل بحيث يكون ال usb فى نسخة التطوير وعندها تكون متأكد ان جهازك يعمل

اما اذا كنت مصر فهناك انواع يوجد بها وحدة usb داخلية تريحك من موضوع ال hardware implementation لكن سيظل عليك تصميم application protocol وتقوم بتصميم تطبيق آخر على ال pc لكى يتعامل مع الهاردوير الجديد :wub:

اقتباس
بالخدمة، بس في التشريح احنا نستخدم اجساد آدمية ...

تريد الصور؟

إن كنت تريد إخافتى انا لا أخاف من هذه الأشياء :) ببساطة فقط لا احب الطب لكن لا اخاف من الجراحة :P
اقتباس

بالنسبة للـ ADC

كيف يمكنني تعين دقة القراءة؟

لم اجد في وثيقة المنتج ما يفيدني ... يبدوا انه امر برمجي ، اليس كذلك؟

لا يمكنك

دقة القراءة تعتمد على المنتج وكلما زادت كلما كان افضل لذلك ببساطة انت لا تحتاج الى تعيينها لانها فى افضل صورة لها

الموضوع كله فى الوقت الذى يستغرقة المتحكم فى قراءة أعلى جهد يمكن ان يطبق على ADC وقلت لك سابقا انه يأخذ وقت لانه يقوم عن طريق عدداد داخلى بالعد من صفر الى قيمته العظمى (وتكون عدد بتات العداد هى التى تحدد دقة القراءة فكلما ذاد عرض العداد مثلا 16 أفضل من 8 بت تيذيد دقة القراءة ) المهم بعد ما يحدث match مع القيمة الداخلية والجهد المطبق داخليا يقوم المتحكم بعمل interrupt يقفز بالتنفيذ الى ال interrupt vector routine الموجود رقمه عندك فى ال interrupt vector table عندك فى الداتا شيت

اتمنى ان يكون كلامى واضح لانى احس انى اعك والخبط الدنيا فى بعض :)

اقتباس
من يريد الاشتراك معي في المشروع؟ كي نقوم بتقسيم المهام ...
انا الآن اقوم بالمشروع نظام التشغيل لأحد الماكينات ستجده فى المنتدى تحت نظام تشغيل عربى للأنظمة المدمجة موضوع للأخ محمد الأمين

ما أقصده انه اذا انجزت شيئا فأنت welcome لان تستخدمه اذا إحتجته :lol:

وخصوصا اننا نعمل على نفس نوع المتحكم

1

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#23

رسم تخطيط القلب: فهمك صحيح ، ولكن الطبيب هو الذي يقوم بالمقارنة وليس برنامج او جهاز (طبعا الاجهزة الحديثة تحوي هذه الخاصية، ولكنها ليست ناجحة 100%)

موضوع الـ USB انا لا اعمل به الان، واشتريت LCD لعرض تجربتي على الجهاز ... ولكن فقط اطلاع بسيط كي لا استخدم بينات ساحتاجها لاحقاً، وهي مواضيع لفتت انتباهي بالصدفة

تصميم application protocol و برنامج للحاسوب لا مناص منه...

شكرا لتوضيحك، والكلام مفهوم

نهاية، واجهتني مشاكل في قراءة الـ ADC ... ساحاول البحث، وان لم اجد الحل كتبت المشكلة هنا

(يعرض في الـ LCD مربعات سوداء بالكامل، عوض الارقام، اكيد المشكلة في الكود الذي لا يقبل Unsigned char)

تحياتي

#24

وجدت هذا

انا ذاهب لتجربته في جهازي القديم (فهذا لا يحوي LPT) لبرمجة المتحكم ...

وفيه:

printf(read_adc(0));// It doesn't Works !!

والحل المقترح:

printf("%d\r\n", read_adc(0));

طبعا ان كنا استخدم

LCD_PUTSF()

It works ! indeed it displays Numerical value so to display the "real value" i have to use this formula ?

Real value= Numeric * Vref/1023

تم تعديل هذه المشاركة بواسطة Mohammed-Saeed في 8 مارس 2010 في 22:00

#25

استخدمت

sprintf(s,"%d\n\r",adc_data[1])

فخرج لی عدد 255 μ

مع ان الـ PIN غير متصل بشئ ... اليس كان يفترض ان تكون 0 (ولم يستجب لـ لمس اصبعي له، اعتقد ان مساحة الجلد مهمة لقراءة الفولت، سابحث عن هذه ايضا)

غدا ساشتري مقاومة متغيرة، كي اجرب اعطاء فولت ضمن المجال الذي يقبله المتحكم

شكرا

مواضيع مشابهة