6.2.2018
We are preparing successor of succesfull 4×232 cape for BeagleBone Black. First serie is manufacturing already. I have working prototype on my desk. It differs from original 4×232 in many ways:
I was looking forward to the new cape. The board with AD converters and one-wire bus is much more interesting for me then board with four serial ports. The AD converter in BeagleBone Black can be used very easy. When configured properly, the output of the AD converter is accessed as a simple text file. To demonstrate capabilities of new board I have connected freshly charged NiMh cell and let it to discharge to 5 Ω resistor. The voltage was measured every second and saved to a file.
Simple bash script was used to measure the cell voltage:
#!/bin/bash
ADC1=/sys/bus/iio/devices/iio:device0/in_voltage1_raw
while true
do
TIME=$(date +%s)
VOLTAGE=$(cat $ADC1 | awk '{print($1*2.4414);}')
echo $TIME $VOLTAGE >> discharge-1.data
sleep 1
done
The 2,4414 constant is resolution of one A/D bit. The converter has 12 bits, the measuring range is 0-10 V.
Data was processed with other simple script. The values were averaged and grouped by one minute interval and the discharge time was converted to hours. I used Sqlite database to make all computation:
#!/bin/bash
rm -f data.sqlite3
cat discharge-1.data |
awk 'BEGIN{printf("create table data(time integer, value real); begin;\n");}
{printf("insert into data (time, value) values (%s, %s);\n", $1, $2);}
END{printf("commit;\n");}' |
sqlite3 data.sqlite3
sqlite3 data.sqlite3 <<! |
select (time*1.0)/60.0 as time, value
from (
select time/60 as time, avg(value) as value
from (select time-(select min(time) from data) as time, value
from data) x
group by time/60
) y;
!
sed 's/|/ /;' >> data-1.csv
The the data was visualised using Gnuplot:
set grid plot "data-1.csv" using 1:2 with lines title 'Voltage [mV]'
Five different cells are shown in the chart:
BeagleBone Black is amazing platform for hardware developer. The board has many peripherals ready for use onboard. Often very simple interface is needed to use peripherals of BeagleBone. When using AD converter, usually only simple resistive divider is needed. Our cape is more complex, because we need to switch betwen two different measuring ranges.