بایگانی برچسب: s

ساخت یک فرستنده رادیویی عتیقه :)

اصولا عتیقه کلمه‌ایه که به اشیاء قدیمی و با ارزش اطلاق میشه. خب، در اینجا هم قراره یه طراحی قدیمی و با ارزش رو بررسی کنیم. در این پست، که پس از مدت بسیار طولانی داره نوشته میشه اون هم وسط شرایط کرونایی و قرنطینه و …؛ قراره بررسی کنیم چی شد که اصلا رادیو به وجود اومد. این پست، قراره تا حد خوبی مفاهیم فیزیک، الکترونیک و مخابرات رو در خودش داشته باشه. اما نترسید! قرار نیست مثل کلاسای حوصله‌سربر دانشگاه باشه؛ یا حتی مثل کتابهای دانشگاهی پیچیدگی داشته باشه. صرفا یک سری مفاهیم رو مرور می‌کنیم و بعد میریم سراغ این که اولین ارسال‌کننده‌ها و دریافت‌کننده‌های رادیویی، چه شکلی بودند و چه طور کار می‌کردند.

مفهوم رزونانس

رزونانس یا تشدید، یک مفهوم فیزیکی و مهمه. برای درک بیشتر و بهترش، میشه یک مثال زد. این مثال رو احتمالا اگر یک ساز در خونه داشته باشید، بتونید به سادگی درک کنید (حتی نیاز نیست ساز ارگانیک/فیزیکی باشه. کافیه که یک اپلیکشن پیانویی چیزی روی گوشی موبایلتون نصب کنید). فکر کنید یک نُت خاص رو روی سازتون می‌زنید. این نت به تنهایی قدرتی نداره. حالا فرض کنید که همون نُت رو دقیقا همزمان با این، یک جای دیگه از ساز بزنید (به اصطلاح موسیقی، اونیسون اجرا کنید اما در دو اکتاو متفاوت). این باعث میشه که صدای اون نت بلند تر شنیده بشه.

همین مفهوم، باعث میشه که در ارکستر و …؛ به جای مثلا یک ویولن، سی‌تا ویولن داشته باشیم که یک نُت رو همزمان بزنن (دقت داشته باشید که ارکستراسیون و …، مربوط به دورانی میشه که هنوز میکروفن، امپلی‌فایر و بلندگو اختراع نشده بودن. پس نیاز داشتند که از یک مفهوم فیزیکی استفاده کنند که صدا به گوش همه برسه). حالا باید ببینیم که خب، روزنانس به طور کلی چیه؟ رزونانس به طور کلی به فرایندی گفته میشه که طبق اون، دو موج در هم ضرب میشن. اما این ضرب، روی بلندا (amplitude) تاثیر داره و نه زیرایی (pitch/frequency). یعنی چی؟ یعنی اگر یک موج داشته باشیم با فرکانس ۴۴۰ هرتز، و همزمان یک موج مثلا ۸۸۰ هرتزی ایجاد کنیم، بلندای موج اول بیشتر میشه و نتیجتا صدا رو بیشتر می‌شنویم.

مفهومی در امواج هست به اسم «هارمونیک». مثلا اگر بسامد (زیرایی) همون موج رو ضرب در ۲ کنیم، به یکی از هارمونیک‌های اون رسیدیم. همین هارمونیک باعث میشه که بگیم «این فرکانس، یک فرکانس تشدید برای موج یا سیگنال ماست».

کاربرد رزونانس

تقریبا ما هرجا نیاز داشته باشیم از طول موج خاصی استفاده کنیم، داریم از رزونانس هم استفاده می‌کنیم. یکی از کاربردهای رزونانس در واقع در رادیوه‌های AM بوده. نیکولا تسلای بزرگ هم سعی داشته با استفاده از این خاصیت، سیستم انتقال قدرت بی‌سیم درست کنه که خب، متاسفانه در دنیای ایده‌آل شدنیه و نه در دنیای واقعی، چرا که دقیقا همین امواج ارسالی، همونطور که ممکنه بر اثر رزونانس قوی بشن، ضعیف‌تر هم بشن. اما کم کم مردم فهمیدن که خب نیازی نیست حتما قدرت باهاش منتقل بشه، بلکه می‌تونیم اطلاعات رو منتقل کنیم.

