۲۸ مطلب با موضوع «آموزش» ثبت شده است

شمارنده تک رقمی با ATmega8 و 7-seg

سون سگمنت (Seven-segment) یک قطعه برای نمایش ارقام و بعضی حروف خاص هست. حتما سون سگمنت ها رو تو آسانسور یا محافظ کولر (اونایی که ولت سنج دارن) یا روی بعضی کولر ها برای نمایش دما دیدید. این قطعه دارای هفت LED اصلی برای نمایش ارقام و ... و یک LED اختیاری برای نقطه هست که در واقع برای کامل شدن یک بایت (8 بیت) اضافه می شود. از آن جا که این قطعه از LED ها تشکیل شده دارای دو نوع کاتد مشترک (com-cathode) و آند مشترک (com-anode) که در آن ها به ترتیب پایه های منفی آن ها یا مثبت آن ها به هم وصل شده اند. البته که این تفاوت در ظاهر و کارکرد فرقی نخواهد داشت اما در زمان برنامه نویسی تفاوت هایی هست.

همانطور که می بینید بخش های اصلی یک سون سگمنت با حروف A تا G نام گذاری شده اند و نقطه که اختیاری است با حرف DP که مخفف Decimal point است نام گذاری می شود.

ادامه مطلب...
مجوز مطالب و محتوا ۰۲ اسفند ۹۹ ، ۱۳:۰۹ ۰ نظر موافقین ۱ مخالفین ۰
بهنام سیم جو

مبانی عددی

مبانی عددی از جمله مباحث مهم در رشته کامپیوتر و الکترونیک هست و از آنجا که به تازگی به موضوع AVR پرداختم لازم شد تا حتما یک مطلب در این باره بنویسم. مبنای عددی از گذشته های دور در ریاضیات وجود داشته و سبب شکل گیری دنیای دیجیتال شد. اعدادی که امروزه عموم مردم دنیا از آن ها استفاده می کنند مبنای ده هستند ولی افرادی هم بوده اند که از مبنا های عددی دیگر استفاده می کردند. امروزه مبنا های پرکاربرد دیگر شامل مبنای دو (باینری)، مبنای 8 (اوکتال) و مبنای 16 (هکس) هم هستند. به طور کل مبنای عددی روش ها گوناگون نمایش مقادیر عددی هست.

ادامه مطلب...
مجوز مطالب و محتوا ۲۶ بهمن ۹۹ ، ۰۹:۳۸ ۱ نظر موافقین ۱ مخالفین ۰
بهنام سیم جو

نظرات (۱)

سیدمهدی موسویان

چشمک زن هشتایی با ATmega8

همون طور که قبل تر گفته بودم به عنوان اولین پروژه یک چشمک زن هشتایی می سازیم.

کد برنامه

/*
 * 8-LED-flasher.c
 *
 * Created: 08/11/1399 10:24:35 ب.ظ
 * Author : bsimjoo
 */
#define F_CPU 1000000

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
    DDRD=0xff;
    PORTD=0xff;
    while (1)
    {
        for(uint8_t i=1;1;i*=2){
            _delay_ms(300);
            PORTD=i;
            if(i>=128) break;
        }
    }
}

تفسیر کد...

ادامه مطلب...
مجوز مطالب و محتوا ۱۵ بهمن ۹۹ ، ۱۳:۲۸ ۰ نظر موافقین ۴ مخالفین ۰
بهنام سیم جو

شروع برنامه نویسی AVR

تو برنامه نویسی AVR ساختن یه فلاشر هشتایی عین Hello world میمونه و اکثر tutorial ها اولین پروژه شون همینه! منم در آینده نزدیک از همین پروژه شروع می کنم ولی برای شروع باید چنتا نرم افزار رو نصب و راه اندازی کرد. با ما همراه باشید که کلی کار داریم!

ادامه مطلب...
مجوز مطالب و محتوا ۰۸ بهمن ۹۹ ، ۱۵:۵۴ ۰ نظر موافقین ۳ مخالفین ۰
بهنام سیم جو

شروع کار با AVR

مقدمه

همونطور که پیش تر در پستی با گذاشتن مطالبی در حوضه میکروکنترلر AVR موافقت شد با این پست مطالب با این موضوع را شروع می کنم.

همون طور که قبلا هم نقل قول کردم میکروکنترلر ها در واقع دسته ای از تراشه های IC هستند که امکان برنامه نویسی و کنترل مدارات الکتریکی رو به ما می دهند. این تراشه ها درواقع چیزی شبیه به یک رایانه در ابعاد بسیار کوچک هستند که درون خود دارای بخش هایی مانند CPU, RAM, ROM و چند نوع حافظه هستند. این تراشه های از خانواده های مخلف و با معماری ها و ویژگی ها مختلفی هستند که به جرئت میشه گفته خانواده AVR بهترین و پرکاربرد ترین خانواده این دسته از تراشه ها هستند. در ادامه کمی بیشتر در مورد AVR ها آشنا خواهیم شد.

ادامه مطلب...
مجوز مطالب و محتوا ۰۳ بهمن ۹۹ ، ۱۳:۲۶ ۲ نظر موافقین ۲ مخالفین ۰
بهنام سیم جو

رمزش شکست؟!

طی یک اتفاق متوجه شدم که سیستم عامل اوبونتویم (Ubuntu mate 16.04) کاملا نا امن هست!

از اونجایی که من از دو سیستم عامل روی سیستمم استفاده می کنم از یک بوت لودر گراب (Grub boot loader) استفاده می کنم که در منوی بوت یک گزینه به نام:

Ubuntu GNU/Linux, with Linux 3.8.0-26-generic (recovery mode)

وجود داره. طی یک اتفاق مجبور شدم به این گزینه یک سری بزنم که به گزینه ی "Drop to root shell prompt" بر خوردم. کنجکاو شدم ببینم تا چه حد دسترسی بهم میده رفتم توش و نوشتم passwd [my-username] که دیدم ازم رمز جدید می خواد. طبق روال عادی رمز رو وارد کردم و قبول شد، ریبوت (Reboot) کردم و دیدم رمز عوض شد. به همین سادگی رمز عوض شد بدون این که ازم رمز قبلی رو بپرسه. البته که من هنوز تو استفاده از لینوکس تازه واردم ولی خیلی ساده رمزش شکسته شد.

حالا اگر شما هم از بوت لودر استفاده می کنید مراقب باشید چون حداقل یک مرحله هکر هایی که دسترسی فیزیکی دارند رو جلو انداختین!!

مجوز مطالب و محتوا ۲۰ خرداد ۹۹ ، ۱۳:۰۰ ۸ نظر موافقین ۲ مخالفین ۰
بهنام سیم جو

نظرات (۸)

علیرضا آهنی
علیرضا آهنی
فاروق کریمی زاده
علیرضا آهنی
فاروق کریمی زاده
فاروق کریمی زاده

کنترل ورودی در Python

def controllInput(func:callable, prompt = '>'):
  while True:
    try:
      inputValue = input(prompt)
      value = func(inputValue)
      if type(value) == bool:
        if value:
          return inputValue;
        else:
          print('!!INVALID INPUT!!')
      else:
        return value, inputValue
    except:
      print('!!INVALID INPUT!!')
      
a = controllInput(str.isdigit, 'digit: ')
print(a, type(a))
b = controllInput(int, 'int: ')[0]
print(b, type(b))
c = controllInput(str.isalpha, 'alpha: ')
print(c, type(c))
d = controllInput(lambda x: x.isalpha() and len(x)==5, '5 alpha:')
print(d, type(d))
مجوز مطالب و محتوا ۰۷ دی ۹۸ ، ۱۸:۵۹ ۱ نظر موافقین ۳ مخالفین ۰
بهنام سیم جو

نظرات (۱)

علیرضا آهنی

استفاده از نوع ها در سی شارپ به گونه ای دیگر!

در سی شارپ شما می توانید نوع (type) ها را در قالب یک متغییر برگرداند و جا به جا کرد. این نوع ها می توانند انواع متغیر ها و یا کلاس ها و در کل هر شئ موجود باشند. به طور مثال اگر کلاس های مشتقی دارید می تواند کلاس پایه و تمامی کلاس های مشتق را به گونه ای بنویسید که توع خود را در غالب یک متغیر اعلام کنند

ادامه مطلب...
مجوز مطالب و محتوا ۰۸ مرداد ۹۸ ، ۱۳:۰۰ ۰ نظر موافقین ۲ مخالفین ۰
بهنام سیم جو

Image hijack

این اتفاق یعنی Image hijacking در ویندوز زمانی رخ می دهد که کاربر یا یک بدافزار در رجیستری به آدرس زیر تغییراتی به وجود بیاورد.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

اگر آدرس بالا کلیدی با نام برنامه مورد نظر مانند taskmgr.exe ساخته شود و در آن مقداری از نوع رشته با نام Debugger ایجاد کنید می توانید در آن آدرس یک برنامه را بنویسید تا با برنامه اصلی جاییگزین شود و به جای آن اجرا شود و یا با خالی گذاشتن این مقدار مانع از اجرا شدن آن شوید. (در این مثال می توانید تر اجرا شدن برنامه Task manager تغییرات ایجاد کنید.)

توجه داشته باشید که این عمل برای هر فایل اجرایی قابل انجام است و حتی می تواند سبب اجرا نشدن نرم افزار های حیاتی ویندوز و ایجاد خطا شود؛ پس مراقب باشید. این شما هستید که می توانید از آن استفاده خوب یا بد بکنید!

مجوز مطالب و محتوا ۱۵ تیر ۹۸ ، ۱۳:۰۰ ۰ نظر موافقین ۳ مخالفین ۰
بهنام سیم جو

چالش ترک عملگر ها!

چند روز پیش یه چالش دو نفره بین من و آقای کریمی زاده راه افتاد که آن را با شما به اشتراک می گزارم

چالش از این قرار است: باید کدی بنویسید که با تعداد محدودی عملگر مجاز (تنها عملگر های مجاز عملگر های منطقی(عملگر های و؛ یا؛ نقیض) و عملگر انتساب (مساوی) هستند) بتواند دو عدد را در هم ضرب کند. عملگر های ضرب، جمع، تفریق، تقسیم و عملگر های بیتی و حتی عملگر های افزایش یا کاهش واحدی (++/--) غیر مجاز هستند. من تونستم کد رو به زبان سی شارپ (#C) بنویسم شما نیز با هر زبانی که می توانید بنویسید و در سایت apaste.info بارگزاری کرده (تاریخ انقضا نداشته باشد) و لینک آن را در نظرات ارسال. پاسخ بعد از دو هفته به اشتراک گزارده می شود.

مجوز مطالب و محتوا ۲۲ ارديبهشت ۹۸ ، ۱۰:۳۸ ۰ نظر موافقین ۱ مخالفین ۰
بهنام سیم جو