قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 21-06-2014, 01:17 PM المشاركة 25   
افتراضي



طيب هو انا عايز اوضح شويه حاجات
الافضل من انك تعمل الكنترولر فيه الحروف ويبدا يعرضها من الذاكره .. زي ما انتو عاملين او انا عامل ده مش الحل الافضل
الحل الاسرع هو انك تعامل الكنترولر كشاشه بتحط عليها داتا مش اكثر يعني بتديله
frames يعرضها ورا بعض ...
ولكن الحل ده بيتطلب انك يكون عندك ذاكره كبيره نسبيا لتخزين كل الفريمز .. اعتقد 8 ميجا مش بطاله
وبيتطلب برده شغل عالي من ناحيه ال pc عشان تعرف تحول الحركات بتاعتك لفريمات
الحاجه الثانيه بالنسبه للعربي مش افضل طريقه له انك تحفظ الحروف كلها ولو ان ده ممكن . يفضل انها تتعمل بالشكل اللي بقول عليه
الحاجه الثالثه .. عشان الاضائه تبقي قويه .. محتاج انك تقلل scan time
واللي بدوره هيزيد تلقائيا كل ما حجم الماتريكس زاد .. وده معناه اننا لازم نحول الماتريكس الكبيره لاكثر من ماتريكس صغيره .. وده هيخلي فيه زياده في تعقيد الهاردوير
النقطه الاخيره هو ان فيه تشيبات جاهزه مسئوله عن العرض علي الماتريكس
وكمان بتعرض باكثر من شده اضاءه . ممكن تستخدموها
ملحوظه . حسب معلوماتي البيك نظام ال pages فيه بيعوق انك تعمل arrays كبيره
وده معناه صعوبه في تحقيق المطلوب لانك هتتحايل علي الموضوع ده .
السلام عليكم
ياريت أخي كريم تشرح لنا كيف يتم ذلك لان موضوع يحتاجه الى امثله لكي نفهم موضوع بشكل اوسع وياريت أخي تشرح لنا ماتركس بشكل أحترافي
ولكم جزيل الشكر واحترام

اعلانات

الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 21-06-2014, 04:38 PM المشاركة 26   
angry


