色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>破解計算機并讓它變得智能

破解計算機并讓它變得智能

2022-11-14 | zip | 0.23 MB | 次下載 | 免費

資料介紹

描述

你有沒有想過為什么智能手機被稱為智能手機因為他們很聰明,對吧?他們會自動、巧妙地完成一些工作。這是簡短的答案。我在想,即使電腦比手機強大得多,為什么它們不聰明!比如手機有自動亮度控制系統,很方便,我一直都在用。但不知什么原因,電腦沒有自動亮度控制系統。為了改變亮度,每次我都必須按一些按鈕(功能鍵)。在某些計算機中,一些組合鍵可以完成工作(通常是 fn+功能鍵)。我覺得這很煩人。所以我設計了一個簡單的設備,可以連接到任何電腦上,電腦的亮度會自動控制,就像我們的手機一樣。讓我們看看我是如何讓我的電腦變得智能的。

第 1 步:零件

電子產品 -

  • Arduino(我用的是 Pro Micro)-1x
  • LDR - 2x
  • 10 克朗 - 1 倍
  • 亮度控制器 PCB [鏈接] - 1x
  • 女頭

其他 -

  • USB 線(與 Arduino 板兼容)
  • 焊接工具
  • 還有一些刀具

而已。

第 2 步:原理 - 它是如何工作的?

在跳躍之前討論我們在做什么總是好的。一點理論就足以開始。

我需要某種傳感器檢測光強度。LDR 或光敏電阻最適合這種情況。LDR 將面向人(就像手機傳感器面向正面/人一樣)并獲取光強度數據。數據將由 Arduino 讀取。那是范圍從 0 到 1024 的模擬數據。

如果我們映射值(0 - 1024),我們可以控制亮度。我嘗試使用 Arduino 的“鍵盤”庫來使用 Arduino 按下功能按鈕。這不起作用,它還會凍結硬件鍵盤(因為電腦知道鍵盤已經在工作)。

所以我將傳感器數據發送到在 PC 上運行的 python 程序。其余的由 python 完成,我的意思是控制亮度。

現在,讓我們開始制作吧。

第 3 步:制作和測試電路/概念

為了證明我的概念,我首先在面包板上制作了電路。并編寫了一個簡單的程序,通過Arduino的串行監視器輸出傳感器數據(光強數據)。

這是我編寫的程序(從 gi??thub 下載)-

// define sensor pin
int sensor_pin = A3;

void setup() {
  // set things here
  Serial.begin(9600);  // init serial communication at 9600 bps
}

void loop() {
  // mainloop
  int sensorValue = analogRead(sensor_pin); // read the input on analog pin A3:
  Serial.println(sensorValue);              // send data over serial
  
  delay(200);                               // a little delay to make things work better
}

我通過串行獲得了一些輸出數據。數據范圍從 0 到 1024(理論上)。但實際上,沒有 LDR 是完美的(即使在同一批次中也不行)。所以我得到了從 0 到 950 之類的數據。仍然有效。在我的應用程序中并不重要。

所以這是一個成功的測試,現在我可以繼續下一步了。

第 4 步:設計和制作 PCB

?
?
?
pYYBAGNxJIKATtV4AACk_rYk4Lw928.png
?
1 / 2
?

我在easyEDA上使用了相同的電路并設計了PCB(印刷電路板)。您可以看到我使用了兩個傳感器,實際上這只是出于設計目的。有兩個 LDR,它看起來像一只蝸牛。LDR_L 是未使用的 LDR。

然后我從PCBWay.com制作了 PCB 。PCBWay 是最好的也是我最喜歡的 PCB 制造商之一。只需 5 美元,我就可以獲得 10 個 PCB!無論如何,我使用了他們的快速訂購頁面,然后是快速訂購 pcb部分,上傳了我的 PCB 并選擇了顏色。而已!我認為快速訂購部分對我們所有了解不多但只想完成它的人來說是一種祝福。從這里獲取 PCB

我之前只用過黑色,它太亮了,這次我嘗試了啞光黑色。等了大約 3-4 天后,我得到了漂亮的 PCB。質量一如既往地令人驚嘆。焊盤、阻焊層、絲網印刷盡可能完美。我想我愛上了啞光黑。