و همین ایده، باعث شد که چیزی که در این پست قراره بررسی کنیم، ساخته شه. چیزی که بهش میگن «فرستنده شکاف جرقه». این ابزار اولین بار برای ارسال تلگراف به صورت بی‌سیم به کار رفته و کارکرد جالبی هم داره. در ادامه بیشتر و بیشتر بررسیش می‌کنیم.

بررسی شماتیک فرستنده

خب همونطور که می‌بینید یه منبع تغذیه و یک کلید داریم. همچنین، یک Induction Coil یا سیم‌پیچ القاگر قرار گرفته.

این بخش از مدار، وظیفه‌ش اینه که یه حجم زیادی برق تولید کنه. مشابه چیزی که در شوکر‌ها اتفاق می‌افته. منتها اینجا قرار نیست به کسی شوک بده، بلکه اون ولتاژ بالا (چیزی در حد ۱۰-۲۰ کیلوولت) باعث میشه در جایی که در مدار به اسم Spark Gap یا شکاف جرقه مشخص شده، یک تخلیه الکتریکی صورت بگیره. این تخلیه الکتریکی، باعث به ارتعاش در اومدن القاگری میشه که در انتهای مدار به زمین متصل شده. این ارتعاش به کمک آنتن و خازن پارازتیکی که بین آنتن و زمین شکل گرفته؛ باعث میشن که سیگنال ما در فضا پخش بشه اما خب هرچی جلو تر میره، ضعیف و ضعیف‌تر میشه تا این که کلا به یک وضعیت پایداری برسه.

حالا برای دریافتش باید چه کنیم؟ برای دریافتش هم کافیه که فقط یک مدار شامل یک آنتن، القاگر و خازن بسازیم. در مورد میزان خازن، باید مقداری انتخاب کنید که با فرکانس رزونانس بتونه مدار رو کوک کنه. برای این منظور، ماشین‌حساب آنلاین و البته فرمول‌های ریاضی هم وجود دارند.

این مطلب رو خیلی وقت بود که دوست داشتم بنویسم اما فرصت نشد. بالاخره امروز نوشتمش و امیدوارم مفید واقع بشه 🙂

Share

روز آفتابی و لامپ روشن

سلام. در این مطلب، قصد داریم در مورد ساختار کامپیوتر بحث کنیم. البته بیشترین چیزی که توی این مطلب بهش پرداخته میشه، دروازه های منطقی هستند و این که چطور میتونیم اون ها رو بسازیم.

بسیار خوب، عنوان مطلب به قدر کافی گویا هست که قراره چی رو به چی ربط بدیم، ولی بیاید این مثال رو در نظر بگیریم :

یک اتاق داریم که پنجره های زیادی داره و موقعیتش طوریه که در طول روز، بسیار نورگیره. واردش میشیم و می بینیم که یه لامپ روشنه. بعد دنبال کلید میگردیم. می بینیم که دو تا کلید کنار در هست، که هردو در وضعیت خاموش قرار داره. اولین احتمالی که پیش خودمون در نظر میگیریم، اینه که برقکار محترم کلید رو برعکس بسته. خب میگیم ایرادی نداره. یکی رو میزنیم، چراغ خاموش نمیشه. برش میگردونیم به حالت اول و اون یکی رو میزنیم. بازم چراغ خاموش نمیشه. یهو کنجکاو میشیم که هر دو کلید رو با هم در حالت روشن قرار بدیم، اون موقعه که می بینیم چی شد؟ چراغ خاموش شد!

حالا چه چیزی باعث شد که چراغ ما خاموش بشه؟ اینجاست که به جادوی ترانزیستورها باید ایمان بیاریم. در واقع دو کلید ما به یک مدار به این شکل وصل هستند :

0 -NAND Gate using transistors

 

این مدار، یک مدار یا بهتر بگم دروازه منطقیه که بهش NAND میگن. این مدار رو ما توی اون کلید قرار دادیم، و جدول درستیش به این شکله که هر وقت هر دو ورودی صحیح باشن، خروجی غلط میشه. حالا برای نمایش دادن بهتر این گیت، از این نماد استفاده میشه :

