Thursday, March 6, 2014

Pinguino Egypt - إصنع بنفسك دائرة مشابهة للأردوينو











قرأت مؤخرا جداً عن دائرة الأردوينو و أعجبتنى فكرة عمله . فبرغم استخدامى لدوائر البرمجة المضمنة من شركات متخصصة من قبل و احتوائها على كل المكونات المطلوبة لبدء تعلم البرمجة بالمتحكم الدقيق الذى تنتجه الشركة المصنعة مثل برمجة ملف التشغيل 
HEX File
باستخدام مخرج الـ
USB 
و غير ذلك من الوسائل المساعدة للبرمجة مثل الـ
Debugger

إلا أن سهولة الأردوينو و كونه مفتوح المصدر فى الدوائر ( هاردوير ) و البرامج ( سوفت وير ) و انتشار البرامج و الدوائر المصنعة من الأفراد و الشركات و التى يمكن تشغيلها مع الأردوينو و كمية البرامج المنفذة باستخدامه ( بحيث يمكنك تخيل أن كل ما يمكن تنفيذه باستخدام الأنظمة المضمنة بل و باستخدام الدوائر الألكترونية بصفة عامة يمكن تنفيذه باستخدام الأردوينو و بالإستعانة بالبرامج و الدوائر و الأمثلة التى صنعها الأفراد من قبل على شبكة الانترنت ) و بحيث يتصور من ليس له خبرة بالأنظمة المضمنة أن تعريف الأنظمة المضمنة هو الأردوينو و لأن انتشار برامجه و دوائره بنفس انتشار برامج المصدر المفتوح

لذلك قررت أن أصمم دائرة مشابهة للأردوينو و تحتوى على المعالج الدقيق من نوع 
Microchip PIC 

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

Pinguino

و هو مشروع بدأ فى فرنسا و أصبح عالمياً مثلما بدأ الأردوينو فى إيطاليا و أصبح مشروعاً عالمياً

تماماً مثل الأردوينو يوجد الكثير من دوائر البينجوينو التى تستخدم أنواعاً مخلتفة من المتحكمات الدقيقة من عائلة 
Microchip

  و قد قررت البدء فى بناء البنجوينو باستخدام المتحكم الدقيق 
PIC 18F4550


















المكونات المستخدمة



1          Copper Board ( VeroBoard or Stripboard or Perfboard )
1          PIC 18F4550
1          40 Pin IC Socket
1          USB Type B Socket
1          20MHz Crystal
1          220nF Capacitor
1          100nF Capacitor
2          22pF Capacitors
1          Push Button
1          Dip Switch
1         10k Ohm Resistor
1         7805 Voltage Regulator
1         9v Battery Connector
1         Female Pin Header
1         1N4001 Diode ( or any other general purpose diode )
2         Rows of Pin Headers














هذه هى الدائرة كما فى الموقع






و هذه هى الدائرة التى قمت ببنائها



















ابدأ لحام المكونات



































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

verro board

و لم أقم بقطعها إلا عندما انتهيت من لحام المكونات لأننى لم أعلم مساحة القطعة التى تشغلها المكونات

و بعد أن انتهيت من لحام المكونات قمت بقص اللوحة حول المكونات بمنشار أركت 










































تثبيت برنامج البوت لودر
Bootloader


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

USB

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


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

استخدمت هنا سرعة كريستال 20 ميجا هرتز مع المتحكم الدقيق

PIC 18F4550

النسخة   

4.14







المتحكم الدقيق 
18F4550
 هو متحكم دقيق ذاتى البرمجة بمعنى أنه يستطيع تشغيل برنامج يقوم بتحميل برنامج آخر جديد و تحديث وظيفته ليقوم بوظيفة و برنامج جديد بدون استخدام دائرة برمجة 
Programmer

فى البداية عندما لا يوجد برنامج على المتحكم الدقيق لا يستطيع الإتصال بالكمبيوتر بوصلة يو إس بى و لكن يمكن برمجته عن طريق دائرة برمجة توصل بالكومبيوتر بالمنفذ المتسلسل 
Serial Port
أو دائرة برمجة تتصل بالكومبيوتر بمنفذ يو إس بى 
USB
ثم بعد ذلك تضع المتحكم الدقيق فى دائرة البنجوينو و تستطيع أن تجعله يتصل مباشرة بمنفذ يو إس بى 

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

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

Serial Port

تستطيع أنت أيضا بناء هذه الدائرة فهى بسيطة و سهلة  و موجودة على المدونة فى هذا الرابط




http://www.instructables.com/id/18F4550-Programmer-in-Ten-years/



















قمت باستخدام برنامج 

PicPGM  

مع دائرة البرمجة 

JDM programmer

لتحميل برنامج بوت لودر البنجوينو 


Bootloader_v4.13_18f4550_X20MHz.hex






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

بذلك تكون قد أكملت بناء الدائرة من ناحية الهاردوير



 Pinguino IDE Installation                                                             تثبيت بيئة برمجة بنجوينو   



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








خطوات  تثبيت بيئة برمجة بنجوينو على ويندوز إكس بى


Here is how to install the Pinguino IDE on Windows Xp

http://wiki.pinguino.cc/index.php/Windows


و هذه هى الخطوات الفعلية التى قمت بها




1-  Download and extract Pinguino IDE for window form here

https://code.google.com/p/pinguino32/downloads/detail?name=Pinguino-IDE-snapshot-i386-unknown-win32-20131209-rev959.7z&can=2&q=

2- Download vcredist_x86.exe (for win32) --- If you encounter the message of not existing msvc*90.dll in Windows,it has to be installed from here

http://www.microsoft.com/en-us/download/details.aspx?id=5582&WT.mc_id=MSCOM_EN_US_DLC_DETAILS_131Z4ENUS22004



3- Download and Install Python from here:

http://www.python.org/ftp/python/2.6.6/python-2.6.6.msi

4- Download and install wxPython 2.8.12.1(unicode) for Python 2.6
http://downloads.sourceforge.net/wxpython/wxPython2.8-win32-unicode-2.8.12.1-py26.exe



5- Download and install pyusb-1.0.0a2-py2.6

http://sourceforge.net/projects/pyusb/files/PyUSB%201.0/1.0.0-alpha-2/pyusb-1.0.0a2.zip/download







To install Pyusb module , you have to follow the next steps :
- Add python path to the PATH variable ..  for example   c:\python27
- Extract pyusb folder on any location of your hard disk
- Open the command prompt and change directory to the pyusb directory.
- Run the command python setup.py install
- Make sure that the Pyusb module is installed by python directory and look for site-packages folder .. for example :  C:\Python27\lib\site-packages if you can find usb folder inside then pyusb is successfully installed.
- You can now remove the Pyusb source folder.



6 - Download and install libusb-win32

http://downloads.sourceforge.net/libusb-win32/libusb-win32-filter-bin-0.1.12.1.exe?modtime=1174387137&big_mirror=0

(Don't discard this file yet. In some cases the library has to be installed twice to work.)



7- Download and install pyserial

http://sourceforge.net/projects/pyserial/files/pyserial/2.5/pyserial-2.5.win32.exe/download


Now , with a printer USB cable, connect your Pinguino board to the PC. You 'll get the Found New Hardware popup message.















8- Download and Extract Driver from here:

http://www.hackinglab.org/pinguino/download/driver%20pinguino%20windows/driver%20pinguino%20windows.tar.gz


Now, from the folder of Pinguino IDE ( ..\PINGUINO\x4-easy-rev959\ ) start pinguino.exe file.

That's it.

Now you can open any example or Arduino sketch, compile it and then upload it into your Pinguino board and start your application.

















HELLO WORLD


The example here

http://wiki.pinguino.cc/index.php/Basics#Hello_World

Show you how to send text on the USB port using CDC emulated RS232

Just copy and paste the code

/*
-------------------------------------------------
HELLO WORLD CDC
-------------------------------------------------
*/

void setup()
{
   // put your setup code here, to run once:
}

void loop()
{
   // put your main code here, to run repeatedly:
  if (CONTROL_LINE) CDC.println("\n\r Hello World !!!");


}




And windows xp will ask for a driver software .

You can find it under Pinguino IDE Folder

..\PINGUINO\x4-easy-rev959\extra\drivers\CDC


Run Hyper terminal 

with the following settings:




Choose the com port which the Pinguino driver you installed has created. ( ex. Com 4 )





Speed (Baud): 115200
Data bits: 8
Stop bits: 1
Parity: None
Flow control: XON/XOFF






You can read this article in English



http://embedded-egypt.blogspot.com/2014/02/pinguino-egypt-do-it-yourself-pic.html


Here is the article on my instructables.com page :

http://www.instructables.com/id/Pinguino-Egypt-PIC-Based-Arduino/



Thank you for visiting my blog. Have fun.

4 comments:

  1. very nice project.
    الله يفتح عليك

    ReplyDelete
  2. ممتاز جدا .....ما هي لغة برمجةPinguino
    وهل كل المنافذ الخاصة بالبيك تعمل بصورة عادية كما هو الحال في البرمجة الخارجية بواسطة المبرمجة serial port

    ReplyDelete
  3. لغة البرمجة هى لغة برمجة الاردوينو . و هي لغة مشابهة للغة السي ++ . أما بالنسبة لمنافذ البيك فهى متاحة بصورة طبيعية ما عدا فقط ما هو مستخدم فى دائرة البينجوينو . أى أن كل المنافذ الخالية متاحة

    ReplyDelete
  4. انا ابرمج باستخدام ميكروسى اريد ان اعرف كيف اكتب لها الكود و انا لا اعرف لغه الأردوينو

    ReplyDelete