快速瀏覽

ODROID-C4 帶迷你直流不間斷電源


 

1. 12V2A 22.2W UPS不間斷電源。如果輸出為 2 安培或更高,您可以使用任何其他 12 伏直流 UPS。

 Let's calculate how many hours the battery can endure supplying to the ODROID-C4.
 Assume that ODROID-C4 is running while eating 200mA current.
 The battery has its specification output 12V and 22.2wH(watt-hour).
 22.2wH / (12V x 200mA) = 9.25 Hours (In principle, but there is lots of environment out there to get decreased it in the real world)

2. hardkernel.com 上的 ODROID-C4
3. USB IO 板
4. 10K 軸向電阻器
5. 10K 電位器
6. 一些電線


拆機時UPS上的電源開關部分損壞。(我的錯8-O) 電池充滿電後檢查電池電壓為11.58V。 同時,連接器上的輸出電壓為12.22V。 我猜在電池和輸出連接器之間放置了一個升壓 IC,以確保它在工作時輸出超過 12V。


在 PCB 上與電池相同的焊盤上焊接一根電線,以檢查電池中的液位。


USB IO Board可以通過R1的位置選擇3.3v(默認)或5v供電。它也成為 ADC 參考電壓。
檢查一下USB IO 板
我決定使用 5V ADC 參考電壓。它具有比 3.3V 更好的分辨率和變得容易計算。
因此,我將 R1 電阻從 PCB 上的 3V3 焊接到 VBUS 5V。


使用兩個電阻10KOhm(R1)和7.143KOhm(R2),原則上我們可以將12V分為5V和7V。

12V x ( R2 / (R1 + R2) ) = 5V
如果 R1 為 10,000 歐姆,則 R2 約為 7,143 歐姆。

但是,那裡沒有 7,143 Ohm,所以我使用 10K 電位器
現在我測量了分壓 5V 時,我的 R1 是 9.98 KOhm,R2 是 7.04 KOhm,這意味著 mini DC UPS 的電池是幾個當我充滿電時低於 12V。
我操縱將 R2 值增加一點以獲得 ADC 值完整的 10 位值 1024。




Fritzing 下載minidcups_usbio_c4.fzz |}}


按照以下關於 ODROID-C4 的說明構建軟件。

$ sudo apt-get install libusb-1.0-0-dev git rdate
$ git clone https://github.com/hardkernel/Odroid-USBIO
$ cd Odroid-USBIO/usbio/linux
$ make
$ sudo ./usbio
a. Toggle LED
b. AN0/POT Value
c. Button status
d. Get Register
e. Set Register
f. Get Register Bit
g. Set Register Bit
q. Exit
 
msb = 512, lsb = 209
potentiometerValue = 721

當迷你直流 UPS 充滿電時,我通過操縱 R2 將最大 ADC 值設置為 1023(10 位全高)。
我們必須知道最小 ADC 值才能看到剩餘電池電量。
我已經獲得了最小 ADC 值721(約 3.52 伏),方法是向系統提供一些負載,如壓力應用程序,直到 ODROID-C4 僅使用微型直流 UPS 關閉供電。

這個腳本幫助我獲得最小的 ADC 值。

root@odroid:~/usbio/Odroid-USBIO/usbio/linux# cat -n batCheck.sh 
      1 #!/bin/bash
      2 sleepSec=2
      3 for i in {1..100000}
      4 do
      5 ./usbio << endl >> ./adcValue.log
      6 b
      7 q
      8 endl
      9 # elapsedTime=`expr ${i} \* ${sleepSec}`
     10 echo -n "${i} : "
     11 /usr/bin/rdate time.bora.net # Need network connecting
     12 sleep ${sleepSec}
     13 # echo "`date +%Y/%m/%d-%H:%M:%S` : ${i}"
     14 done
root@odroid:~/usbio/Odroid-USBIO/usbio/linux# nohup ./batCheck.sh &

我有最小的 ADC 值721
而充滿電的UPS在沒有電源輸入的情況下可以為ODROID-C4提供多少小時的額外時間約為1小時30分鐘。
(同時運行batcheck.sh腳本和命令“#stress-ng –cpu 4 –cpu-method matrixprod”完全加載)

root@odroid:~/Odroid-USBIO/usbio/linux# grep -rn "potentiometerValue" adcValue.log | awk -F"=" '{print $2}' | sort -nr | tail
 730
 729
 729
 727
 727
 726
 725
 724
 723
 721
 
root@odroid:~/Odroid-USBIO/usbio/linux# head -n 1 nohup.out
1 : Tue Mar 31 05:24:18 UTC 2020
root@odroid:~/Odroid-USBIO/usbio/linux# tail -n 2 nohup.out
2541 : Tue Mar 31 06:53:31 UTC 2020

現在,我們算出最大和最小 ADC 值。因此,我們可以計算剩餘電池電量。

剩餘電量(%)=
(ADC值-最小ADC值)x 100 /(1023-最小ADC值)

我想告訴你,在達到最小 ADC 值之前,它會安全地關閉 ODROID-C4。
這是一個如何使用它製作應用程序的示例 shell 腳本。
正如我之前所說,通過實驗,我的 minimumADC 值是721,所以我在這個腳本中將 minimumADC 值設置為800
如果我在腳本中設置 ${minRemainBat}時迷你直流 UPS 的剩餘電池電量低於10 %,它將調用關機程序。

     1	#!/bin/bash
     2	
     3	logFile=/var/log/batADC.log
     4	minimumADC=800
     5	minRemainBat=10 # 10% percent
     6	
     7	while true
     8	do
     9	
    10	./usbio << endl >> ${logFile}
    11	b
    12	q
    13	endl
    14	
    15	if [ -f ${logFile} ];
    16	then
    17		ADCValue=`cat /var/log/batADC.log | grep "potentiometerValue" | awk -F" " '{print $3}' | tail -1`
    18	
    19		if [ ${ADCValue} -gt 0 ];
    20	 	then
    21		
    22			# remainBat=`expr \( \( ${ADCValue} - ${minimumADC} \) / \( 1023 - ${minimumADC} \) \) '*' 100`
    23			remainBat=`expr \( ${ADCValue} - ${minimumADC} \) '*' 100 / \( 1023 - ${minimumADC} \)`
    24	
    25			echo "ADC value : ${ADCValue}"
    26			echo "Minimum ADC value$ : ${minimumADC}"
    27			echo "Remaining Battery level : ${remainBat}%"
    28	
    29			if [ ${remainBat} -lt ${minRemainBat} ];
    30			then
    31				echo "Shut down system now"
    32				sleep 1
    33				/sbin/poweroff
    34			else
    35				echo "Delete batteryADC log"
    36				rm -f ${logFile}
    37				sleep 1
    38			fi
    39	 	fi
    40	fi
    41	sleep 60
    42	
    43	done
快速瀏覽

ODROID-C4

四核ARM CORTEX-A55 |4GB RAM |4 USB3 PORTS