فهرست مطالب:

Raspitone: آسان برای استفاده Jukebox: 7 مرحله
Raspitone: آسان برای استفاده Jukebox: 7 مرحله

تصویری: Raspitone: آسان برای استفاده Jukebox: 7 مرحله

تصویری: Raspitone: آسان برای استفاده Jukebox: 7 مرحله
تصویری: Консультант от бога Tg: cadrolikk 2024, نوامبر
Anonim
Raspitone: استفاده از Jukebox آسان است
Raspitone: استفاده از Jukebox آسان است

سلام ، پروژه بعدی من ، همانطور که قبلاً انجام می دادم ، یک پروژه بسیار مفید نیست:

این jukebox بر اساس Raspberry 3 B+ است

من می دانم ، چنین چیزی را می توان به راحتی با تلفن هوشمند و بلندگوی بلوتوث انجام داد.

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

می خواستم چیزی "پرنعمت" بسازم.

و به طور کلی ، با توجه به این واقعیت که خانم من قطعاً برای کامپیوتر یا بلوتوث یا هر چیز دیگری از قرن 21 ، (و حتی 20) ناامید است ، من مجبور شدم کاری بسیار ساده برای استفاده انجام دهم ………

بنابراین ، مشخصات به شرح زیر بود:

یک دکمه تنها برای راه اندازی دستگاه

صفحه لمسی (بسیار ساده) برای مدیریت موسیقی.

با یکبار لمس روی صفحه دستگاه را متوقف کنید.

و برای داشتن صدای خوب ………

تدارکات

برای این کار از:

1 تمشک 3 B+

1 سینمای خانگی قدیمی که به دلیل DVD خوان OOS بی فایده بود (یک سامسونگ 2.1 قدیمی با ووفر و 2 بلندگو که من آنها را متناسب با جعبه تغییر دادم)

1 برد HIFIBERRY DIGI+ (دارای خروجی نوری برای آمپر قدرت)

1 صفحه نمایش لمسی خازنی 7 اینچی (من برای تمشک Makeasy برای ورودی HDMI و تغذیه از طریق USB اما هر صفحه لمسی HDMI باید سالم باشد)

1 منبع تغذیه 5 ولت 5 آمپر

1 سپر رله

1 آردوینو نانو برای مدیریت فرایند روشن/خاموش کردن قدرت

1 IR منجر به رانندگی سینمای خانگی (هدایت شده توسط ترانزیستور 2N2222 NPN)

1 گیرنده مادون قرمز (برای یادگیری کدهای IR بخشی از پروژه ، من از هارد دیسک قدیمی چند رسانه ای با فرمان از راه دور دریافت می کنم)

3 عدد led

1 سوئیچ برای حالت تعمیر و نگهداری

1 سوئیچ برای کار بر روی آردوینو (هنگام بارگذاری ، آردوینو تنظیم مجدد می شود)

برخی از اتصالات JST و Dupont

و برای جعبه

چوب و تخته سه لا (اما ساخت جعبه را عمیقا توضیح نمی دهم). فقط برای گفتن اینکه ، در مورد بومر داخل جعبه ، تخته سه لا 10 میلی متر و چوب 18 میلی متر اجباری است اگر نمی خواهید در هنگام بازی جوک باکس را از اتاق نشیمن عبور دهید !!!!

مرحله 1: توضیحات قسمت تمشک:

Raspi باید موارد مختلفی را مدیریت کند:

1) دستورات به سینمای خانگی (از راه دور IR)

2) فایل های موسیقی

3) صفحه لمسی

4) ضربان قلب آردوینو (که Wdt را کنترل می کند (تایمر ساعت سگ))

من از توزیع strep Raspbian روی کارت SD 16 G شروع کردم (همانطور که ما فقط فایلها را از کارت SD می خوانیم ، استفاده از HDD ضروری نیست). من زمانی را صرف این قسمت نمی کنم زیرا وب پر از آموزش های لازم در این زمینه است.

بیایید قسمت های مختلف را در مراحل بعدی ببینیم….

مرحله 2: کدهای راه دور IR

از آنجا که نمی توانستم طرح مدار سینمای خانگی را پیدا کنم ، تصمیم گرفتم آن را از طریق دستورات از راه دور رانندگی کنم

اولین مرحله ای که باید انجام می دادم یادگیری راسپی با کدهای فرمان از راه دور سینمای خانگی بود. برای این منظور از آموزش بسیار خوب در Instructables از کدهای IR آستین استانتون استفاده کردم

من تفاوت هایی داشتم ، احتمالاً به دلیل نسخه جدید ، زیرا دستورالعمل ها نسبتاً قدیمی هستند ، فایل hardware.conf دیگر وجود ندارد (حداقل من آن را پیدا نکردم)

