6.2.2018
Chystáme nástupce úspěšné desky 4×232 pro BeagleBone Black. První série už je ve výrobě, na stole mám první fungující prototyp. Od původní desky 4×232 se nová deska liší v mnoha ohledech:
Na novou desku jsem se těšil. Pro bastlíře je deska s AD převodníky a sběrnicí pro DS18B20 rozhodně zajímavější, než deska se sériovými porty. AD převodník v BeagleBone Black se používá skutečně velmi jednoduše. Po nainstalovaní firmware je výstup z převodníků dostupný v podobě obyčejného textového souboru. Pro demonstraci jsem k desce připojil nabitý NiMh článek a nechal jej vybíjet do odporu 5 ohmů. Každou vteřinu jsem přitom měřil napětí na článku.
K měření jsem použil jednoduchý skript:
#!/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 >> vybijeni-1.data sleep 1 done
Konstanta 2,4414 je zde rozlišení jednoho bitu převodníku. Převodník je dvanáctibitový, měřené napětí je deset voltů.
Hotová data jsem zpracoval dalším jednoduchým skriptem: zprůměroval jsem změřené hodnoty po minutách a přepočetl dobu vybíjení na hodiny. Abych se nezdržoval programováním v shellu, použil jsem pro veškeré výpočty databázi Sqlite:
#!/bin/bash rm -f data.sqlite3 cat vybijeni-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
Data jsem pak převedl do grafické podoby pomocí Gnuplot:
set grid plot "data-1.csv" using 1:2 with lines title 'Voltage [mV]'
V grafu je zobrazené měření pěti různých článků.
BeagleBone Black je úžasná deska pro výrobu podobně jednoduchých zařízení. BeagleBone má na své palubě množství hotových periférií, pro jejichž využití stačí často velice jednoduchý interface. V případě AD převodníků si mnohdy vystačíte s pouhými dvěma rezistory pro odporový dělič. Naše deska je však o cosi složitější, což je dané požadavkem přepínat mezi dvěma různými rozsahy měření.