فهرست مطالب:

Digilog_Bike POV Display: 14 مرحله
Digilog_Bike POV Display: 14 مرحله

تصویری: Digilog_Bike POV Display: 14 مرحله

تصویری: Digilog_Bike POV Display: 14 مرحله
تصویری: Persistence of Vision Display using Microchip PIC 18F2550 Not Arduino 2024, نوامبر
Anonim
Image
Image

دیجیلوگ

دیجیتال + آنالوگ

دیجیتال با آنالوگ ملاقات می کند

POV

مقاومت بصری

همچنین به عنوان صفحه بعد از تصویر شناخته می شود ، اگر با سرعت زیاد تکان داده شود ، تصویر پس از آن باقی می ماند.

مردم تصور می کنند هنگام تماشای تلویزیون در حال تماشای فیلم هستند. اما در واقع ، او چندین عکس متوالی را مشاهده می کند. این تصویر به دلیل تأثیر تصاویر پس از باقی ماندن بر روی شبکیه چشم هنگام مشاهده تصاویر پی در پی ، اشتباه گرفته می شود. به این نوع توهم POV گفته می شود.

مرحله 1: ایده ایده

ایده ایده
ایده ایده

POV با اتصال یک بند LED به چرخ دوچرخه اجرا می شود.

مرحله 2: فهرست مواد

فهرست مواد
فهرست مواد
فهرست مواد
فهرست مواد

محاسبه و ورودی/خروجی

1. آردوینو مگا 2560 [arduino] x3

2. ماژول سنسور Hall V2 [YwRobot] x3

3. WS2812-5050 نئوپیکسل انعطاف پذیر [Adafruit] x3

4. مغناطیسی (قطر 15 میلی متر ، ضخامت 50 میلی متر) x3

5. Arduino Mega Case x3

خط قدرت

5. باتری لیتیوم 5000mAh/3.7V [TheHan] x3

6. تنظیم کننده AVR 5V و ماژول شارژ و PCM: JBATT-U5-LC [Jcnet] x3

7. کیت سیم جامپر 65PCS/SET [OR0012] x3

مرحله 3: ابزارها

ابزارها
ابزارها

ابزارهای زیادی لازم نیست ، اما شما نیاز دارید:

1. دستگاه لحیم کاری

2. آهن لحیم کاری

3. تفنگ چسب

4. نیپر

مرحله 4: ساختن قاب

Image
Image
ساخت قاب
ساخت قاب

برش دوچرخه و اتصال پایه

آسیاب برای بریدن چرخ های دوچرخه از روی دوچرخه و صفحات فولادی جوش داده شده تا چرخ ها محکم شوند.

مرحله 5: ترسیم ترسیم تصاویر و مفاهیم نهایی

ترسیم تصاویر و مفاهیم نهایی
ترسیم تصاویر و مفاهیم نهایی
ترسیم تصاویر و مفاهیم نهایی
ترسیم تصاویر و مفاهیم نهایی
ترسیم تصاویر و مفاهیم نهایی
ترسیم تصاویر و مفاهیم نهایی

ما اژدها را به عنوان تصویر نهایی انتخاب کردیم. زیرا به نظر می رسید که موج اژدها با اثر پس از تصویر به بهترین شکل نمایش داده می شود.

مرحله 6: برش تصویر متحرک را ایجاد کنید

تصویر متحرک را برش دهید
تصویر متحرک را برش دهید
تصویر متحرک را برش دهید
تصویر متحرک را برش دهید

تصویر را به سه قسمت تقسیم کنید که روی هر دوچرخه قرار می گیرد و در مجموع 12 تصویر را بر اساس رنگ و حرکت تقسیم کنید.

مرحله 7: آماده سازی نرم افزار

نرم افزار آماده کنید
نرم افزار آماده کنید
نرم افزار آماده کنید
نرم افزار آماده کنید

قسمت فرعی 1. آردوینو را نصب کنید

بارگیری آردوینو:

(متناسب با نسخه و سیستم عامل خود نصب کنید.)

-

قسمت دوم 2. کتابخانه را نصب کنید

