„Arduino101“ valdiklio programa: 6 žingsniai

„Arduino101“ valdiklio programa: 6 žingsniai

Turinys:

Anonim

Aukščiau parodyta vartotojo sąsaja NĖRA pastatyta pfodApp.

Jis yra visiškai pastatytas ir valdomas pagal eskizą, kurį įkelsite į „Arduino101“.

„pfodApp“ (mokama „Android“ programa) yra bendrosios paskirties „Android“ programa, skirta „Arduino“ ir kitiems mikroskopams valdyti „Bluetooth“, „Bluetooth“ mažos energijos, WiFi, „Ethernet“ ar SMS žinutėmis.Kai baigsite naudoti šio pavyzdžio kontrolės eskizą, galite naudoti nemokamą „pfodDesigner“ „Android“ programą, kad sukurtumėte savo meniu, mygtukus ir diagramas, kad galėtumėte prisijungti ir braižyti „Arduino“ duomenis, ir tada sukurti „pfodDesigner“ reikiamą „Arduino101“ eskizą, kad būtų rodomas meniu, diagramos ir kt. apie pfodApp. pfodDesigner taip pat turi ribotą paramą brėžinių kūrimui. Norėdami sukurti vartotojo sąsają, kaip ir anksčiau, patikrinkite „Custom Arduino Controls for Android“ („Android“ programavimo nereikia) ir toliau pateikiamas pastabas apie eskizą. PfodSpecifikacijoje yra visi brėžiniai primityvūs ir meniu pranešimai.

Nė vienas iš šių projektų nereikalauja „Android“ programavimo. Tas pats pfodApp naudojamas visiems pavyzdžiams. Jūsų mobiliojo telefono meniu visiškai valdo eilutės pranešimai, siunčiami iš jūsų „Arduino“ kodo.

Prekės:

1 veiksmas: „Arduino101“ sąranka:

Jums reikia įdiegti „Arduino V1.8.2 IDE“, tada iš valdybos valdytojo pridėti „Curie“ lentos palaikymą (V1.0.7). Tai taip pat prideda ir įdiegia pridėtus USB virtualius COM tvarkykles.

Arduino V1.8.2 ir Curie V1.0.7 veikia, bet ne Curie V2.0.2. Curie V2.0.2 praranda ryšius. Jei norite sumažinti „Curie V2.0.2“ į „V1.0.7“:

  1. goto valdybos vadovas ir pašalinkite Curie V2.0.2
  2. sustabdyti IDE V1.8.2
  3. atjungė Arduino101 plokštę
  4. paleisti IDE V1.8.2 ir įdiegti Curie V1.0.7 iš valdybos valdytojo
  5. prijungė „Arduino101“ plokštę ir laukė, kol bus įdiegti USB tvarkyklės
  6. pasirinkite „Board Arduino101“, pasirinkite programuotojas „Arduino101“ ir „Arduino101“ paleiskite įkrovos įkroviklį
  7. atjunkite plokštę.
  8. prijungtas lenta
  9. įkėlė eskizą

EEPROM klaidų nustatymas: „Curie V1.0.7“ EEPROM palaikymui ir antraštės failui priskirtame šaltinio kode buvo apgaulinga. Dėl to kompiliuojant atsiranda daug funkcijų apibrėžimo klaidų. Norėdami išspręsti šią problemą, eikite į „Curie“ paketo katalogą

C: Vartotojai … AppData Vietiniai Arduino15 paketai Intel aparatūra arc32 1.0.7 bibliotekos EEPROM src

kur … yra jūsų „Windows“ naudotojo vardas

ir pakeisti esamus EEPROM.h šiais dviem failais (iš V2.0.2) EEPROM.h ir EEPROM.cpp

2 veiksmas: greitas paleidimas

Čia yra „Arduino101“ starterių dalių sąrašas. Dalių kaina (išskyrus mobilųjį ir kompiuterinį) yra maždaug 45,00 USD + siuntimas.

1) Atsisiųskite ir įdiekite Arduino IDE V1.8.2 iš http://arduino.cc/en/Main/Software. Šiame tinklalapyje yra nuorodų į įvairias operacines sistemas ir nuorodą į „GettingStarted“ (http://arduino.cc/en/Guide/HomePage). Eikite į operacinės sistemos „GettingStarted“ veiksmus, kurių pabaigoje į „Arduino101“ lentą įkeliate BLINK programą. PASTABA: Šis eskizas buvo išbandytas naudojant „Intel Curie Core V1.0.7“. Yra nauja V2.0.2 versija, tačiau bent vienas vartotojas pranešė apie BLE problemas su šia versija.