طيب هو انا عايز اوضح شويه حاجات
الافضل من انك تعمل الكنترولر فيه الحروف ويبدا يعرضها من الذاكره .. زي ما انتو عاملين او انا عامل ده مش الحل الافضل
الحل الاسرع هو انك تعامل الكنترولر كشاشه بتحط عليها داتا مش اكثر يعني بتديله
frames يعرضها ورا بعض ...
ولكن الحل ده بيتطلب انك يكون عندك ذاكره كبيره نسبيا لتخزين كل الفريمز .. اعتقد 8 ميجا مش بطاله
وبيتطلب برده شغل عالي من ناحيه ال pc عشان تعرف تحول الحركات بتاعتك لفريمات
الحاجه الثانيه بالنسبه للعربي مش افضل طريقه له انك تحفظ الحروف كلها ولو ان ده ممكن . يفضل انها تتعمل بالشكل اللي بقول عليه
الحاجه الثالثه .. عشان الاضائه تبقي قويه .. محتاج انك تقلل scan time
واللي بدوره هيزيد تلقائيا كل ما حجم الماتريكس زاد .. وده معناه اننا لازم نحول الماتريكس الكبيره لاكثر من ماتريكس صغيره .. وده هيخلي فيه زياده في تعقيد الهاردوير
النقطه الاخيره هو ان فيه تشيبات جاهزه مسئوله عن العرض علي الماتريكس
وكمان بتعرض باكثر من شده اضاءه . ممكن تستخدموها
ملحوظه . حسب معلوماتي البيك نظام ال pages فيه بيعوق انك تعمل arrays كبيره
وده معناه صعوبه في تحقيق المطلوب لانك هتتحايل علي الموضوع ده .
السلام عليكم ورحمة الله وبركاتة
ايوة كدة ياهندسة بدات ((الجمجمة العبقرية تشتغل ههههههه))
ماهو دة فعلا الهدف الاساسى وانا ذكرت كلمة (مالتميديا ) اكثر من مرة
اما بالنسبة للحروف المخزنة فهذا خاص بالمشروع الذى ارفقة المهندس حسن وكان كل هدفى منة هو الانتربت معرفة طريقة عمل المقاطعة بدون تاثير على البرنامج .
====================
الهدف كما ذكرت فى بدايات موضوعى مجرد شاشة لا يوجد عليها اى بيانات الا مجرد كلمة عادية مثل (نو داتا ) اى كلمة افتتاحية مثل اى شاشة عادية
وحتى اننا لا نحتاجها اساسا ولا نحتاج الى خزن بيانات داخل الميكرو من اساسة
مجرد برنامج عادى جدا بفريم ثابت كمثال 64*64
ويتم ارسال البيانات من الكومبيوتر الفريم كامل
فيقوم البك بخزنها كما هى وعرضها وبعد ذلك يتم ارسال الفريم التالى ثم التالى وهكذا
واى تغير فى شكل الفريم سوف يتم داخل الكومبيوتر قبل ارسالة
والارسال سوف يكون بحروف الاسكى
وكل حرف فقط يعبر عن عامود واحد وليس مصفوفة حرف
توضيح اكثر كمثال ماتركس 8*8 سوف يتم ارسال 8حروف اسكى كل حرف يتم عرضة كما هو (بينارى)على عامود
========================
انا بالفعل فكرت انة لابد من استخدام ميمورى خارجية كمثال ال mmc
بل انة ايضا فكرت فى اضافة متحكم اخر للهاردوير تكون مهمتة هو الكتابة للميمورى ويتفرغ الميكرو الاساسى للعرض من الميمورى فقط بشكل مستمر
===================
للاسف الانترنت عندى بطىء كنت ارفقت لكم فيديوهت تقرب الفكرة
كمثال شاشة 3310 يتم عرض فيلم كامل عليها ؟؟؟؟
طبعا الفيلم تم تحويلة اولا الى بايتماب ثم خزنة على شكل ملفات تكست
داخل ميمورى كارت ويتم القرائة منة باستمرار
وال delay لا يستخدم الا مع الفريم كامل

===================
اتمنى ان تعجبكم الفكرة


التعديل الأخير تم بواسطة : ناصراحمد2 بتاريخ 21-06-2014 الساعة 04:45 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 21-06-2014, 04:43 PM المشاركة 27   
Thumbs up


السلام عليكم ورحمة الله وبركاتة
ايوة كدة ياهندسة بدات ((الجمجمة العبقرية تشتغل ههههههه))
ماهو دة فعلا الهدف الاساسى وانا ذكرت كلمة (مالتميديا ) اكثر من مرة
اما بالنسبة للحروف المخزنة فهذا خاص بالمشروع الذى ارفقة المهندس حسن وكان كل هدفى منة هو الانتربت معرفة طريقة عمل المقاطعة بدون تاثير على البرنامج .
====================
الهدف كما ذكرت فى بدايات موضوعى مجرد شاشة لا يوجد عليها اى بيانات الا مجرد كلمة عادية مثل (نو داتا ) اى كلمة افتتاحية مثل اى شاشة عادية
وحتى اننا لا نحتاجها اساسا ولا نحتاج الى خزن بيانات داخل الميكرو من اساسة
مجرد برنامج عادى جدا بفريم ثابت كمثال 64*64
ويتم ارسال البيانات من الكومبيوتر الفريم كامل
فيقوم البك بخزنها كما هى وعرضها وبعد ذلك يتم ارسال الفريم التالى ثم التالى وهكذا
واى تغير فى شكل الفريم سوف يتم داخل الكومبيوتر قبل ارسالة
والارسال سوف يكون بحروف الاسكى
وكل حرف فقط يعبر عن عامود واحد وليس مصفوفة حرف
توضيح اكثر كمثال ماتركس 8*8 سوف يتم ارسال 8حروف اسكى كل حرف يتم عرضة كما هو على عامود
========================
انا بالفعل فكرت انة لابد من استخدام ميمورى خارجية كمثال ال mmc
بل انة ايضا فكرت فى اضافة متحكم اخر للهاردوير تكون مهمتة هو الكتابة للميمورى ويتفرغ الميكرو الاساسى للعرض من الميمورى فقط بشكل مستمر
===================
للاسف الانترنت عندى بطىء كنت ارفقت لكم فيديوهت تقرب الفكرة
كمثال شاشة 3310 يتم عرض فيلم كامل عليها ؟؟؟؟
طبعا الفيلم تم تحويلة اولا الى بايتماب ثم خزنة على شكل ملفات تكست
داخل ميمورى كارت ويتم القرائة منة باستمرار
وال delay لا يستخدم الا مع الفريم كامل

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


