在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>MuSticks在隔離期間保持活躍的有趣方式

MuSticks在隔離期間保持活躍的有趣方式

2022-11-03 | zip | 3.04 MB | 次下載 | 免費

資料介紹

描述

?

動機

在這段保持社交距離的時期,很難找到更積極和四處走動的方法。與我上學時相比,在線課程幾乎不需要在建筑物中走動和在儲物柜中交換學習材料。在社區(qū)外散步是保持活躍和每天鍛煉的好方法,但是,有些日子可能風太大而不能在外面散步,或者可能會下雨。此外,在持續(xù)的 COVID-19 期間,留在室內(nèi)以降低傳播或感染病毒的風險變得越來越重要。

這就是為什么我們有動力開發(fā)一種有趣的方式來讓人們在室內(nèi)保持活躍和健康!MuSticks 結合了音樂和棍子的理念,讓室內(nèi)鍛煉變得實用而有趣。在這些困難時期保持健康并保持活躍很重要,我們希望 MuSticks 能夠以這種小方式幫助人們。

材料

該項目使用 Raspberry Pi Zero W、Adafruit Stereo Speaker Bonnet 和 Surface Bone Conductive Transducer 揚聲器。我們決定使用換能器,因為它具有在硬表面上轉換音頻信號的有趣特性。我們決定使用塑料瓶,但您可以嘗試不同的材料。

?
?
?
pYYBAGNiFEuAfbfVAAjwQoLWpQE816.jpg
?
1 / 5 ? Raspberry Pi 零 W
?

3D打印零件

我們決定把木棍分成三部分。

  • 揚聲器支架
  • 一個瓶架
  • 板/電池座
?
?
?
poYBAGNiFFuAHKHeAAcQSNMeCM8637.jpg
?
1 / 5 ? 3D 打印零件
?

為了制作完整的棍子,您需要打印兩個揚聲器支架和兩個瓶架。揚聲器支架緊貼瓶架,如下所示:

pYYBAGNiFGaABnwfAAVGf8msiMw789.jpg
揚聲器支架緊貼瓶架。
?

然后使用螺釘/螺母將板/電池連接到瓶架上,如下所示

poYBAGNiFHiAGMT6AAe0ehysNQo392.jpg
三部分連接
?

邊框/電池座有兩個版本;“Battery and Board Holder.stl ”文件比BBH3.stl文件的比例略小。這種差異允許兩個持有人一起搶奪并滾動以關閉并保護內(nèi)容物。

pYYBAGNiFJmAVMhbAAuLUgdxVbQ079.jpg
可以關閉卷的板/電池座。
?

將硬件放在一起

?
?
?
pYYBAGNiFJmAVMhbAAuLUgdxVbQ079.jpg
?
1 / 3 ?揚聲器連接
?

樹莓派零設置。

為了發(fā)布我們的 Web 界面,我們需要在我們的 RPi Zero W 中安裝 LDAP。您可以找到幾個網(wǎng)頁來指導您在 Raspberry Pi Zero W 中安裝 LDAP。

我們還使用以下命令安裝 mp3 實用程序 MPG123:

$ sudo apt-get install mpg123

然后按照此處的 Adafruit Speaker Bonnet for Raspberry Pi 輕松安裝中的說明進行操作。

感謝 Adafruit 的說明,我們能夠找到 SomaFM

超過 30 個獨特的收聽者支持的、無商業(yè)廣告的、地下/替代無線電廣播頻道向世界傳播。

輕松測試揚聲器并提供多種選擇是理想之選。但是,從 Web 服務運行它并不容易。

現(xiàn)在我們準備好創(chuàng)建我們的界面了。

網(wǎng)頁

安裝服務器和揚聲器后,我們使用“Bootstrap Studio”創(chuàng)建了一個簡單的 Web 界面。我們不確定是否可以上傳自動生成模板,但我們可以顯示我們對代碼所做的手動更改。

下圖是界面截圖:

poYBAGNiFM2AWrNmAAKuwAeyICk128.jpg
手機訪問的 Web 界面
?

每個按鈕圖像都會向服務器的主頁提交一個代碼,以指示所選電臺。代碼看起來像