2) Atsisiųskite naujausią „pfodParser“ biblioteką „V3.4 +“ ir „pfodDwgControls“ biblioteką. Norėdami įdiegti, vadovaukitės tame puslapyje pateikiamomis instrukcijomis. Pirmiausia ištrinkite bet kurią ankstesnę pfodParser bibliotekos tvarkyklę.

3) Atsisiųskite „Arduino101Starter.zip“ ir išpakuokite ją į „Arduino“ eskizų katalogą. Jis atlaisvins „Arduino101Starter“ katalogą. Atidarykite „Arduino101Starter.ino“ ir kompiliuokite bei atsisiųskite į „Arduino101“.

4) Atsisiųskite ir įdiekite „pfodApp V3.0.307 +“ savo „Android“ mobiliajame telefone („Android“ V4.4.1 ir naujesnės versijos, skirtos BLE palaikymui). Sekite pfodAppForAndroidGettingStarted.pdf, kad suporuotumėte savo mobilųjį telefoną su „Bluetooth“ skydu ir sukonfigūruotumėte naują „pfodApp“ ryšį, aš pašaukiau „101“. Galiausiai spustelėkite savo 101 prisijungti prie „Arduino101“ plokštės „Bluetooth“ mažos energijos (BLE) pagalba. „Arduino101Starter“ eskizas palaipsniui įkelia aukščiau minėtą dwg.

3 veiksmas. Darbas su valdymo programa

Norėdami padidinti, spustelėkite ant plokštės, kurią norite dirbti, plotą, taip pat galite perkelti raudoną kvadratą. Tai atidarys vaizdą „Panned“ ir „Zoomed“.

Jei norite konfigūruoti skaitmeninį kaištį, spustelėkite jį didinimo rodinyje

Piktogramos su ~ simboliu gali būti konfigūruojamos kaip PWM išėjimai.

Analoginiai kaiščiai nėra sukonfigūruojami ir atnaujinami su dabartiniu skaitymu, kai neturite atidarytų priartinimo lango.

? mygtukas trumpai parodo ekrano pagalbą.

X mygtukas uždaro langą.

4 žingsnis

„PfodApp“ yra „Arduino“ ir kitų mikroskopų bendrosios paskirties valdymo programa. Galite naudoti nemokamą „pfodDesigner Android“ programą, kad sukurtumėte savo meniu sistemą, o tada sukurkite reikiamą „Arduino“ kodą įvairioms lentoms. Taip pat savo meniu sistemai galite pridėti savo pasirinktinius valdiklius, pvz., Aukščiau pateiktus. Žr. „Custom Arduino Controls“, skirtą „Android“, kad sužinotumėte, kaip sukurti individualius valdiklius. Žiūrėkite žemiau, kaip šiame pavyzdyje naudojamas priartinimo langas.

Daugiau pfod projektų pavyzdžių rasite www.pfod.com.au

5 žingsnis: Pan ir Zoom naudojant „Pfod Embedded Dwgs“.

Šioje schemoje naudojami „Arduino101“ lentos išdėstymo įterpti brėžiniai, rodantys visą lentą ir priartintą vaizdą. Visą ekraną ir vartotojo įvestį visiškai kontroliuoja „Arduino101Starter.ino“ eskizas, kurį įkėlėte į savo lentą. Išsamiai aprašykite pfodSpecification.pdf išsamų pfod pranešimų aprašymą.

Skaitykite šią įvadinę pamoką apie „Dwg“ valdiklius, „Custom Arduino“ valdiklius, skirtus „Android“, pirma, apie tai, kaip veikia zonos ir liesti veiksmą.

Įterptinio priartinimo funkcija gali būti įkelta taip.

PASTABA: kiekvienas meniu ir dwg turi versijos eilutę, kad ji būtų saugoma įkėlus, o po to eskizas „Arduino101“ siunčia naujinimus (pakeitimus) tik vietoj viso meniu / dwg.

Pagrindiniame meniu yra šie du meniu elementai

parser.print (F ("| + X- ~ x"));

parser.print (F ("| + A ~ z"));