الصورة الرمزية ناصراحمد2
ناصراحمد2
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: EGYPT
المشاركات: 1,315
نشاط [ ناصراحمد2 ]
قوة السمعة:
قديم 21-06-2014, 05:01 PM المشاركة 28   
افتراضي


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

https://www.youtube.com/watch?v=FJBNF5x1_kA


hamzazayyad
:: مهندس متميز ::
تاريخ التسجيل: Aug 2005
الدولة: موزنبيق
المشاركات: 696
نشاط [ hamzazayyad ]
قوة السمعة:
قديم 21-06-2014, 06:44 PM المشاركة 29   
افتراضي


اخي احمد الفيديو جميل ويمكنك عمله لكن الافضل ان تنتقل للتعامل مه pic 32
او ARM فهي تدعم الملتيميديا...الخ وهي اصلا موجوده داخل الهواتف النقاله ودات سرعات وامكانيات اكبر من عائله و18f,16F.
وايضا mmc او SD مدعومه داخل الميكروسي سي والبروتوس وسهله البرمجه.
لكن تحتاج للوقت والجهد لانشاء ما تريد؟؟

لكن بعد كل هدا المجهود الكبير هل يوجد ناتج مادي ؟؟ لللاسف ارى اسعار اللوحات المضيئه رخيصه جدا وارخص من شراء القطع (الديودات المضيئه الخ..) نفسها من الصين ودات تشطيب جميل جدا .


تقبل مروري.


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 23-06-2014, 06:49 PM المشاركة 30   
افتراضي شرح أستخدام الرام SD-card


السلام عليكم
ا- علينا بتعريف ربط طرف cs من ميموري
كود:
sbit Mmc_Chip_Select           at LATE0_bit;
sbit Mmc_Chip_Select_Direction at TRISE0_bit;
https://www.google.iq/search?q=sd+ca...or%3B512%3B249

وهنا تم ربط طرف CS على بورت E0
وفي حاله وجود سويج في قاعده رام وهو يشتغل عند وضع رام في قاعدته فيجب تعريف مدخل سويج

مثال
كود:
sbit Mmc_Card_Detect           at RA2_bit;
sbit Mmc_Card_Detect_Direction at TRISA2_bit;
وطبعا فائده سويج مثلا في حاله عدم أدخال الرام يكتبلك
"Insert microSD Card"
وفي حاله ادخال الرام يكتبلك
microSD Card inserted

طبعا هذا الشرح للكود موجود في ملف مساعد للمايكروسي

2- يجب تهيئه عند أستخدام sd_card
كود:
 // Initialize SPI1 module
  SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV64, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);

  // Use fat16 quick format instead of init routine if a formatting is needed
  if (Mmc_Fat_Init() == 0) {
    // Reinitialize SPI1 at higher speed
    SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV4, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);
    
  }
هذه هي تعريفات اساسيه لاستخدام ميموري
وسنطرح لاحقا
1- خلق ملف جديد وكتابه فيه
2- حذف ملف
3- اضافه بيانات الى ملف
4- قراءه من ملف
5- التعديل الوقت والتاريخ للملف
7- مسح بيانات ملف واعاده كتابه بيانات جديده

سأطرح اساسيات لكي يتم فهم الامر بشكل اساسي
تحياتي


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 24-06-2014, 05:38 PM المشاركة 31   
افتراضي خلق ملف جديد


السلام عليكم
لكي نخلق ملف جديد نتبع هذه الاوامر
1- نحتاج الى مصفوفه لتوليد اسم ملف مثلا
كود:
char filename[14] = "MIKRO00x.TXT";
وأهم مافي مصفوفه انه ملف يجب ان يكون بأمتداد txt