1- NAND gate

خب، سایر گیت ها (که با نماد های دیگه ای نشون داده میشن) رو میتونیم از این گیت بسازیم. اما چیزی که هست اینه که این گیت، چیزیه که کامپیوتر رو میسازه. در واقع در عمده IC هایی که خریداری میکنیم تعداد زیادی گیت NAND قرار داره که با وصل کردنش به هم، میتونیم گیت های دیگه ای رو هم بسازیم.

2-NAND Logic

خب، حالا فرض کنیم که به جای دو تا ورودی، یه ورودی دادیم به گیت NAND . یعنی از یک کلید، دو سیم به هر دو ورودی گیت وصل کردیم، به این شکل :

3-NOT Logic using NAND

حالا، اگر این کلید رو بزنیم، خروجی غلط و اگر خاموشش کنیم خروجی درست میشه. این ترکیب رو «نقض کننده» یا NOT هم بهش میگیم. در واقع گیت NOT که یک گیت با یک ورودی هست رو میتونیم به این شکل بسازیم.

الان میدونیم که یک NOT یا نقیض وجود داره. حالا میتونیم به جای اون ورودی، یک NAND با دو ورودی قرار بدیم که به این شکل در بیاد :

4-AND Logic using NAND

خب این مدار، یکم پیچیده شد. ولی دقت کنید که داره نقیض نتیجه NAND رو به ما میده. یعنی چی؟ یعنی در صورتی خروجی درست میشه که هر دو ورودی درست باشن. این منطق و این مدار هم که AND هست، و اگر جبر بول رو کمی بدونید میدونید که از بیسیک ترین دستورات جبر بول هست.

حالا، یه مدل دیگه این گیت ها رو پیش هم میچینیم. چطوری؟ این بار به جای نقض کردن نتیجه، نقیض ورودی ها رو به عنوان ورودی میدیم به یک گیت NAND . در واقع به این شکل :

5-OR Logic using NAND

حالا نتیجه به این شکل هست که «درصورتی که حداقل یکی از ورودی ها درست باشه، نتیجه درست میشه». و این منطق، منطق OR هست. در واقع گیت OR رو هم با NAND پیاده سازی کردیم.

یک مدار دیگه هم میمونه که نوع خیلی خاصی از OR هست. در واقع به این شکله :

6-XOR Logic using NAND

توی این گیت جدید، ما در واقع وقتی به نتیجه درست میرسیم، که تعداد «فرد» از ورودی ها (در اینجا یک، چون دو تا ورودی بیشتر نداریم) درست باشن. این منطق و این گیت رو «یای انحصاری» یا XOR میگن. اگر یک IC داشته باشیم که ۵ تا گیت NAND داخلش باشه، میتونیم ازش یک XOR بسازیم.

همه ما میدونیم که این گیت ها خودشون نماد انحصاری دارن و وقتی قراره چیزی با استفاده ازشون طراحی کنیم، بهتره (و باید!) از نمادهای خودشون استفاده کنیم، ولی یکی از دلایلی که این مطلب رو نوشتم این بود که میخواستم شما رو با ساختار درونی گیت ها آشنا کنم، همچنین میخواستم بررسی کنم که با استفاده از IC هایی که گیت NAND داخلشون هست، چطور میشه به سایر گیت ها رسید.

سال نو مبارک، موفق باشید 🙂

Share

ساخت یک کامپیوتر ۴ بیتی ساده با استفاده از مدارات منطقی

یک زمانی، حتی فکر کردن به این که بتونیم با چندتا مدار ساده یک کامپیوتر (حتی ۴ بیتی) هم داشته باشیم، احمقانه و ناممکن به نظر میرسید. چرا که هزینه شبیه سازی خیلی از مدارها و تستشون بسیار بالا بود. اما توی این دوره، شما با خوندن چند تا داکیومنت و نصب چند نرم افزار ساده، میتونید کامپیوتر خودتون رو بسازید. بسیار خوب، منبع این پست ، این مقالست که یک ویدئوی خوب هم داره. توی این مقاله به جای استفاده مستقیم از مدارات منطقی، اومدن و از ترانزیستور استفاده کردن، اما باز هم استفاده از ترانزیستور منطقی به نظر نمیرسه، چرا که مدارهای منطقی کوچک ترن و فهمشون هم راحت تره.