Meniu punktas A, apkrova dwg 'z', o meniu elementas X įkelia dwg 'x'. X- žymi šį meniu elementą, kaip pradžioje paslėptas.

pfodApp tada įkelia dwgs 'z' ir 'x'

Švelniai supaprastinta Dwg 'z' versija yra

void sendDrawing_z () {

dwgs.start (cols_101, eilutės_101, dwgs.WHITE); parser.sendVersion (); addExpandControl (); mainHelp.draw (); dwgs.insertDwg (). loadCmd ('a'). poslinkis (0, 0).send (); // nukreipimas dwg, kuris yra patalpintas, t.y. }

Tai sukuria WHITE dwg cols_101 x eilutes_101, prideda išplėtimo valdiklį ir pagalbą, o po to įterpia visas dwg 'a' pradžios viršų kairėje be skalės ar nuokrypio.

Plėtros valdiklyje yra „TouchAction“, kuri perkelia raudoną stačiakampį aplink, kai vartotojas nuvilkia pirštą. „TouchZone“ su cmd 'x' apima visą dwg 'z' ir filtras yra DOWN_UP, kad nė vienas pranešimas nebūtų išsiųstas tol, kol vartotojas neperkels piršto. Tada pfodApp siunčia paskutinę palietę vietą į Arduino101

pvz. {A ~ x ~ 15 ~ 10 ~ 4}

kur A yra meniu elementas cmd, x yra touchZone cmd ir 15,10 yra palietė pozicija, o 4 - tai veiksmas, kuris sukūrė šį pranešimą, pirštas AUKŠTYN

„Arduino101“ eskize šis kodų skyrius tvarko pranešimą, po to, kai jį išnagrinėja „pfodParser“, yra: -

} else if ('A' == cmd) {// vartotojo paspaudžiamas meniu elementas, įkeltas brėžinys su apkrova cmd 'z'

char dwgCmd = parser.parseDwgCmd (); // išanalizuoti likusį dwgCmd, grįžkite pirmąjį aktyvaus cmd žymą, jei (mainHelp.getCmd () == dwgCmd) {// dwgs.startUpdate (); addExpandBox (); dwgs.end (); } else if (expandCmd == dwgCmd) {// int col = parser.getTouchedCol (); int row = parser.getTouchedRow (); expandCol = col; expandRow = eilutė; showExpandedViewUpdate (); } else {parser.print (F ("{+}")); }

„ParserDwgCmd“ grąžina „x“ ir atitinka „expandCmd“, todėl paliesta kolona ir eilutė gaunama iš pranešimo ir nustato expandCol ir expandRow. Galiausiai vadinamas showExpandedViewUpdate ().

showExpandedViewUpdate () siunčia meniu atnaujinimo pranešimą, kuriame atnaujinimo laikas nustatomas į 0 (editRefreshTime), kad nebūtų prašoma atnaujinti, kai vartotojas sukonfigūruoja kaiščių ir atnaujinimų meniu punktą „A“ ir „X“ Kadangi nėra - po X šis meniu elementas nebėra paslėptas.

void showExpandedViewUpdate () {

clearSelections (); parser.print (F ("X")); … …… parser.print (F ("")); // uždaryti pfod pranešimą}

Kai pfodApp apdoroja šį meniu atnaujinimo pranešimą, jis prašo atnaujinti dwg 'z', kuris rodomas meniu elementui A, o dwg 'x', kad rodomas X meniu elementas. Dwg 'z' atnaujinimas nustato raudoną kvadratą paskutinėje padėtyje, kurioje palietė. Dwg 'x' atveju, jei tai yra pirmas kartas, kai jis rodomas, išsiunčiamas visas dwg

void sendDrawing_x () {

dwgs.start (cols_101, expandedRowSize, dwgs.WHITE); parser.sendVersion (); expandedHelp.draw (); dwgs.pushZero (cols_101 / 2.0f, expandedRowSize / 2.0f, expandScaling - 0,1); dwgs.insertDwg (). loadCmd ('a'). poslinkis (expandCol, expandRow).send (); // dwg.popZero (); addCloseButton (cols_101 - 1.15, expandedRowSize - 1,15, 0,58); dwgs.end (); }

Šios „dwg“ dalys yra „pan ir zoom“

dwgs.pushZero (cols_101 / 2.0f, expandedRowSize / 2.0f, expandScaling - 0,1);

dwgs.insertDwg (). loadCmd ('a'). poslinkis (expandCol, expandRow).send (); // dwg.popZero ();

Jie sako, kad pfodApp perkelia esamą nulinį tašką nulinį tašką į dwg 'x' centrą ir tada pakeiskite skalę iki ~ 3 kartų. Tada tuo momentu įterpkite visus dwg 'a', bet pirmiausia padėkite dwg 'a' taip, kad taškas, kurį naudotojas palietė (expandCol, expandRow), viršytų dabartinį „x“ nulį. Tada dėl to, kad dabartinis mastelio keitimas yra 3 kartus didesnis, kai nubrėžtas dwg 'a', jis padidinamas 3 kartus. Pabaigoje nulio judėjimas ir mastelio keitimas, kad atkurtumėte ankstesnį nulį ir padidintumėte kitą elementą, pridedamą prie dwg 'x', uždarymo mygtuką. Atkreipkite dėmesį, kad padėtis (nulis), kurioje dwg 'a' yra įterpta į dwg 'x', ir mastelio keitimas (pushZero) yra "prisiminti" kaip įterpimoDwg dalis, kad atnaujinus dwg 'x', reikia pakeisti tik įterpti įterpimo reikšmes, kad būtų pakeista „a“.

Pvz. vėlesni atnaujinimai tik įterpto dwg poslinkis keičiamas, kad jis būtų „a“, o paskutiniame vartotojo paliestame taške.

void sendDrawingUpdates_x () {

dwgs.startUpdate (); dwgs.insertDwg (). loadCmd ('a'). poslinkis (expandCol, expandRow).send (); // dwg.end (); }

Norėdami iš naujo užfiksuoti, priartinti ir priartinti „dwg“, „a“. Paleiskite naują dwg ('x') ir pakeiskite mastelį, tada įdėkite dwg, kurį norite įterpti ir priartinti ('a'), naudodami insertDwg (). Jei insertDwg.offset () yra (0,0), tada nėra panoraminio vaizdo ir viršutinis kairysis kampas dwg 'a' bus pritvirtintas prie dabartinės nulinės padėties dwg 'x' ir dwg 'a' bus pakeistos aplink tą tašką. Jei nurodysite įterpimo failąDwg.offset (), tada dwg 'a' bus nukreipta į tą padėtį, prieš įtvirtinant dabartinę dwg 'x' nulį ir prieš mastelį.

Paskutinis taškas, kolonų skaičius dwg 'x' ir dwg 'a' turi įtakos skalei. Jei jie nėra lygūs, yra numanomas dwg 'a' mastelio keitimas. Pavyzdžiui, jei dwg 'a' turi 10 colių, o dwg 'x' turi 5 colius, tada be jokio pushZero skalės, dwg 'a' būtų sudarytas 2 kartus. ty 5 stulpeliai „a“ būtų susieti su 5 „x“ stulpeliais. Pirmiau pateiktame pavyzdyje dwg 'x' ir dwg 'a' kolonų skaičius yra lygus, todėl pushZero mastelio nustatymas visiškai nustato mastelį.

6 žingsnis. Išvada

pfodApp yra bendrosios paskirties programa, kuri leidžia jums sukurti savo užsakymą ir sudėtingas valdymo programas be jokio „Android“ programavimo. „Arduino“ eskizas visiškai kontroliuoja, kas vartotojui rodoma pfodApp ir kaip vartotojas sąveikauja su juo. Aukščiau pateiktas pavyzdys iliustruoja „Arduino101“ plokštės valdymą naudojant keletą pasirinktinių valdiklių kartu su panoraminiu ir mastelio keitimu, kad šie valdikliai būtų lengvai prieinami vartotojui.

„pfodApp“ taip pat prisijungia prie įvairių BLE plokščių ir skydų, taip pat „Classic Bluetooth“, „Wifi“, „Ethernet“ ir SMS ekranų. Nemokamas „pfodDesigner“ leidžia jums sukurti savo meniu sistemą ir tada generuoja „Arduino“ kodą. Pasirinktiniai „Arduino“ valdymo įtaisai „Android“ suteikia ir įvadas, kad sukurtumėte savo pasirinktinius valdiklius. pfodSpecification.pdf yra išsamus pfod pranešimų aprašymas. Taip pat žr. Www.pfod.com.au daugeliui kitų pavyzdinių projektų.