كود:
void M_Create_Multiple_Files() 
{
    loop2='B';
    filename[7] = loop2;                 // set filename
    Mmc_Fat_Set_File_Date(2010, 4, 19, 9, 0, 0); // Set file date & time info
    Mmc_Fat_Assign(&filename, 0xA0);     // find existing file or create a new one
    size=sizeof(file_contents);
    Mmc_Fat_Rewrite();                   // To clear file and start with new data
    Mmc_Fat_Write(file_contents,size);  // write data to the assigned file
}
2- نعطي اسم للملف مثلا filename[7] = loop2
اي يصبح اسم ملف MIKRO00B.TXT

3- نعطي تاريخ للملف (Mmc_Fat_Set_File_Date(2010, 4, 19, 9, 0, 0

وهذا هو تعريف داله اعطاء وقت
كود:
void Mmc_Fat_Set_File_Date(unsigned int year, unsigned short month, unsigned short day, unsigned short hours, unsigned short mins, unsigned short seconds);
طبعا الارقام التاريخ وقت يمكن وضع فيها متغيرات بحيث يمكن قراءه وقت وتاريخ لحظه خلق ملف

4- الان هذا هو الامر مهم
كود:
 Mmc_Fat_Assign(&filename, 0xA0);     // find existing file or create a new one
هذا الامر سوف يجعل مؤشر يوشير الى ملف الذي اسمه filename

اما 0xA0 معناه قم بأخلق ملف اذ لم يكن موجود
وهذه متكونه من اثنين الاول 0x20 وتعني ملف من نوع archive
0x80 هو لخلق ملف جديد
طبها يمكن مراجعه ملف مساعده في مايكروسي حول هذا موضوع

5-Mmc_Fat_Rewrite(); يقوم بتهيئه ملف وجعل مؤشر عند باديه السطر
هو مفروض يقوم بمسح البيانات والكتابه من جديد ولكن لم أرى ان يقوم بمسح البيانات ولكن يمكن حل مشكله

6- (size=sizeof(file_contents هذا الامر يقوم بأحتساب حجم مصفوفه وهذا الامر ايضا مهم
7- بعد كتابه اوامر اعلاه الان نقوم بخزن البيانات في الملف الذي اسمه MIKRO00B.TXT
يعني من تفتح ميمموري ستجد ملف بهذا الاسم MIKRO00B.TXT

ايضا هذا الامر
كود:
Mmc_Fat_Write(file_contents,size);  // write data to the assigned file
file_contents هي مصفوفه
size هي حجم مصفوفه

أنتهى


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 24-06-2014, 05:46 PM المشاركة 32   
افتراضي اضافه بيانات الى ملف سابق


طبعا الان نريد أضافه بيانات الى ملف السابق والذي تم تكوينه
كود:
void M_Open_File_Append() {
   filename[7] = 'B';
   Mmc_Fat_Assign(&filename, 0);
   Mmc_Fat_Set_File_Date(2014, 6, 23, 17, 20, 0);
   Mmc_Fat_Append();                                    // Prepare file for append
   Mmc_Fat_Write("hasan\n", 6);   // Write data to assigned file
}
1- لابد من اشاره الى ملف مراد اضافه البيانات له اذن filename[7] = 'B
2- لابد من تحويل مؤشر الى ملف Mmc_Fat_Assign(&filename, 0);

3-اضافه التعديل على تاريخ Mmc_Fat_Set_File_Date
4- الان الامر مهم Mmc_Fat_Append() هذا الامر ماذا يفعل يخلي مؤشر عند اخر حرف من بيانات ملف وعليه انت لما أضيف بيانات جديده خلي اول حرف فراغ لكي لايتم أدماج حرف الاول من جمله جديده مع اخر حرف من جمله القديمه

5- الان نكتب ملفات جديده
Mmc_Fat_Write("hasan\n", 6);
طبعا رقم 6 هو عدد احرف جمله hasan\n
طبعا اذا كنت خزنت البيانات في مصفوفه فيمكن اتباع نفس اسلوب في مشاركه السابقه
اي نفس هذه طريقه
كود:
 size=sizeof(file_new);
    Mmc_Fat_Write(file_new,size);  // write data to the assigned file
انتهى



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 07:28 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)