مدارهای منطقی چی هستن؟

به صورت خیلی ساده بخوام این رو توضیح بدم، میگم مجموعه ای از ترانزیستور ها که عملیات منطقی (با جبر بول) مثل «و» و «یا» و «نفی» رو انجام میدن. و از ترکیبشون هم میشه مدارهای پیچیده تر یا مدارهای منطقی دیگه رو ساخت. برای فهم بهتر این قضیه، مقاله ویکیپدیا در این باره رو بخونید. توی این پست فرض بر اینه که شما، مدارهای منطقی رو بلدید و میدونید که چی هستن و چی کار میکنن.

برای پردازنده کوچکمون چی نیازه؟

اول از همه، نیاز داریم که یک مدار Adder بسازیم. مدارهای Adder معمولا از چند تا Full Adder یک بیتی تشکیل میشن، و هر فول ادر یک بیتی هم از دو تا Half-adder .

برای ساخت Half-adder کافیه که یک بار ورودی A رو NOT کنیم و با B اون رو AND کنیم، سپس B رو NOT کنیم و با A اون رو AND کنیم. آخر هم نتیجه دو تا AND رو با هم OR کنیم. برای بدست آوردن رقم نقلی هم کافیه که A و B رو مستقیما با هم AND کنیم.half-adder2

مدار Half Adder نهاییمون به این شکل میشه. اما استفاده مدوام از NOT و AND و OR باعث سخت شدن توسعه ماشین میشه، پس از مجموعه ای که برای ساخت Half Adder استفاده کردیم میتونیم صرف نظر کنیم و از مدار XOR استفاده کنیم. البته همچنان برای رقم نقلیمون به AND نیاز خواهیم داشت.

بسیار خوب، برای Full Adder نیاز داریم که از پیش تعیین کنیم رقم نقلی ای وجود داره؟ یا نه! و برای این کار غیر از A و B یک ورودی به اسم Carry In یا «رقم نقلی ورودی» خواهیم داشت. و سپس، رقم نقلی ورودی رو باید به عنوان ورودی به یک Half-Adder دیگه بدیم. سپس، نتیجه AND شدن A و B رو با نتیجه AND شدن اولین Half-Adder و Carry In رو با هم OR کنیم تا رقم نقلی کلی بدست بیاد. پس مدار ما به این شکل خواهد شد :

full adderخب، این دو مدار رو الان ساختیم. قدم بعدی، ساختن کامپیوترمونه!

برای ساختن یک Adder چهار بیتی، باید به این شکل فول ادر ها رو کنار هم بچینیم :

Slide11همونطور که دیدید، این روش چیدن Adder ها پشت هم، مدل Ripple Carry نامیده میشه. خب، این کامپیوتر کوچک، میتونه اعداد ۰ تا ۱۶ (در دنیای بدون علامت و با در نظر گرفتن رقم نقلی) و -۱۶ تا ۱۵ (در دنیای علامت دار و بدون در نظر گرفتن رقم نقلی) رو به ما نمایش بده. با خاموش و روشن کردن به موقع مدارها عملیات جمع و تفریق رو میتونید انجام بدید.

من خودم با ترکیب این مدارها، این رو ساختم، و بیت ها  رو با لامپ نشون دادم :

4-bit computer simulation

برای شبیه سازی چه نرم افزاری نیازه؟

من برای کشیدن نقشه Half Adder و Full Adder از تخته وایت برد اتاقم (بله! تخته وایت برد توی اتاقا الزامیه!) و نرم افزار Logisim (موجود در مخازن اوبونتو) استفاده کردم. برای شبیه سازی کلی ماشین هم از Logic.ly که آزمایشگاه آنلاین داره استفاده کردم. البته هر نرم افزار دیگه ای میتونه بهتون در شبیه سازی کمک کنه. حتی میتونید با VHDL هم بنویسیدش و تستش کنید!

امیدوارم که این پست هم براتون مفید واقع شده باشه!

موفق باشید.

Share