Jau sen pa galvu mētājās ideja ka gribētos izveidot pašam savu datu savācēju (data logger). Galvenās intereses ir saistītas ap auto/moto datu vākšanu ar mērķi izmantot datus, tālākiem uzlabojumiem. Takā šis ir diezgan plašs temats, nospriedu sākt ar kaut ko konkrētāku un tas ir amortizācijas datu ierakstīšana. Aptuvens pamata sastāvdaļu komplekts bija skaidrs:
Mikrokontrolieris
Sensors, kas mēra amortizatora pozīciju
Flash datu glabāšanai (vai iebūvēts Mikrokontrolierī vai papildus atkarībā no datu apjoma)
Seriālais interfeiss datu pārraidīšanai uz datoru
Bet kā jau ar daudzām lietām dzīvē, sākot domāt ko un kā konkrēti darīt, ko tieši izvēlēties un kā realizēt radās diezgan daudz jautājumi, ko palēnam šķetināju. Attēlā pa labi redzams cik tālu esu ticis. Nav pārāk eleganti, ne? ;) Plāns ir tāds ka šo rakstu esmu nospriedis sadalīt vairākās daļās un vienā no daļām cerams pārveidošu šo vadu mudžekli par elegantām platītēm kas savienotas ar tikpat elegantiem savienotājiem (connectors).
Mikrokontrolieris – Texas Instruments MSP430
Bet par visu pēc kārtas. Un pirmais kas bija jāizdomā bija kādu Mikrokontrolieri lietot. Kaut kad sen, sen biju nedaudz paspēlējies ar PICiem, bet tie tomēr likās nedaudz tādi kā pārāk vienkārši. Nākošā doma bija Atmel Atmega ar veiksmīgo izstrādes komplektiņu Arduino, kam ir daudz aprakstu internetā un ērtas C bibliotēkas. Tomēr atcerējos ka kaut kad salīdzinoši sen biju aizgājis uz semināru ko rīkoja Texas Instruments, tieši par viņu jauno, progresīvo, maz strāvu tērējošo procesoru sēriju MSP430. Un kas pats labākais starp izdales materiāliem tika izdalīts šāds neliels izstrādes rīks kas noformēts kā USB spraudnis. Tad nedaudz ar viņu paspēlējos, bet tākā konkrēta pielietojumu nebija, noliku plauktā. Tagad likās, ka tieši būtu piemērots brīdis, lai liktu viņu lietā.
USB spraudnis sastāv no divām daļām – programmātora un paša procesora kurš ir uzlodēts uz savas atsevišķas platītes un ir savienots ar programmātoru ar 4 kontaktu spraudni. Noformējums ir kompakta izmēra un izskatās eleganti-vienkārši. Vienīgais trūkums ka uz platītes nav gandrīz nekādu "perifēro iekārtu", tikai viena LED diode. Savukārt ir izvestas visas 14 procesora kājas uz speciālas vietas platītē kur iespējams pielodēt kontaktus. Ja kas, cena ir 20$ TI lapā un līdzīgi arī katalogu lapās no kurienes to var pasūtīt.
Procesors kas nāk līdzi šim rīkam saucas MSP430F2013. Tas ir 16 bitu procesors (kā visi MSP430), maximālā takts frekvence 16MHz, Flash 2Kb, RAM 250 baiti. Satur iebūvētu temperatūras devēju, ADC (analog to digital converter), divus taimerus un vel citas lietas. Lielākā daļa kāju ir konfigurējamas. Tas ir, no 8 ievada izvada kājām, katra no tām var būt vainu ievada vai izvada. To nosaka uzstādot pazīmi programmas izpildes gaitā. Plus ir tas ka ja ir vajadzīgas tikai ievades funkcijas (8 pogas), tad visas kājas var nokonfigurēt par ievades kājām. Savukārt ja citam pielietojumam vajag 8 izvades kājas (8 LED) tad, kājas var pārkonfigurēt arī tā. Mīnuss ir ka tas nedaudz sarežģī programmēšanu jo ir jāatrod kuros reģistros ir kas jāieraksta, lai visu pareizi saslēgtu.
Viens interesants piemērs no TI lapas, kas ir realizēts gandrīz neizmantojot papildus komponentes ir Temperatūras datu ierakstītājs. Tie izmantots iebūvētais temperatūras devējs un datu rakstīti iebūvētajā flashā un takā ieraksti netiek veikti pārāk bieži pietiek ar ~1Kb kas paliek pāri pēc programmas noglabāšanas flašā. Links uz piemēru šeit:
Ierakstīju arī nelielu video, kur var redzēt ez430 darbībā izpildot "Hello world" ekvivalentu Mikrokontrolieu pasaulē t.i. mirdzinot LEDu. Var redzēt arī cik neliela ir tieši procesora plate, lielāko daļu aizņem tieši programmators.
Launchpad
Launchpad ir salīdzinoši jauns ekonomiskās klases (value line) programmators/izstrādes rīks. Viņa galvenā labā īpašība ir cena – 4,3$. Līdz ar cenu viņš kļūst diezgan strauji populārs un TI lapā ir daudz projektiņi un piemēri dažādu lietu risināšanai. Uz šīs plates jau atrodas pāris pogas un pāris LED, kā arī spraudnis seriālā kabeļa pievienošanai, kas var lieti noderēt jo ātrāk vai vēlāk radīsies vēlme kaut ko nosūtīt uz datoru. Manuprāt šis ir diezgan ideāls variants pirmo eksperimentu veikšanai ar mikrokontrolieriem par ļoti pieņemamu cenu. Zemāk neliels video ar Launchpad darbībā izpildot vēlvienu primitīvu uzdevumu:
.
.
.
.
Pilns izpildes kods ir tikai pāris rindiņas:
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR |= 0x01; // Set P1.0 to output direction
while (1) // Test P1.4
{
if ((BIT3 & P1IN)) P1OUT |= 0x01; // if P1.4 set, set P1.0
else P1OUT &= ~0x01; // else reset
}
}
Tas arī viss šai daļai. Nākošajā daļā aprakstīšu sīkāk savu Datu savācēja konstukciju no elektronikas puses un no programmēšanas puses.
ir kāda iespēja dabūt Launchpad latvijā?, lai nebūtu jāmaksā milzumlielā piegādes maksa.
Member
Māris Sprancis
02:22 15.11.2010
ieraksti9 Rakstu skaits 3
5
(Cerams tas ir OK pieminet citus detalju tirgotajus…) Ir tāda iespēja, pat par ļoti saprātīgu cenu -> http://www.baltelectron.lv/lv/. Tiek veikti regulāri iknedēļas pasūtījumi no Digikey. Uzcenojums ir minimāls, un jāgaida ap nedēļu vai pat mazāk.
Varbūt ja argus.lv pārstāvji šo izlasīs, varētu pasūtīt kādu čupiņu, lai ir uz vietas – labi papildinātu esošo DIY komplektiņu klāstu.
Member
Zedy
16:21 15.11.2010
ieraksti28 Rakstu skaits 3
6
Paldies! noderīga informācija
Viesis
TRANSFORMATORS.lv
23:34 12.12.2010
Rakstu skaits 0
7
[...] jau minēju savā iepriekšējā rakstā, Launchpad ir ļoti pieejams izstrādes rīks no TI. Šajā rakstā es pastāstīšu kā es [...]