همچنین به نظر می رسد که ترانزیستور مورد استفاده در آموزش یک ترانزیستور PNP است ، من به نوبه خود از 2N2222 استفاده کردم که NPN است اما نتیجه یکسان است. (به جز کابل کشی !!!!!!!!)

تعیین پین در /boot/config.txt داده شده است:

#autorisation de lirc le 2019-07-08dtoverlay = lirc-rpi ، gpio_out_pin = 22 ، gpio_in_pin = 23

LED IR به پین 22 Raspi متصل می شود.

یک نکته مهم: هنگام یادگیری کدهای Raspi ، استفاده از کلمات کلیدی ذکر شده در دستور الزامی است

irrecord-list-namespace

در اینجا فایلی است که برای jukebox من ساخته شده است:

pi@raspitone:/etc/lirc $ cat lircd.conf

# لطفاً وقت بگذارید و این فایل را طبق توضیحات موجود در # https://sourceforge.net/p/lirc-remotes/wiki/Check… # وقت بگذارید و با ارسال آن به # # در اختیار دیگران قرار دهید.

# این فایل پیکربندی به طور خودکار ایجاد شد

# با استفاده از lirc -0.9.4c (به طور پیش فرض) در پنجشنبه 9 مه 17:33:37 2019 # خط فرمان استفاده می شود: -d /dev /lirc0 /root/lircd.conf

# نسخه هسته (uname -r): 4.14.98 -v7+ # # نام راه دور (به عنوان فایل پیکربندی): jukebox

# مارک دستگاه از راه دور ، چیزی که در دست دارید: # مدل دستگاه از راه دور nr:

# آدرس اطلاعات دستگاه از راه دور:

# آیا دستگاه از راه دور دارای یک دستگاه ضبط همراه است e. GA

# دانگل usb؟:

# برای دستگاههای USB همراه: شناسه فروشنده usb ، شناسه محصول

# و رشته دستگاه (از dmesg یا lsusb استفاده کنید):

# نوع دستگاه کنترل شده

# (تلویزیون ، VCR ، صدا ، DVD ، ماهواره ، کابل ، HTPC ، …):

# دستگاه (های) کنترل شده توسط این کنترل از راه دور:

از راه دور شروع کنید

نام jukebox

بیت 16

پرچم ها SPACE_ENC | CONST_LENGTH

ثانیه 30

aeps 100

سرصفحه 4470 4496

یک 542 1693

صفر 542 581

ptrail 553

بیتهای پیش_داده 16

pre_data 0xC2CA

فاصله 107863

toggle_bit_mask 0x0

فرکانس 38000

شروع کدها

KEY_POWER 0x807F

KEY_AUX 0x8877

KEY_VOLUMEUP 0xCC33

KEY_VOLUMEDOWN 0xDC23

کدهای پایانی

پایان از راه دور

همانطور که می بینید ، من فقط 4 فرمان برای رانندگی سینمای خانگی نیاز دارم

قدرت (روشن/خاموش)

AUX => برای تغییر به کانال ورودی نوری (همانطور که HC همیشه در DVD خوان شروع می شود)

و حجم +/-

دستورات مربوطه از طریق دستورات LIRC اجرا می شوند:

به عنوان مثال: "irsend SEND_ONCE jukebox KEY_VOLUMEUP"

مرحله 3: برنامه اصلی

برنامه اصلی در پایتون نوشته شده است:

از آنجا که من در پایتون تازه کار هستم ، فکر می کنم پیشرفت های زیادی می توان انجام داد ، اما اجرا می شود….

مشخصات:

1) صفحه گرافیکی را مدیریت کنید:

برای این منظور ، من از APPJAR استفاده کردم که TKINTER است اما برای دانش آموزان متمدن است (مورد من) ، این بدان معنی است که استفاده از آن بسیار آسان تر است ، احتمالاً با امکانات کمتر ، اما برای هدف من کافی بود.

2) پخش فایل های mp3:

من از mplayer برای پایتون استفاده کردم.

3) ایجاد اعداد تصادفی برای بازی در حالت مختلط:

از آنجا که نمی خواستم هر سه ماه یک آهنگ را بشنوم ، یک برنامه کوچک ساختم تا بررسی کنم که آیا این شماره در x شماره اعداد قبلی وجود ندارد (x بسته به طول لیست پخش).

تابع randint در پایتون تا آنجا که من دیدم "تصادفی" نیست.

4) "ضربان قلب" را برای آردوینو ارسال کنید

5) مدیریت پخش کننده فایلها:

از آنجا که Mplayer ناهمزمان است ، وقتی فایل شروع می شود ، راهی برای پایان پایتون وجود ندارد (حداقل من راه ساده ای پیدا نکردم)

برای حل این مشکل از دستورات mplayer که طول فایل و پیشرفت فایل فعلی را نشان می دهد استفاده کردم

