‏إظهار الرسائل ذات التسميات هاردوير. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات هاردوير. إظهار كافة الرسائل

الاثنين، 20 يونيو 2016

الكشف عن رقاقة KiloCore الإلكترونية والتي تحتوي على 1000 مُعالج


السلام عليكم ورحمة الله تعالى وبركاته .

كشف فريق من الباحثين في جامعة كاليفورنيا الاسبوع الماضي عن رقاقة KiloCore، وهي عبارة عن رقاقة إلكترونية تحتوي على ألف مُعالج، وبإمكانها أداء 1.78 ترليون تعليمة في الثانية.

وتحتوي الشريحة على 621 مليون ترانزستور، وتُعتبر مُفيد للغاية للقيام بالمهام التي يحتاج تنفيذها إلى العمل بشكل متوازي مثل التشفير ومعالجة البيانات العلمية وترميز الفيديو.

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

ويُمكن تشغيل الرقاقة الجديدة بالإعتماد على الطاقة التي تولدها بطارية واحدة من نوع AA، كما أنها قادرة على تنفيذ 115 مليار تعليمة في الثانية مع صرفها لطاقة توازي 0.7 واط.

وتعاون فريق البحث مع شركة أي بي إم IBM لبناء الشريحة باستخدام تقنية 32 نانومتر القديمة نسبيًا بدلاً من تقنية 14 نانومتر، وقامت وزارة الدفاع الأمريكية بتمويل بناء الرقاقة،

وتبلغ أبعاده الرقاقة الجديدة 7.94×7.82 ميليمتر، بحيث تحتوي على 18 مُعالج في كل 1 ميلي متر، كما يُمكن للرقاقة التحكم بعدد الأنوية التي تعمل وإيقاف التي لا حاجة لها.

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

وأوضح بيفان باس استاذ الهندسة الكهربائية والحاسب في جامعة كاليفورنيا بأن تصميم رقاقة KiloCore هو أكثر كفاءة ومرونة من وُحدات مُعالجة الرسومات وذلك لأنه يُمكن برمجة كل نواة من الأنوية اللأف بشكل مستقل.

وتستخدم وحدات معالجة الرسومات تقنية العمل “تعليمة واحدة، بيانات متعددة” SIMD للحوسبة المتوازية، في حين تستخدم رقاقة KiloCore تقنية العمل “تعليمات متعددة، بيانات متعددة” MIMD.

كما قام الباحثون بإنشاء مترجم برمجي compiler وأدوات رسم خرائط مُخصصة من أجل برمجة الشريحة.

الجمعة، 18 ديسمبر 2015

كيفية وضع وإنشاء مكتبة جديدة للأردوينو



السلام عليكم ورحمة الله تعالى وبركاته .

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



لنأخذ كمثال تفعيل  مكتبة "المترو" من مقالة المؤقتات الزمنية و التحكم اللحظي بمنافذ الأردوينو

بعد ان يتم تحميل المكتبه قم بفك ضغط الملف بعد الضغط على الزر الايمن للفأره على ايقونه الملف ثم إستخرج هنا .

نفتح الملف الناتج ونختار الملف الذي يفتح مباشره لملفات الcpp وh




اذا سننقل ملف Metro في هذا المثال 




نضعه في مسار مكتبات اردوينو 





ونغلق  واجهه الاردوينو , ثم نعيد فتح البرنامج وبذلك نكون قد فعّلنا المكتبه الجديده ويمكننا  التأكد من اختيار example من قائمه ملف

وهكذا يمكننا استخدام هذه المكتبه الجديده ضمن الكود



المصدر MBARK TiЭSTO Blog

المؤقتات الزمنية و التحكم اللحظي بمنافذ الأردوينو



السلام عليكم ورحمة الله تعالى وبركاته .

كيف تجعل منافذ الأردوينو أكثر إستجابة ؟؟ ذا السؤال الذي طالما يطرح علي في رسائل المتابعين على صفحتي الشخصية ، فهل يمكنني ذلك ؟؟ هل يمكنني ربط حساسات كثيرة مثل الالتراسونيك و الاشعة تحت الحمراء و المحركات مع  الأردوينو و جعلها تعمل بشكل واحد و بدون تأخير زمني ملحوظ ؟