請注意,value 屬性具有在 GET 命令名稱操作中發(fā)送回服務器的值。

最初的想法是接收選臺,然后批處理一個進程在后臺運行MPG123,但不可能。對于初學者,除非我們使用 sudo 命令運行 shell 進程,否則程序不會啟動。

我們嘗試執(zhí)行以下命令,其中 exec 是生成進程的 PHP 函數(shù):

exec("nohup mpg123 http://ice1.somafm.com/u80s-128-mp3 > /dev/null 2>&1 echo $!");

但它一開始進程就崩潰了 mpg123 程序。

然后我們在命令行中使用 sudo 權限嘗試了 shell_exec,例如:

shell_exec('sudo mpg123 http://ice1.somafm.com/u80s-128-mp3 > /dev/null 2>&1  echo $!');

這有效,但需要注意的是該進程永遠不會返回到服務器,因此客戶端被卡住了,不允許它做出不同的選擇。

我們最終決定打破 Web 服務器和 MPG123 程序之間的依賴關系。

我們創(chuàng)建了一個循環(huán)運行的 bash 腳本,讀取文本命令文件的內(nèi)容并在主進程級別提交批處理作業(yè)以運行 MPG123 程序。該腳本將在下一節(jié)中解釋。

Web 服務器的工作是獲取所選站并將相應的命令代碼寫入命令文件,以便 bash 腳本可以讀取選擇并執(zhí)行該過程。

一個問題是文件訪問的并發(fā)性,我們是否可以打開它以寫入并同時讀取以執(zhí)行命令。是的,我們可以?。?!

這是服務器 PHP 程序的一部分,它從客戶端獲取選擇并將命令代碼寫入命令文件:

//Check if there is a command
if (isset($_GET["action"]))
{
   //Open file to write
   $myfile = fopen("runSelection.txt", "w");
   //Set command to stop current streaming
   fwrite($myfile, "4\n");
   //Make sure to flush buffer to file
   fclose($myfile);
   //Wait, maybe not that necessary
   sleep(1);
   //Select the next stream station
   if ($_GET["action"] == "selEighties")
   {
      $myfile = fopen("runSelection.txt", "w");
      fwrite($myfile, "3\n");
      fclose($myfile);
   }
   .
   .
   .

注意,我們首先檢查客戶端是否通過action屬性發(fā)送了一個選擇,然后我們用PHP函數(shù)fopen打開文件進行寫入,然后編寫命令代碼4,即停止當前的MPG123作業(yè),然后我們關閉文件刷新緩沖區(qū)并允許 bash 腳本讀取和執(zhí)行此命令有一個小的延遲(可能不需要)。

接下來,如果選擇了一個站,則再次打開命令文件(fopen),寫入相應的命令,關閉文件(刷新緩沖區(qū))并等待下一次客戶端選擇。

這個過程保證了客戶端/服務器執(zhí)行的流暢,并且沒有通過允許服務器訪問內(nèi)核進程命令而暴露任何可能的安全性。

Bash 腳本

bash 腳本具有讓項目在 Web 界面上蓬勃發(fā)展的魔力。

該腳本掃描命令文件 runSelection.txt。當客戶端請求站點時,PHP 服務器服務正在寫入此文件。

腳本循環(huán)運行,直到選擇退出命令 (2)

while [ $selection -ne 2 ]
do
    .
    .
    .
done

該腳本通過以下循環(huán)命令讀取文件的每一行(僅一行)

while read line
do
   selection="$line"
   .
   .
   .
done < runSelection.txt

然后腳本檢查選擇,如果它與之前的選擇不同,它會提交批處理文件以執(zhí)行,例如

# if current selection is not the last read then execute
if [[ $selection -eq 3 ]] && [[ $lastSel -ne $selection ]]; then
   # Prepare command to execute in the background
   cmd="mpg123 http://ice1.somafm.com/u80s-128-mp3"
   # Execute command and assign process id to variable.
   nohup $cmd > /dev/null & PID=$!
   echo "$PID"
   # Remember last selection so it does not execute again.
   lastSel=selection
   exec4=0
fi

注意腳本保留了進程id,所以當停止命令(4)進入命令文件時,它可以殺死它,如下所示:

cmd="kill $PID"
echo "$cmd"
# Kill last submitted process
nohup $cmd > /dev/null

就是這樣,bash 文件可以愉快地創(chuàng)建和刪除進程,并且 Web 服務可以不間斷地工作。

我們花了一些心思才想出解決方法,但如果您有一個想要批處理的過程,這可能是一個可能的解決方案。

最后,請注意我們選擇使用 SomaFM 播放音樂,但您可以添加 MP3 歌曲庫并享受樂趣。

享受?。?/font>

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1蘇泊爾電磁爐線路的電路原理圖資料合集
  2. 2.02 MB   |  286次下載  |  5 積分
  3. 2長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
  4. 0.46 MB   |  87次下載  |  5 積分
  5. 3AO4803A雙P通道增強型場效應晶體管的數(shù)據(jù)手冊
  6. 0.11 MB   |  28次下載  |  2 積分
  7. 4長虹液晶彩電LS29機芯的技術資料說明
  8. 3.42 MB   |  16次下載  |  2 積分
  9. 5AI智能眼鏡產(chǎn)業(yè)鏈分析
  10. 4.43 MB   |  14次下載  |  免費
  11. 6TP4055 500mA線性鋰離子電池充電器中文手冊
  12. 0.75 MB   |  9次下載  |  免費
  13. 7TP4054 400mA線性鋰離子電池充電器中文手冊
  14. 0.70 MB   |  2次下載  |  免費
  15. 8TP4057X 500mA線性鋰離子電池充電器中文手冊
  16. 0.74 MB   |  2次下載  |  免費

本月

  1. 1人形機器人電機驅動和傳感報告
  2. 4.27 MB   |  475次下載  |  免費
  3. 2蘇泊爾電磁爐線路的電路原理圖資料合集
  4. 2.02 MB   |  286次下載  |  5 積分
  5. 3長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
  6. 0.46 MB   |  87次下載  |  5 積分
  7. 4U盤一鍵制作
  8. 23.84 MB   |  41次下載  |  免費
  9. 5AO4803A雙P通道增強型場效應晶體管的數(shù)據(jù)手冊
  10. 0.11 MB   |  28次下載  |  2 積分
  11. 6Altium Designer元件庫
  12. 17.11 MB   |  26次下載  |  免費
  13. 7長虹液晶彩電LS29機芯的技術資料說明
  14. 3.42 MB   |  16次下載  |  2 積分
  15. 8AI智能眼鏡產(chǎn)業(yè)鏈分析
  16. 4.43 MB   |  14次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191382次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81586次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
主站蜘蛛池模板: 久久婷婷婷| 天天天天做夜夜夜夜 | 人人看人人做 | 日日射天天射 | av免费网站在线观看 | 四虎影院色 | 久久天天躁夜夜躁狠狠躁2020 | 99九九成人免费视频精品 | 澳门色视频 | 中文字幕色综合久久 | 天堂a免费视频在线观看 | 最新午夜宅男 | 福利社看片 | 免费看黄视频的网站 | 一级国产特黄aa大片 | 午夜无遮挡怕怕怕免费视频 | 国产在线色| 免费观看午夜在线欧差毛片 | 亚洲综合激情九月婷婷 | 免费在线看片网站 | 亚洲国产成人久久精品图片 | 一级做a爱片就在线看 | 亚洲三级毛片 | 一级片在线免费观看 | 殴美一级| 这里只有精品视频 | 国产性夜夜性夜夜爽91 | 1024视频在线观看国产成人 | 亚洲色图综合网 | 又黄又粗暴的120秒免费gif视频 | 一级毛片免费在线观看网站 | 午夜三级在线 | 男人日女人免费视频 | h视频在线免费看 | 一级毛片一级毛片一级毛片 | 亚洲成a人不卡在线观看 | 热re99久久精品国产99热 | 年轻人影院www你懂的 | 91日本在线观看亚洲精品 | 国产午夜精品理论片在线 | 人人干狠狠干 |