برای 4 و 5 از امکان ارائه شده توسط Appjar برای ایجاد یک کار دوره ای استفاده کردم (چون appjar یک برنامه رویداد است ، این راهی برای ایجاد یک رویداد دوره ای است). عملکرد این است:

#************************************************************* app.registerEvent (taskman)

p.setPollTime (1000)

Taskman برای "مدیر وظیفه" که برنامه ای است که همه رویدادهای صفحه را مدیریت نمی کند (پایان فایل پخش شده ، پر کردن نوار پیشرفت ، ارسال ضربان قلب به نانو ، …)

پس از شروع ، صفحه به این شکل است:

تصویر
تصویر

در اینجا برنامه وجود دارد: (می تواند از طریق Notepad ++ یا Geany باز شود)

مرحله 4: قسمت تمشک: راه اندازی خودکار و افزودن فایل های جدید

اگر به برنامه نگاه کنید می بینید که من از برخی از فایل های bash استفاده می کنم:

1) Start_jukebox:

در واقع هدف این است که سینمای خانگی را فعال کرده و به ورودی D. IN (ورودی نوری در سینمای خانگی من) تغییر دهید.

pi@raspitone:/bin $ cat start_jukebox#!/bin/bash

irsend SEND_ONCE jukebox KEY_POWER

خوابیدن 7

irsend SEND_ONCE jukebox KEY_AUX

خوابیدن 2

2) stop_jukebox:

خاموش کردن سینمای خانگی

pi@raspitone:/bin $ cat stop_jukebox

#!/bin/bash

irsend SEND_ONCE jukebox KEY_POWER

این دو فایل bash توسط Python با دستور os.system فراخوانی می شوند

برای شروع اسکریپت پایتون ، یک bash کوچک ایجاد کردم

pi@raspitone: ~ $ cat dem_jukebox.bash#!/bin/bash

cd /home /pi

python jukebox_gui.py

برای شروع خودکار در حالت رابط کاربری گرافیکی ، من فقط فایل راه اندازی خودکار را در/etc/xdg/lxsession/LXDE-pi تغییر دادم.

pi@raspitone:/etc/xdg/lxsession/LXDE-pi $ cat autostart@lxpanel --profile LXDE-pi

pcmanfm-رومیزی-پروفایل LXDE-pi

xscreensaver -no -splash

lxterminal --command = "dem_jukebox.bash"

point-rpi

افزودن فایلهای mp3 جدید:

برای افزودن فایل های جدید ، ترجیح دادم یک اسکریپت کوچک اختصاصی پایتون بسازم:

new_song_file.py

ابتدا سازمان فایلهای سیستم را توضیح می دهم:

همه فایلها در /home /pi هستند

فایل های mp3 در/home/pi/فهرست موسیقی تکان داده می شوند

هر هنرمند زیر شاخه خود را دارد که فایلهای mp3 مربوطه را میزبانی می کند

pi@raspitone:/Music/Mike_oldfield $ ls -مجموعا 760516

-rwxr ----- 1 pi pi 2254923 juin 30 2017 A_New_Beginning.mp3

-rwxr ----- 1 pi pi 2691736 juin 30 2017 Arrival.mp3

-rwxr ----- 1 pi pi 8383244 juin 30 2017 Ascension.mp3

-rwxr ----- 1 pi pi 5410816 juin 30 2017 Blue_Night.mp3

-rwxr ----- 1 pi pi 13125199 juin 30 2017 Castaway_ (Instrumental).mp3

-rwxr ----- 1 pi pi 12903583 juin 30 2017 Castaway.mp3

-rwxr ----- 1 pi pi 2969869 juin 30 2017 Celt.mp3

-rwxr ----- 1 pi pi 9047745 juin 30 2017 Chariots_ (Instrumental).mp3

-rwxr ----- 1 pi pi 9403263 juin 30 2017 Chariots.mp3

در فهرست اسناد ما می توانیم لیست ساخته شده از فایل ها را برای پخش پیدا کنیم.

pi@raspitone:/Documents $ cat list.txtFranz_Ferdinand/Michael_live.mp3

Franz_Ferdinand/evil_and_a_heathen.mp3

فرانتس_فردیناند/Walk_Away_live.mp3

فرانتس_فردیناند/love_and_destroy.mp3

فرانتس_فردیناند/his_fffire.mp3

فرانتس_فردیناند/eleanor_put_your_boots_on.mp3

Franz_Ferdinand/missing_you.mp3

Franz_Ferdinand/this_fire_ (playgroup_remix).mp3

Franz_Ferdinand/Jacqueline.mp3

ما همچنین می توانیم داده های لیست پخش را پیدا کنیم (اما این توسط اسکریپت پایتون ساخته شده است)