في البداية يجب أن أشير إلى أن المتحكمات الأصغرية MCU برمجتها تعتمد على الأوامر السلمية Ladder أي تنفيذ البرامج يكون بالترتيب حسب موضع التعليمة بالكود , من الأعلى للأسفل , هناك استثناءات الأ وهي المقاطعات Interrupts و المؤقتات Timers.

لكن نرجع للسؤال الأهم ، هل يمكنهم كلهم العمل مع الأردوينو دون تأخير زمني ملحوظ ؟؟

 الجواب نعم

كيف ؟ هذا ما سنتعرف عليه سويا في  هذه التدوينة .

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

كأبسط مثال , برنامج Blink الذي يطبق على الباعث الضوئي LED المربوط على المدخل D13 يضيء لثانية واحده و يطفى لثانية واحدة 



/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */
 
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
  delay(1000); // wait for a second
  digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
  delay(1000); // wait for a second
}





هذا الأمر فيه عدة عيوب , منها أنه لا نستطيع عمل أي شيء خلال زمن التأخير , لا نستطيع مثلاً قراءة حالة مدخل معين خلال هذا الوقت او التحكم في حالة مدخل آخر , إلا بعد انتهاء زمن التأخير كما أن زمن التأخير لا يكون بالضبط بنفس القيمة المحددة , في المثل السابق التأخير الزمني هو 1000 ملي ثانية لكن فعلياً التأخير يزيد بقليل عن هذه القيمة , و اذا تم تشغيل هذا البرنامج لفترة طويلة سيكون واضحاً جداً ان التأخير الزمني بين عمليه الأنارة و الأطفاء تزيد عن 1000 ملي ثانية بوضوح تام ! 

الحل يكون باستخدام الأمر millis ففي الأردوينو يمكن تشغيل المؤقتات باستخدام هذا الأمر و ان يكون زمن الأضاءة و الأغلاق للباعث الضوئي LED بالضبط هو 1000ملي ثانية حتى و لو استمر البرنامج بالعمل لفترة طويلة , هذا رائع :)

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


/* Blink without Delay
 
 Turns on and off a light emitting diode(LED) connected to a digital  
 pin, without using the delay() function.  This means that other code
 can run at the same time without being interrupted by the LED code.
 
 The circuit:
 * LED attached from pin 13 to ground.
 * Note: on most Arduinos, there is already an LED on the board
 that's attached to pin 13, so no hardware is needed for this example.
 
 
 created 2005
 by David A. Mellis
 modified 8 Feb 2010
 by Paul Stoffregen
 
 This example code is in the public domain.

 
 http://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
 */

// constants won't change. Used here to 
// set pin numbers:
const int ledPin = 13; // the number of the LED pin

// Variables will change:
int ledState = LOW; // ledState used to set the LED
long previousMillis = 0; // will store last time LED was updated

// the follow variables is a long because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long interval = 1000; // interval at which to blink (milliseconds)

void setup() {
  // set the digital pin as output:
  pinMode(ledPin, OUTPUT);
}

void loop()
{
  // here is where you'd put code that needs to be running all the time.

  // check to see if it's time to blink the LED; that is, if the
  // difference between the current time and last time you blinked
  // the LED is bigger than the interval at which you want to
  // blink the LED.
  unsigned long currentMillis = millis();
 
  if(currentMillis - previousMillis > interval) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;   

    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW)
      ledState = HIGH;
    else
      ledState = LOW;

    // set the LED with the ledState of the variable:
    digitalWrite(ledPin, ledState);
  }
}


ممتاز هذا رائع , لكن لو اردنا عمل برامج معقدة سيكون وضع الكود بهذه الطريقة أمراً مربكاً للمبرمج , فالحل يكون بوجود مكتبة .

لحسن الحظ فالمهتمين بالأردوينو قاموا بكتابة عشرات المكتبات لتسهل على المستخدمين التعامل مع المداخل و المخارج بصورة سريعة و بدقة عالية , منها مكتبة  Metro .

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

اولاً يمكن تحميل المكتبة من هنا

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

مثلاً لو أردنا تشغيل 3 مداخل في الأردوينو بحيث يكون :

1)واحد منهم يعمل لأضاءة - اطفاء ضوء لمدة2000ملي ثانية 

2)يعمل كتعديل نبضي PWM بحيث يقوم بزيادة طول النبضة الفعالة  "زيادة توهج ال LED " مرة كل 10 ملي ثانية.

3) يعمل كمدخل قراءة لحساس تماثلي "مقاومة متغيرة" يقوم بالتحقق منها كل 200ملي ثانية و يزيد توهج LED مربوط على مدخل رقمي بتناسب طردي مع قيمة المقاومة المقروءة .

القطع المستخدمة في التجربة :

1) بطاقة أردوينو
2) مقاومة متغيرة Potentiometer
3) LED باعث ضوئي عدد 3
4)مقاومات عدد 3 "ان تكون قيمتها أقل من 1كيلو اوم"
5) اسلاك توصيل
6) Bread Board . 

المخطط :


البرنامج :

// Metro Library code 
//Written By : MBARK TiЭSTO 
//http://www.mbarktiesto.com
// 18/12/2015 
//....................................
#include <
Metro.h> // Include the Metro library
//first , Blink Led for 150ms
Metro LED_flasher = Metro(2000);
boolean LEDState=true;
//second , Increase dimming For Led by 1 each time
Metro PWM_Cycle = Metro(10);
int i=0;
int Factor=1; //or -1
// third , Read Potentiometer and control the bright
//of led connect to another PWM Pin 
Metro Sensor=Metro(200);

const int LED=13;
const int pwmPin=6;
const int sensorPin=A0;
const int pwmPin2=3;
void setup() {
  
// put your setup code here, to run once:
pinMode( LED ,OUTPUT);
pinMode( pwmPin ,OUTPUT);
pinMode( pwmPin2 ,OUTPUT);
pinMode( sensorPin ,INPUT);

}

void loop() {
  
// put your main code here, to run repeatedly:
   
if (LED_flasher.check() == 1) { // check if the metro has passed its interval .
  
digitalWrite(LED,LEDState);
  LEDState=!LEDState;
   }
  
if (PWM_Cycle.check() == 1) { // check if the metro has passed its interval .
   
analogWrite(pwmPin,i);
   
if(i==0){Factor=1;}
   
if(i>255){Factor=-1;}
   i+=Factor;
}
  
if (Sensor.check() == 1) { // check if the metro has passed its interval .
  
int SensorValue=analogRead(A0);
  
analogWrite(pwmPin2,SensorValue/4);
}
}

هذه أحدى الطرق لزيادة فاعلية برنامجك , حاول دائماً ان لا تستخدم ال delay بشكل كبير خصوصاً عندما تحتوي مشاريعك على العديد من القطع او التعليمات التي تحتاج دقة في الوقت .

المصدر MBARK TiЭSTO Blog

الأربعاء، 9 سبتمبر 2015

موضوع سطحي : أنظمة SCADA ماهي وكيف تعمل وعلاقتها بالإختراقات الميكانيكية



السلام عليكم ورحمة الله وبركاته .

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

عزيزي الزائر  أعجبك الموضوع فلا تبخل علي بلايك للفيديو وأن تشترك معي .



MBARK TieSTO

الخميس، 28 أغسطس 2014

“إنتل Intel” تكشف عن أصغر مودم 3G في العالم



السلام عليكم .

كشفت شركة “إنتل” عن مودم “ثري جي” 3G جديد بالغ الصغر وبحجم يقارب حجم قطعة الـ “سنت” النقدية، وذلك بهدف استخدامه ضمن الأجهزة المنزلية المتصلة بالإنترنت أو ما بات يُعرف بـ “إنترنت الأشياء”.

وتقول الشركة إن “إكس إم إم 6255″ XMM 6255، الذي تبلغ مساحته 300 ميلي متر مربع، هو أصغر مودم في العالم، والذي يمكن استخدامه في تقنية الأجهزة القابلة للارتداء، وكذلك الأجهزة الأمنية، مثل أجهزة إنذار الحريق الذكية.

وقامت “إنتل” ببناء هذا المودم على نحو يتحمل درجات الحرارة المرتفعة ويتحمل الظروف الصعبة. كما يتميز المودم بأنه مزود بمصدر طاقة داخلي.

ومن جهته، قال سيرجس موشل، مدير الأبحاث لدى شركة “جارتنر” إن هذا المنتج يشير إلى نية “إنتل” على كسب موطئ قدم لها في سوق الاتصالات المتنقلة.

الجمعة، 11 يوليو 2014

تعرف على معاني الرموز المتواجدة في بطاقات الذاكرة SD card قبل شرائها



مايجب عليك ان تنتبه إليه اثناء شراء بطاقة ذاكرة لآلة التصوير خصوصا إن كانت تسجل الڤيديوهات بجودة عالية اقصد Full HD 1080p و HD 720pانه لايمكن ان يقل إختيارك عن بطاقة من تصنيف 6 ، اما التصنيف 2 و 4 هو فقط من اجل تخزين بيانات مثل mp3 ملفات txt .... . وهذه صورة اخدتها من موقع امازون ستساعدك على إختيار سرعة البطاقة التي انت بحاجة إليها حسب إستعمالك لها


ان سرعة نقل الملفات يغلب على ثمنها ، وهذا ما لايعرفه العديد ، فثمن بطاقة 2 جيغا من تصنيف 6 ليس كبطاقة 2 جيغا من تصنيف 2 ، لهذا قبل شراء بطاقة ذاكرة تذكر دائما هذا المعيار .

الخميس، 15 مايو 2014

ماهو vps وما فائدته ومميزاته وعيوبه


السلام عليكم 

لطالما تسمع كثيرا عن VPS  خصوصا في إختراق المواقع والسيرفرات لكن اليوم سوف أقربك إن شاء الله من ماهو VPS وكيف يعمل وماهي مزاياه وعيوبه.

تعريف بسيط : ماهو vps

ان كنا سنجيب ماهو vps بإختصار فسيكون الجواب vps هو اختصار Virtual private server والذي يمكننا تسميته بالخادم الافتراضي الخاص وهو خادم (سيرفير) تم تجزيئه الى عدة اجزاء مختلفة, كل جزء مع نظام تشغيل خاص به. هذه الخوادم هي الات افتراضية virtual machine والتي يتم تقديمها حصريا الى زبون او عميل واحد.
اما تعريف vps لدى مقدمي خدمات الاستضافة 

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

فوائد ومميزات وعيوب الـvps

بعد تعريف ماهو vps, سنتعرض بعض فوائد vps. كما قلنا سابقا Virtual private server هو خادم افتراضي يمكنك استخدامه ايضا كحاسوب شخصي ما يميزه هو أنه لا يستخدم الكثير من bandwidth مثل أجهزة الكمبيوتر المنزلية الخاصة بك كذلك يمكنك تشغيل vps لكامل الاسبوع 24 ساعة على 24 ساعة متواصلة بدون الحاجة الى ايقافه والمهم انك لن تدفع فاتورة كهرباء باهضة في اخر الشهر. نتطرق الان الى مميزات وعيوب vps على حدى…

مميزات Virtual private server 

مشغلوا vps لديهم حق الوصول الإداري الكامل (وصول الجذر) إلى الجزء المخصص لهم.
يتم عزل الحسابات (إلى حد ما) من حسابات أخرى على نفس الخادم.
تتم المحافظة على الأجهزة وشبكة البنية التحتية من قبل مزود استضافة.
vps أقل تكلفة من خطط dedicated server.

عيوب Virtual private server 

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