*(اگر می خواهید از طریق Github نصب کنید ، لطفاً از پیوند بالا در Github Arduino Library دیدن کنید:

1. برنامه آردوینو را اجرا کنید

2. به پیوند اجازه دهید منوی بالا - طرح - شامل کتابخانه - کتابخانه. Zip را اضافه کنید

3. باید فایل. Zip را انتخاب کنید که قبلاً کتابخانه github را نصب کرده است

*(در صورت تمایل به استفاده از خدمات برنامه آردوینو)

1. برنامه های آردوینو را اجرا کنید

2. پیوند را مجاز کنید منوی بالا - طرح - شامل کتابخانه - کتابخانه مدیریت - جستجوی "Adafruit neopixel" - می توانید "Adafruit Neopixel by Adafruit" را مشاهده کنید

3. کتابخانه را نصب و به روز کنید

-

قسمت فرعی 3. برنامه مبدل را نصب کنید

1. برنامه Rotation Circle (R. C. P) را نصب کنید:

2. شما باید یک فایل README بخوانید

مرحله 8: تهیه منبع تغذیه سخت افزاری

ساخت منبع تغذیه سخت افزاری
ساخت منبع تغذیه سخت افزاری
ساخت منبع تغذیه سخت افزاری
ساخت منبع تغذیه سخت افزاری
ساخت منبع تغذیه سخت افزاری
ساخت منبع تغذیه سخت افزاری

*نحوه تامین ولتاژ آردوینو 5 ولت از طریق باتری به این صورت است. لطفا مراحل زیر را دنبال کنید.

1. باتری لیتیوم و ماژول شارژ JBATT را وصل کنید. (برای مرجع ، ماژول JBATT دارای یک سوئیچ قدرت داخلی است.)

2. ترمینال خروجی JBATT را به ترمینال Vin آردوینو و ترمینال Ground وصل کنید.

3. درگاه USB Micro 5pin را به درگاه شارژ وصل کنید تا بررسی کنید که آیا محصول به درستی کار کرده است یا خیر.

4. در مرحله بعد ، کلید داخلی را به ON روشن کنید.

5. اگر چراغ قرمز قرمز روشن شود و LED سبز در آردوینو روشن شود ، پیکربندی مرحله قدرت محصول به طور معمول تکمیل می شود.

مرحله 9: ساخت ورودی و خروجی سخت افزار و بررسی خروجی (کار NeoPixel)

ساخت سخت افزار ورودی و خروجی و بررسی خروجی (کار NeoPixel)
ساخت سخت افزار ورودی و خروجی و بررسی خروجی (کار NeoPixel)
ساخت سخت افزار ورودی و خروجی و بررسی خروجی (کار NeoPixel)
ساخت سخت افزار ورودی و خروجی و بررسی خروجی (کار NeoPixel)
ساخت سخت افزار ورودی و خروجی و بررسی خروجی (کار NeoPixel)
ساخت سخت افزار ورودی و خروجی و بررسی خروجی (کار NeoPixel)

*این قسمت شامل سنسور و مرحله خروجی است

1. سنسورهای آردوینو و هال را وصل کنید. پین داده به پین 2 آردوینو متصل می شود.

2. هنگامی که آردوینو روشن می شود و آهن ربا در تماس نزدیک با سنسور Hall است ، چراغ قرمز روشن می شود.

3. آردوینو و نئوپیکسل را وصل کنید. فقط 30 نئوپیکسل استفاده می شود.

4. پین داده را با پین 6 آردوینو وصل کنید.

5. آردوینو و کابل بارگیری را به پورت usb کامپیوتر خود وصل کرده و Arduino را در رایانه خود اجرا کنید.

6. Tool - board - "Arduino / Genuino Mega یا Mega 2560" را از نوار منوی بالای برنامه Arduino انتخاب کنید.

7. بررسی کنید آیا لیستی از محصولات وجود دارد که می توانند مستقیماً به پورت متصل شوند. اگر علامت زده نشده است ، روی آن کلیک کنید تا انتخاب شود.

8. کد زیر را بچسبانید و در بالا سمت چپ روی بارگذاری کلیک کنید. (پس از آن ، همه بارگذاری برنامه مراحل 5-8 را دنبال می کند.)

9. وقتی همه 30 پیکسل نئول روشن می شوند ، پیکربندی کامل می شود.

شماره 1 شامل فایل هدر و پیش پردازش

ابتدا باید کتابخانه Adafruit_NeoPixel را بیاوریم که بتواند Neopixels را اجرا کند.

کتابخانه را می توان با اعلان اشیاء مورد استفاده قرار داد.

کلاس Adafruit_NeoPixel می تواند 3 پارامتر را به صورت عمومی وارد کند.

اولین پارامتر تعداد LED ها است.

ثانیه پارامتر شماره پین متصل به ورودی دیجیتال Neopixel است.

پارامتر سوم این است که گزینه ها را با توجه به ویژگی های محصول وارد کنید. محصول سه رنگ WS2812b از ورودی "NEO_GRB" استفاده می کند

#عبارتند از

#تعریف PIN 6 نوار Adafruit_NeoPixel = Adafruit_Neopixel (30 ، PIN ، NEO_GRB+NEO_KHZ800) ؛

شماره 2 برپایی

در قسمت راه اندازی ، شیء را اولیه کرده و برای استفاده آماده کنید.

'Adafruit_Neopixle_Object.begin ()' همه LED ها را خاموش می کند.

خروجی 'Adafruit_Neopixle_Object.show ()' با روشنایی تنظیم شده در LED.

void setup () {

strip.begin ()؛ strip.show ()؛ }

شماره 3 حلقه اصلی

در حلقه اصلی از حلقه for برای خروج متوالی (0.1 ثانیه) LED ها به رنگ سفید استفاده می شود

حلقه خالی () {

برای (uint16_t i = 0؛ i <strip.numPixels ()؛ i ++) {strip.setPixelColor (i، 255، 255، 255)؛ strip.show ()؛ تأخیر (100) ؛ }}

مرحله 10: مونتاژ و اتصال به چرخ

مونتاژ و اتصال به چرخ
مونتاژ و اتصال به چرخ
مونتاژ و اتصال به چرخ
مونتاژ و اتصال به چرخ

1. Neopixels را وصل کنید. (به بررسی شماره پین توجه کنید)

2. سنسور Hall را وصل کنید. (به مرحله 9 مراجعه کنید)

3. قاب را بین دوچرخه ها به آردوینو وصل کنید. (قاب آردوینو را موازی با قاب دوچرخه وصل کنید).

4. آردوینو متصل به Neopixel را وارد کنید. (مراقب باشید چون تفنگ چسب داغ است).

5. سنسور Hall متصل شده را در آردوینو وارد کنید (اتصال کابل را محکم کنید تا سنسور Hall از بین نرود).

6. لحیم برای اتصال باتری. (هنگام لحیم کاری مراقب باشید).

7. آن را با تفنگ چسب ثابت کنید. (برای ایمن سازی فضا ، ماژول شارژ را روی باتری وصل کنید).

8. قبل از اتصال به آردوینو ، هر خط را وصل کنید ،

9. مطابق با هر شماره پین وصل کنید. (خطوط پرش برای ماژول شارژ را بدون اشتباه گرفتن متصل کنید).

10. یکبار با اسلحه چسب کار را تمام کنید ، (لطفاً مراقب باشید زمین نخورد).

مرحله 11: بررسی INPUT (داده های سنسور HALL)

بررسی ورودی (اطلاعات سنسور HALL)
بررسی ورودی (اطلاعات سنسور HALL)
بررسی ورودی (اطلاعات سنسور HALL)
بررسی ورودی (اطلاعات سنسور HALL)
بررسی ورودی (اطلاعات سنسور HALL)
بررسی ورودی (اطلاعات سنسور HALL)

*کد نرم افزار را بررسی کنید تا ببینید آیا سنسور کار می کند یا خیر.

1. کد زیر را جایگذاری و بارگذاری کنید.

2. روی دکمه Serial Monitor در بالا سمت راست آردوینو کلیک کنید.

3. هنگامی که آهنربا بیش از 1 ثانیه با سنسور Hall در تماس است ، هنگامی که کلمه "magnetic contact" روی مانیتور سریال ظاهر می شود ، پیکربندی کامل می شود.

------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ شماره 1 شماره پین و تنظیم را مشخص کنید

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

ارتباط را برای بررسی داده های سنسور Hall روی مانیتور سریال تنظیم کنید.

#تعریف سالن 2

void setup () {pinMode (HALL، INPUT)؛ Serial.begin (9600)؛ }

شماره 2 حلقه اصلی

داده های سنسور هال را با فاصله 0.1 ثانیه بررسی کنید.

اگر آهن ربا سنجیده شود و داده ها تغییر کنند ، "تماس مغناطیسی" به مانیتور سریال منتقل می شود.

حلقه خالی () {

if (digitalRead (HALL)) {Serial.println ("تماس مغناطیسی") ؛ } تأخیر (100) ؛ }

مرحله 12: الگوریتم کدگذاری

*ایجاد منطق و کدگذاری برای کنترل Neopixels بر اساس مقادیر حسگر.

1. کد زیر را جایگذاری و بارگذاری کنید.

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

3. سریع حسگر و آهنربا Hall را در عرض 1 ثانیه لمس کرده و رها کنید. این عمل را حدود 10 بار تکرار کنید.

4. پیکربندی کامل می شود زمانی که رنگ Neopixels به طور منظم تغییر می کند.

شماره 1 شامل فایل های سرصفحه و پیش پردازش

اول ، ما باید درک کنیم که حافظه Arduino Mega آنقدر بزرگ نیست که یک فایل تصویری را در خود نگه دارد.

بنابراین ، فایل هدر 'avr/pgmspace' برای استفاده از فضای مختلف حافظه استفاده می شود.

برای استفاده از Neopixels ، یک شی و پیکربندی را یک شماره پین ورودی/خروجی اعلام می کنید.

آرایه تصویر برای کدگذاری بسیار بزرگ است ، بنابراین فایلهای پیوست را بارگیری و جایگذاری کنید.

#عبارتند از

#شامل #تعریف PIN 6 #تعریف NUMPIXELS 30 #تعریف HALL 2 نوار Adafruit_NeoPixel = Adafruit_NeoPixel (NUMPIXELS ، PIN ، NEO_RGB + NEO_KHZ800) ؛ // چسباندن آرایه در 'image_array_1.txt' // "'image_array_2.txt' //" 'image_array_3.txt' // "'image_array_4.txt'

شماره 2 متغیر جهانی و راه اندازی

یک متغیر سراسری تنظیم کنید.

نکته اصلی این است که روشنایی را تنظیم کنید ، این چرخه عمر محصول را تعیین می کند.

int count = 0؛

دو برابر v = 0 ؛ double last_v = 0؛ تایمر دوگانه = میکرو ()؛ double ex_timer = micros ()؛ double last_timer = micros ()؛ int deg = 36؛ int pix = 35؛ int rgb = 3؛ q_arr دوگانه [2] = {0 ، 0} ؛ int HALL_COUNT = 0 ؛ دوبل VELO ؛ Double_timer = micros ()؛ void setup () {strip.setBrightness (255)؛ strip.begin ()؛ strip.show ()؛ Serial.begin (230400) ؛ }

شماره 3 حلقه اصلی - بخش خروجی بیان تصویر

این کد یک بیانیه مشروط در مورد نحوه خروجی زمان چرخش چرخ با وضوح است.

این قسمت از چرخه چرخاندن یکبار چرخ دوچرخه به عنوان یک پارامتر بسیار مهم استفاده می کند.

همچنین ، خواندن داده های آرایه تصویر از حافظه بسیار مهم است.

حلقه خالی () {

if ((شمارش (ex_timer / 120.0) - (micros () - processing_timer))) {timer = micros ()؛ if (VELO> 360000) {for (int i = 0+5؛ i <pix؛ i ++) {strip.setPixelColor (i - 5، strip. Color (pgm_read_byte (& (image_1 [شمارش] [1])) ، pgm_read_byte (& (image_1 [تعداد] [2])) ، pgm_read_byte (& (image_1 [شمارش] [0])))) ؛ } strip.show ()؛ } else if (VELO 264000) {for (int i = 0+5؛ i <pix؛ i ++) {strip.setPixelColor (i - 5، strip. Color (pgm_read_byte (& (image_2 [شمارش] [1])) ، pgm_read_byte (& (image_2 [تعداد] [2])) ، pgm_read_byte (& (image_2 [تعداد] [0])))) ؛ } strip.show ()؛ } else if (VELO 204000) {for (int i = 0+5؛ i <pix؛ i ++) {strip.setPixelColor (i - 5، strip. Color (pgm_read_byte (& (image_3 [تعداد] [1])) ، pgm_read_byte (& (image_3 [تعداد] [2])) ، pgm_read_byte (& (image_3 [تعداد] [0])))) ؛ } strip.show ()؛ } else if (VELO <= 204000) {for (int i = 0 + 5؛ i = 120)) {for (int i = 0 + 5؛ i <pix؛ i ++) {strip.setPixelColor (i - 5، strip. رنگ (0 ، 0 ، 0)) ؛ } strip.show ()؛ }

شماره 4 حلقه اصلی - پردازش و بررسی و سنجش زمان چرخه

این مهمترین بخش کل سیستم است.

ابتدا زمان انجام کل کد و تنظیم زمان خروجی LED در هر چرخه را بررسی کنید.

زمان حس شده در هر بار چرخش ، زمان چرخه بعدی را پیش بینی می کند.

شتاب را می توان با کم کردن آخرین زمان سیکل اندازه گیری شده از زمان چرخه اندازه گیری شده در زمان برآورد کرد.

سیستم زمان و شتاب پردازش را محاسبه می کند تا مدت زمان روشن شدن مداوم LED ها را محاسبه کند.

processing_timer = micros ()؛

if ((digitalRead (HALL) == HIGH) && (HALL_COUNT == 1)) {VELO = v ؛ v = micros () - last_timer ؛ ex_timer = q_arr [0] - q_arr [1] + v؛ last_timer = micros ()؛ q_arr [0] = q_arr [1]؛ q_arr [1] = v ؛ تعداد = 0 ؛ HALL_COUNT = 0 ؛ } else if (digitalRead (HALL) == LOW) {HALL_COUNT = 1؛ }}

مرحله 13: استفاده از نرم افزار

استفاده از نرم افزار
استفاده از نرم افزار
استفاده از نرم افزار
استفاده از نرم افزار
استفاده از نرم افزار
استفاده از نرم افزار

*از نرم افزار برای تبدیل تصویر و درج داده های راهپیمایی در کد استفاده کنید

1. تصویر مرحله بالا را در پوشه تصویر در پوشه R. C. P نصب شده در مرحله آماده سازی وارد کنید.

- نحوه قرار دادن تصویر به شرح زیر است.- تغییر نام 4 تصویر متحرک محصول شماره 1 به ترتیب 1-p.webp

2. فایل Ver.5.exe را اجرا کنید.

3. بررسی کنید که 12 فایل pro_1_code_1.txt به pro_3_code_4.txt در پوشه R. C. P ایجاد شده است.

4. اگر ایجاد نشده است ، محتویات config.txt را به عنوان فایل پیکربندی زیر تغییر دهید.

5. پس از ایجاد فایل ، کل محتوا را از فایل pro_1_code_1.txt کپی کرده و آن را در قسمتی که در کد زیر نشان داده شده جایگذاری کنید.

6. محتویات pro_1_code_2.txt ، pro_1_code_3.txt و pro_1_code_4.txt را در قسمت 5 به قسمت مشخص شده اضافه کنید.

7. با اشاره به شماره 5 و 6 ، pro_2_code… ، pro_3_code کد را به همین ترتیب تکمیل می کند.

مرحله 14: کامل کنید

کامل
کامل
کامل
کامل
کامل
کامل

تولید POV را تکمیل کرد که یک تصویر با سه چرخ ایجاد می کند.

توصیه شده: