فهرست مطالب:
- تدارکات
- مرحله 1: توضیحات قسمت تمشک:
- مرحله 2: کدهای راه دور IR
- مرحله 3: برنامه اصلی
- مرحله 4: قسمت تمشک: راه اندازی خودکار و افزودن فایل های جدید
- مرحله 5: مدیریت نیرو از طریق آردوینو نانو
- مرحله 6: کابل کشی
- مرحله 7: جعبه
تصویری: Raspitone: آسان برای استفاده Jukebox: 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
سلام ، پروژه بعدی من ، همانطور که قبلاً انجام می دادم ، یک پروژه بسیار مفید نیست:
این 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 سانتی متر) را در پانل عقب درست در کنار مدار قرار می دهم.
تصویر بالا فقط برای ایده پردازی است.
بنابراین ، همین !!!!!!!!!
ممنون که مرا خواندید
و دفعه بعد شما را برای ماجراهای جدید ملاقات می کنیم
توصیه شده:
M5STACK نحوه نمایش دما ، رطوبت و فشار در M5StickC ESP32 با استفاده از Visuino - آسان برای انجام: 6 مرحله
M5STACK نحوه نمایش دما ، رطوبت و فشار در M5StickC ESP32 با استفاده از Visuino - انجام این کار آسان است: در این آموزش نحوه برنامه نویسی ESP32 M5Stack StickC با Arduino IDE و Visuino برای نمایش دما ، رطوبت و فشار با استفاده از سنسور ENV (DHT12 ، یاد می گیریم. BMP280 ، BMM150)
راه اندازی آسان کنترل از راه دور IR با استفاده از LIRC برای Raspberry PI (RPi) - جولای 2019 [قسمت 1]: 7 مرحله
راه اندازی آسان کنترل از راه دور IR با استفاده از LIRC برای Raspberry PI (RPi) - ژوئیه 2019 [قسمت 1]: پس از جستجوی زیاد ، من از اطلاعات متناقض در مورد نحوه تنظیم کنترل از راه دور IR برای پروژه RPi خود شگفت زده و مأیوس شدم. فکر می کردم کار آسانی باشد اما راه اندازی کنترل مادون قرمز لینوکس (LIRC) برای مدت طولانی مشکل ساز بوده است
راه آسان برای استفاده از Makey Makey با یک دک تکنیکی: 5 مرحله
راه آسان برای استفاده از Makey Makey با یک دک تکنیکی: سلام. من اخیراً در این مسابقه یک برنامه makey deck makey makey در این مسابقه دیدم که واقعاً جالب بود اما سخت به نظر می رسید ، بنابراین من راهی آسان برای انجام بازی با عرشه فناوری پیدا کردم. اگر از دستورالعمل آموزشی من خوشتان می آید لطفاً در مسابقه سازنده رای به آن رای دهید
هدفون های شکسته برای جفت ارزشمند شما برای 99p و لحیم کاری آسان: 3 مرحله
هدفون های شکسته برای ارزشمندترین جفت شما برای 99p و لحیم کاری آسان: چند راهنما برای تعمیر دوشاخه و سیم در هدفون های شکسته وجود دارد ، اما این روشها بسیار ساده تر از جایگزینی سربی با یک قطعه ارزان قیمت از ebay را از دست می دهند. تعمیر سیم و پلاگین هدفون هر دو دشوار است و بعید به نظر می رسد
DIY MusiLED ، LED های هماهنگ موسیقی با یک کلیک Windows & Linux برنامه (32 بیتی و 64 بیتی). بازآفرینی آسان ، استفاده آسان ، حمل آسان: 3 مرحله
DIY MusiLED ، LED های هماهنگ موسیقی با یک کلیک Windows & Linux برنامه (32 بیتی و 64 بیتی). آسان برای ایجاد مجدد ، آسان برای استفاده ، آسان برای انتقال: این پروژه به شما کمک می کند تا 18 LED (6 قرمز + 6 آبی + 6 زرد) را به برد Arduino خود متصل کرده و سیگنال های زمان واقعی کارت صدا رایانه خود را تجزیه و تحلیل کرده و آنها را به چراغ های LED برای روشن کردن آنها مطابق با جلوه های ضرب (Snare ، High Hat ، Kick)