第 5 步:焊接 PCB 和完整的硬件

?
?
?
poYBAGNxJISATdO3AAElACB9jr4741.png
?
1 / 3
?

現在是時候將東西焊接到位了。這很簡單,因為那里沒有太多組件。焊接所有東西,確保我沒有吸入烙鐵的煙霧。

我使用女性頭,因為我是一個即插即用的人。您可以將 Arduino 板本身焊接在板上。

注意:不要吸入烙鐵煙霧!它可能會導致癌癥!

第 6 步:對電路板進行編程(Arduino 代碼)

現在是時候上傳Arduino的程序了。Arduino 使用串行通信將數據發送到 PC。

首先,我定義了傳感器引腳,即傳感器輸入數據的 Arduino 引腳。

// define sensor pin
int sensor_pin = A3;

在設置功能中,我以 9600 的波特率開始串行通信。每次為 Arduino 板供電時,設置功能僅運行一次。

void setup() {
  // set things here
  Serial.begin(9600);  // init serial communication at 9600 bps
}

然后在主循環中它獲取數據并通過串行發送。保持 200ms 的一點延遲以使其順利運行。

void loop() {
  // mainloop
  int sensorValue = analogRead(sensor_pin); // read the input on analog pin A3:
  Serial.println(sensorValue);              // send data over serial
  
  delay(200);                               // a little delay to make things work better
}

這是完整的代碼。從下面復制或從這里下載。

/*  Computer Hack! 
    Brightness Controller

    (C) License: GPL3-General Public License

    author: ashraf minhaj
    mail  : ashraf_minhaj@yahoo.com
*/

// define sensor pin
int sensor_pin = A3;

void setup() {
  // set things here
  Serial.begin(9600);  // init serial communication at 9600 bps
}

void loop() {
  // mainloop
  int sensorValue = analogRead(sensor_pin); // read the input on analog pin A3:
  Serial.println(sensorValue);              // send data over serial
  
  delay(200);                               // a little delay to make things work better
}

打開 Arduino.ide 并將程序上傳到我的 Arduino 板。

第 7 步:Python 編程(PC 版)

正如我們之前討論的,Arduino 向 Arduino 發送數據,其余的由 python 完成。所以我寫了一個簡單的python腳本。

無論如何,如果您沒有安裝 python,請從這里安裝最新版本。安裝時請確保您已選中“將 python 添加到環境變量路徑”框。

好的,然后我打開終端并安裝了兩個庫,Pyserialscreen-brightness-control使用這些命令($ 符號表示它們為終端命令,復制沒有它們) -

$ pip install pyserial
$ pip install screen-brightness-control

安裝后,我編寫了整個代碼。但是,讓我們向你們解釋一下。

在這里,我導入庫以使用它們。需要“serial.tools.list_ports”來自動檢測Arduino板。

# import necessary libraries
import serial                                     # for serial communication
import serial.tools.list_ports                    # to get Arduino port automatically
import screen_brightness_control as brightness    # to control brightness

然后我聲明 buad rate 和端口號。端口會自動檢測到,所以我將其保留為空字符串。但對于我的董事會,buad rate 是 9600

BUAD_RATE = 9600                                  # Pro Micro's buad rate is 9600 
PORT      = ""

本節自動獲取 USB 端口并嘗試與 Arduino 連接

# get sender device port automatically
serial_ports = list(serial.tools.list_ports.comports())  # get list of ports
for s_port in serial_ports:                              # iterate through all ports
    if 'Arduino Micro' in s_port.description:            # look for Pro Micro board
        PORT = str(s_port[0])                            # select first found board and
        break                                            # proceed

# connect with sender device
sender = serial.Serial(PORT, BUAD_RATE)

這是將 Arduino 數據(從 0 到 1024)轉換為 %data - 從 0 到 100 的函數。它稱為映射。Python map 函數做了其他事情,所以我不得不寫它(雖然從互聯網上得到了一些幫助)。

def map_value(value, in_min=0, in_max=1024, out_min=0, out_max=100):
    """ To map values. Arduio sends values from 0 to 1024. My goal
    is to make them in between 0 to 100."""
    return int((value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)

其余代碼只是確保亮度保持在光強度水平

# mainloop
while 1: 
    # convert byte data into string then integer
    sensor_value = int(sender.readline().decode("utf-8"))  # get data
    final_value = map_value(value=sensor_value)            # map value (brightness in percentage)
    #print(sensor_value)
    print(final_value)
    brightness.set_brightness(final_value)                 # set brightness

# close port properly so that others can use it
sender.close()

無論如何,最好關閉使用后打開的東西,無論是對話還是端口。

現在,我打開了我最喜歡的 python 編輯器并運行了程序。從github下載完整的程序

""" Computer Hack! 
    Brightness Controller

    (C) License: GPL3-General Public License

    author: ashraf minhaj
    mail  : ashraf_minhaj@yahoo.com
"""

""" libraries -
$ pip install pyserial
$ pip install screen-brightness-control
"""

# import necessary libraries
import serial                                     # for serial communication
import serial.tools.list_ports                    # to get Arduino port automatically
import screen_brightness_control as brightness    # to control brightness

# device buadrate (bit per second)
# (change buadrate according to your need)
BUAD_RATE = 9600                                  # Pro Micro's buad rate is 9600 
PORT      = ""

# get sender device port automatically
serial_ports = list(serial.tools.list_ports.comports())  # get list of ports
for s_port in serial_ports:                              # iterate through all ports
    if 'Arduino Micro' in s_port.description:            # look for Pro Micro board
        PORT = str(s_port[0])                            # select first found board and
        break                                            # proceed

# connect with sender device
sender = serial.Serial(PORT, BUAD_RATE)

def map_value(value, in_min=0, in_max=1024, out_min=0, out_max=100):
    """ To map values. Arduio sends values from 0 to 1024. My goal
    is to make them in between 0 to 100."""
    return int((value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)

# mainloop
while 1: 
    # convert byte data into string then integer
    sensor_value = int(sender.readline().decode("utf-8"))  # get data
    final_value = map_value(value=sensor_value)            # map value (brightness in percentage)
    #print(sensor_value)
    print(final_value)
    brightness.set_brightness(final_value)                 # set brightness

# close port properly so that others can use it
sender.close()

第 8 步:即插即用!

最后,我用 USB 電纜將開發板連接到我的 PC。然后運行python程序。您可以在視頻中看到其余的內容。它就像一個魅力!我以前從未對自己的工作如此滿意。

現在我的電腦有點智能了。

制作快樂!!!

?

提示:為了節省電量,您可能需要削減 arduino LED 燈的痕跡。


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

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 久久频这里精品99香蕉久网址| 国产午夜精品片一区二区三区 | 秋霞特色大片18岁入口| 欧美一级成人影院免费的| 热思思| 色橹橹欧美在线观看视频高清| 外女思春台湾三级| 亚洲精品高清AV在线播放| 亚洲综合免费视频| 最新亚洲一区二区三区四区| AV无码国产精品午夜A片麻豆| 绑着男军人的扒开内裤| 国产精品1卡二卡三卡四卡乱码 | 国产精品A久久777777| 国产在线播放KKK| 恋夜秀场1234手机视频在线观看| 男男免费看| 天美传媒在线完整免费观看网站 | av老司机色爱区综合| 抽插妇女疯狂视频| 国产日韩欧美三级| 老师小扫货水能么多叫出来| 青青青久久久| 亚洲国产日韩欧美在线a乱码 | 无套内射在线观看THEPORN| 亚洲一区自拍高清亚洲精品| 99re久久热在线播放8| 成人在线视频观看| 黄色a级免费网站| 欧美高清一区二区三| 午夜插插插| 9420高清完整版在线电影免费观看| 高清日本片免费观看| 精选国产AV精选一区二区三区| 男女性杂交内射妇女BBWXZ| 特级做A爰片毛片免费看108| 在线观看99| 国产69精品久久久久APP下载| 久久久黄色片| 日韩中文无线码在线视频| 一久久|