اسکریپت پایتون کوچک آهنگهای جدید ذخیره شده در Music را در لیست اضافه می کند.

این اسکریپت است: (می توان از طریق Notepad ++ یا Geany باز کرد)

مرحله 5: مدیریت نیرو از طریق آردوینو نانو

از آنجا که می خواستم کاری آسان برای شروع داشته باشم ، تصمیم گرفتم آن را توسط یک نانو کوچک انجام دهم:

اصل:

هنگامی که دکمه شروع را فشار می دهید ، همه دستگاه ها تغذیه می شوند ، نانو شروع می شود (1 یا 2 ثانیه) و با راه اندازی رله ای که مخاطبین دکمه را تغییر می دهد ، مدیریت قدرت را بر عهده می گیرد.

سپس نانو 35 ثانیه منتظر می ماند تا ضربان قلب را از تمشک دریافت کند (به این معنی که مراحل شروع کامل شده و برنامه jukebox اجرا می شود).

تا زمانی که نانو ضربان قلب را دریافت می کند ، رله را روشن نگه می دارد (تایمر ساعت سگ)

اگر دیگر ضربان قلب وجود ندارد (به این معنی که برنامه jukebox متوقف شده است) نانو 20 ثانیه منتظر می ماند (برای اطمینان از قطع کامل raspi) تا رله قدرت را رها کند.

سپس jukebox به طور کامل خاموش می شود

من یک سوئیچ برای فعال کردن ورودی نانو برای نشان دادن حالت نگهداری اضافه کردم (من از jukebox برای مدیریت سایر سرورهای raspi خود از طریق ssh et vnc استفاده می کنم). نانو سپس فرآیند سگ نگهبان را غیرفعال می کند

نکته:

ورودی ضربان قلب راسپی باید پایین کشیده شود (اما 3.3 ولت از راسپی به نظر نانو سطح بالایی است)

این را می توان با NE555 انجام داد اما من تنبل هستم و همیشه مقداری نانو در کشو دارم !!!!

در اینجا برنامه C کوتاه است (می توان آن را با Notepad ++ باز کرد)

مرحله 6: کابل کشی

کابل کشی
کابل کشی
کابل کشی
کابل کشی

برای صفحه نمایش:

از کابل HDMI و کابل USB در Raspi برای تغذیه و هدایت صفحه استفاده می شود.

برای پنل جلویی:

یک کابل USB نیز از طریق Raspi متصل شده است تا بتوانید فایل های جدید را بارگذاری یا پشتیبان گیری کنید.

یک کابل USB از نانو متصل شده است تا بتواند به نرم دسترسی داشته باشد (در صورت لزوم برای اصلاحات)

من همچنین یک دانگل صفحه کلید بی سیم را روی تمشک وصل می کنم تا بتوانم بدون استفاده از پلاگین USB خارجی ، تعمیر و نگهداری را انجام دهم

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

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

از تمشک 2 GPIO استفاده می شود:

Pin22 برای IR LED

پین 27 برای ضربان قلب به آردوینو

در آردوینو

پین 2 به عنوان پین وقفه برای ضربان قلب راسپی استفاده می شود.

پین های 3 تا 5 برای رانندگی led (Start ، Wdt ، Maintenance) استفاده می شود.

پین 6 برای سوئیچ تعمیر و نگهداری است.

پین 7 برای سپر رله خروجی دارد.

در اینجا فایل جالب توجه است:

مرحله 7: جعبه

جعبه
جعبه

من زیاد توضیح نمی دهم که چه کار کردم زیرا بستگی به آمپر قدرت و بلندگوهای مورد استفاده دارد.

به عنوان اطلاعات ، سینمای خانگی در پایین جعبه قرار دارد.

فقط بالای بلندگوها:

1 ووفر

2 بلندگوی متوسط ، که من آنها را در جعبه قرار دادم ، اصلاح کردم.

در بالا:

پنل جلویی با صفحه نمایش ، LED ها ، کلیدها و دوشاخه های USB.

چوب:

برای بلندگوها ، قسمت بالا و پایین من از تخته چوبی 18 میلی متری استفاده کردم.

قسمت جلویی تخته سه لا 10 میلی متری با پیچ های 40 میلی متری است.

برای سهولت کابل کشی و نگهداری (در صورت نیاز !!!) مدار را روی کشوی پشت پنل جلویی قرار دادم

برای جلوگیری از گرم شدن بیش از حد ، یک سوراخ بزرگ در قسمت پایین پنل عقب انجام می شود و من یک فن 5 ولت (8 سانتی متر) را در پانل عقب درست در کنار مدار قرار می دهم.

تصویر بالا فقط برای ایده پردازی است.

بنابراین ، همین !!!!!!!!!

ممنون که مرا خواندید

و دفعه بعد شما را برای ماجراهای جدید ملاقات می کنیم

توصیه شده: