Satura rādītājs:
- 1. darbība: iestatīšana - vispirms iestatiet aparatūru
- 2. darbība: iestatīšana - iestatiet ekrānu
- 3. darbība: iestatiet galveno galu, pēc tam izveidojiet savienojumu - 1. daļa
- 4. solis: iestatiet galveno galu, pēc tam izveidojiet savienojumu - 2. daļa
- 5. solis: Pārskats par skicēm / programmām - programmas struktūra
- 6. darbība: dizains no augšas uz leju
- 7. solis: koncepcija un dizains - 1. daļa
- 8. solis: koncepcija un dizains - 2. daļa
- 9. solis: pabeidziet galveno cilpu: A) saņemšana no USB, B) saņemšana no verga Arduino
- 10. solis: Datu saņemšana un apstrāde Slave Arduino
- 11. solis: uzrakstiet saņemšanas funkciju
- 12. solis: uzrakstiet saņemšanas apakšfunkciju - 1. daļa
- 13. solis: uzrakstiet saņemšanas apakšfunkciju - 2. daļa
- 14. solis: uzrakstiet pārraides un parsēšanas funkcijas
- 15. solis: uzrakstiet pārraides un parsēšanas funkcijas
- 16. solis: fināls
Video: Sūtiet ciparu datus no viena Arduino uz citu: 16 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:53
Ievads
autors Deivids Palmers, CDIO Tech. Astonas universitātē.
Vai jums kādreiz bija jānosūta daži numuri no viena Arduino uz otru? Šī pamācība parāda, kā.
Jūs varat viegli pārbaudīt tā darbību, vienkārši ierakstot virkni ciparu, kas jānosūta seriālā monitora terminālī, un redzēt, kā skaitļi atgriežas pie otrā sērijas monitora, kas savienots ar otro Arduino. Jūs pat varat izmantot Bluetooth saiti.
Ko tas dara
Ir jāizstrādā divas Arduino programmas (skices Arduino valodā), viena galvenā programma, lai izveidotu savienojumu ar saimniekdatoru, kurā darbojas Arduino sērijas monitors, otra - darboties kā vergs, lai saņemtu sērijveida ziņojumu no meistara, atšifrētu to un nosūtītu atpakaļ. Vergs pēc izvēles spēj parādīt numurus, ar kuriem tas nodarbojas, otrā IDE sērijas monitorā - tikai gadījumā, ja vēlaties to izmantot. Tas var palīdzēt vispirms panākt, lai viss darbotos, un palīdzēt, ja izlemjat veikt izmaiņas programmās atbilstoši savām prasībām.
Aprīkojums
- 2 Arduino
- 2 USB vadi
- plākstera vadi (pēc nepieciešamības)
- 1 dators/klēpjdators, kas ielādēts ar Arduino IDE (pieejams kā bezmaksas lejupielāde no vietnes Arduino.cc)
1. darbība: iestatīšana - vispirms iestatiet aparatūru
Pievienojiet 2 Arduinos 2 datora USB portiem.
Padoms, ieteicams tos apzīmēt kā M un S (saimnieks un vergs), lai vēlāk neiekļūtu nepatikšanās (kā parādīts 2 fotoattēlos šeit).
2. darbība: iestatīšana - iestatiet ekrānu
Vislabāk ir iestatīt ekrānu tā, lai jums būtu
- IDE ielādēts ar Master programmu kreisajā pusē un
- ka ar Vergu labajā pusē.
Turiet Maser un Slave sērijas monitorus arī kreisajā un labajā pusē, kā parādīts šeit esošajā ekrānuzņēmumā.
3. darbība: iestatiet galveno galu, pēc tam izveidojiet savienojumu - 1. daļa
Iestatot galveno beigu sērijas monitoru, lai nosūtītu divus ciparus, jums vienmēr ir jāizmanto sākuma un beigu atdalīšanas rakstzīmes un komatu atdalītāja rakstzīme, kā redzams šeit.
Tagad jums ir jāsavieno 2 Arduino sērijveidā. Tas tiek darīts ar diviem plākstera vadiem.
Es izmantoju zaļo un dzelteno
- Vispirms paņemiet dzelteno, tam ir jāpievieno D6 vienā Arduino un D7 otrajā
- Tad pretēji zaļajam vadam - D7 pirmajā un D6 otrajā Arduino.
Alternatīvi, ja jums ir pieejams kaut kas, piemēram, Bluetooth moduļu pāris, piemēram, HC -05, tie arī darbosies, lai sniegtu tieši tādu pašu efektu kā iepriekš minētie vadi.
4. solis: iestatiet galveno galu, pēc tam izveidojiet savienojumu - 2. daļa
Mēs izmantojam programmatūras sērijas bibliotēku. Papildu informācija ir pieejama, izmantojot šo saiti
To var redzēt jebkuras programmas 7. rindā. Tas konfigurē 7. un 6. ciparu tapas kā TX un RX (pārsūtīt un saņemt). Tādā veidā dati no meistara Arduino caur zaļo vadu nonāks vergā un, kad otrā Arduino vergu programma būs pabeigusi darbu, atpakaļ caur dzelteno vadu. Tās pašas ilustrācijas apakšā (sērijas monitora logā) varat redzēt, ka mūsu pārsūtītie dati tagad ir veiksmīgi apritējuši šeit aprakstīto cilpu un atgriežas datorā, kad veseli skaitļi ir labi atdalīti.
5. solis: Pārskats par skicēm / programmām - programmas struktūra
Izkārtojums Tāpat kā visās Arduino skicēs, ir 3 pamatdaļas:
- Deklarācijas
- Iestatīšana
- Galvenā cilpa
Kā tas bieži notiek, mēs esam izmantojuši 4. sadaļu, kas ir “Funkciju” papildinājums. Ja neesat iepazinies ar funkciju izmantošanu, varat meklēt Google “Arduino funkcijas”, un šajā saitē atradīsit paskaidrojuma vietnes, piemēram, piemēru: www.tutorialspoint.com/arduino/arduino_functions…..
Mēs esam izmantojuši arī cilnes, lai sadalītu programmu vieglāk pārvaldāmos blokos.
Trīs mūsu izmantotie bloki ir redzami katras IDE logu ilustrācijas augšpusē:
- simpleRxTx0330Master
- bieži
- piezīmes
Tie faktiski ir atsevišķi faili programmas mapē, kā jūs varat redzēt šajā Slave programmas failu Windows Explorer skatā.
Ir ļoti labs iemesls, kāpēc mēs to darījām.
- Veidojot programmu, mēs sapratām, ka lielākā daļa programmas Skolotājam bija tāda pati kā Vergam.
- Mēs galu galā ievilkām visas kopējās daļas cilnē, kuru mēs tāpēc nosaucām par “kopīgu”, un pēc tam katru reizi, kad bijām atkļūdojuši daļu (pārbaudījām un bijām apmierināti, ka tā darbojas labi), mēs vienkārši nokopējām un ielīmējām visu šo cilni pāri meistaram līdz vergam vai otrādi.
- Piezīmju cilnes arī ir identiskas, jo dizains ir vispārīgs.
Neviena no funkcijām netiek izsaukta no iestatīšanas, tās visas tiek izsauktas no cilpas, tāpēc mēs tās esam izveidojuši pēc iestatīšanas, bet pirms cilpas.
6. darbība: dizains no augšas uz leju
Ir laba ideja izstrādāt savu skici, sākot ar definīciju, ko vēlaties darīt.
Kad esat to izdarījis, varat sākt veidot skici, lai veiktu šīs darbības. Parasti, ja ir kāda detaļa, kuru vēl nezināt, vienkārši padariet to par funkciju un atstājiet funkcijas izveidi vēlāk.
Tas seko labajai dizaina filozofijai, ko māca daudzās universitātēs un ko sauc par CDIO (ja jūs to vēl nezināt, varat to meklēt Google un atrast vietnes, lai to izskaidrotu, piemēram: https://www.cdio.org/s.) Tas būtībā saka: nesāciet dizainu, pirms neesat noskaidrojis koncepciju. Nesāciet īstenošanu, kamēr neesat noskaidrojis dizainu. Negaidiet, ka tā darbosies, pirms nebūsiet skaidri noskaidrojis ieviešanu. Vispirms C, tad D, I un O. Katrā nākamajā posmā jūs atkārtojat (dodieties atpakaļ pa cilpu (-ām), tāpēc, kad esat apmierināts ar savu sākotnējo dizaina cilpu un pārbaudiet, vai tā joprojām atbilst koncepcijai), un atjauniniet C, ja nepieciešams. Un tā tālāk, pat tad, kad esat nokļuvis operācijā, dodieties atpakaļ uz augšu un atkal redziet, kā C izskatās tagad, tad D un es, un veiciet un pārbaudiet visu Ar programmēšanas skicēm tas darbojas tāpat, ja veidojat dizainu no augšas uz leju.
7. solis: koncepcija un dizains - 1. daļa
Koncepcija šeit izskatās kā kontūras prasības, kas norādītas cilnē “Piezīmes”.”
Dizains varētu izskatīties kā cilpas agrīna versija, kas atbilst piezīmju cilnei un varētu izskatīties apmēram tā, kā jūs redzat šajā attēlā
Skatiet, kā man patīk sākt, vispirms faktiski kopējot komentārus cilpas galvgalī ar CTRL-C un pēc tam sāciet aizpildīt tukšās vietas ar komandām, kas veiks šīs darbības.
Tas faktiski apkopo OK, kā redzams ekrāna apakšā attēlā. Tas sasniedz CDIO D posmu līdz I, un, izstrādājot kodu, ir laba ideja turpināt šo D-I cilpu.
Tagad ir pienācis laiks pāriet uz nākamo posmu, tur ir komentārs, kurā teikts, ka mēs: // saņemsim kaut ko no aparatūras USB, tad mēs to pārraidīsim uz programmatūras sērijas kanālu. Mēs rakstām šo kodu, lai tas notiktu - no 133. līdz 138. rindai šeit parādīts dzeltens marķieris
8. solis: koncepcija un dizains - 2. daļa
Divas pirmās divas funkcijas, kuras mēs šeit ieviešam, ir (recv () un tran (), lai veiktu uztveršanu no aparatūras porta un pārraidītu uz programmatūras portu, tādējādi izsaucot tās ar parādītajiem parametriem “hw” vai “sw”.
Papildus tiem mēs esam pievienojuši testu globālajam mainīgajam, ko sauc par newData. Tas ir karodziņš, kuru mēs iestatīsim funkcijas "void recv ();" ietvaros. Kad ir saņemts ziņojums, šis mainīgais tiek atzīmēts no nepatiesa uz patiesu. Mēs to darām tā, lai mēs pārsūtītu ziņu tikai tad, ja tā ir saņemta (karogs == true) 134. rindā. Un, kad mēs esam nosūtījuši savu ziņojumu, tas ir “darbs paveikts”, tāpēc 137. rindā atkal notīrām karodziņu uz nepatiesu.
Atkal mēs varam pārbaudīt kompilēšanu (no D līdz I), un šoreiz mums ir kļūdas ziņojums “nav deklarēts” (parādīts). Tas mums norāda, ka mēs neesam deklarējuši recv (); funkciju. Mēs plānojam to darīt vēlāk, tāpēc pagaidām, lai mēs varētu iegūt tīru kompilāciju, mums ir jāizveido fiktīva vai viettura funkcija, kā parādīts tālāk.
Atkal mēs varam pārbaudīt kompilēšanu (no D līdz I), un šoreiz mums ir vēl viens “nav deklarēts” kļūdas ziņojums trans (); funkciju. Tam ir nepieciešams izveidot līdzīgu stubu. Atkal mēs varam pārbaudīt kompilēšanu (no D līdz I), un šoreiz mēs atradīsim šo darbu perfekti; tik tālu, labi.
9. solis: pabeidziet galveno cilpu: A) saņemšana no USB, B) saņemšana no verga Arduino
Lai pabeigtu šo daļu, mēs esam pievienojuši vienu pēdējo daļu, proti, pievienot kādu atkļūdošanas kodu.
Ir vēl viens norādījums par skicju atkļūdošanu, uz kuru var atsaukties, lai saprastu, ko mēs šeit esam darījuši un kāpēc. Skatiet pamācību "Kā izveidot un pārbaudīt Arduino skices, līdz tās darbojas"
Tātad šīs atkļūdošanas rindas [parādītas 136-139] tiek pievienotas nākamajā galvenajā cilpā, un, lūk, jūs varat tās pārbaudīt galvenajā galā, padarot atkļūdošanas mainīgo par patiesu un apkopojot (I), tad, ja pievienojot Arduino, varat augšupielādēt, atvērt seriālo monitoru un pārbaudīt, vai tas, kas atgriežas seriālajā monitorā, ir tāds, kā parādīts šeit (vai redzat, ka ir pievienots ziņojums “DEBUG MODE”?)
10. solis: Datu saņemšana un apstrāde Slave Arduino
Saņemšana no verga Arduino
Pievienojiet otrajam kanālam nepieciešamo kodu galvenajai cilpai, programmatūras sērijas uztvērējam, kā parādīts - 149. līdz 155. rindas.
Vai jūs varat redzēt, ka struktūra ir brīvi balstīta uz to, ko mēs iepriekš rakstījām par Master lietu?
Jūs arī redzēsit, ka mēs saņemam kompilatora kļūdu, vēl vienu nedeklarētu funkciju - šoreiz parseData (); - tāpēc mums ir jāizveido nepilnība arī šim nolūkam, pirms varam palaist testa apkopojumu bez kļūdām.
Datu apstrāde Slave Arduino
Pievienojiet galveno cilpas kodu, kas nepieciešams Arduino, ja tas ir konfigurēts kā vergu ierīce, kā parādīts attēlā - no 163. līdz 174. rindai. Vai redzat, ka tā struktūra ir ļoti līdzīga pirmā kanāla struktūrai?
Un jums vajadzētu atrast, ka šoreiz tas ir pilnīgi labi apkopots.
11. solis: uzrakstiet saņemšanas funkciju
Funkcijai Saņemt - void recv (char from) {} - ir divi galvenie uzdevumi.
1, lai no USB kanāla saņemtu rakstzīmju virkni, un
2, lai saņemtu vienu no Arduino uz Arduino kanālu.
Pirmajam mums būs jāizmanto, jo tas izmanto Arduino iebūvēto aparatūru UART, bet otrajam, izmantojot standarta Arduino bibliotēku: programmatūra UART.
Kad mēs sākam funkcijai pievienot kodu - lai izveidotu funkciju, kas kaut ko dara, nevis tikai nepilnību -, mums jāatceras, ka jānoņem vai jāiekļauj komentāri, ko tā aizstāj. Pretējā gadījumā mēs saņemam kompilācijas kļūdu: “void lrec (char)” atkārtota definīcija.
Mēģiniet iegūt kļūdu un pēc tam izmēģiniet kādu no iepriekš ieteiktajiem veidiem, kā to novērst.
Sāciet ar funkciju, kas izskatās kā tā, kuru mēs šeit parādām no 75. līdz 88. rindai dzeltenā krāsā.
Tagad jūs zināt, ka ar kodu jums būs jāizmēģina kompilēšanas darbība. Tiek parādīta kļūda, kas līdzīga iepriekšējai kļūdai, kuras veids: funkcijas nosaukums šajā jomā nav deklarēts. Sākotnēji mums būs vajadzīgs vēl viens nepilnības, lai ļautu mums apkopot šo kļūdu, tāpēc pievienojiet to, piemēram, iepriekš, un pārliecinieties, ka tagad varat iegūt kompilāciju bez kļūdām.
Tagad apskatīsim kodu, ko esam uzrakstījuši funkcijai recv ().
Tas ir diezgan tīrs, jūs varat redzēt nosacījuma “ja” izmantošanu, lai izveidotu abas iepriekš minētās funkcijas daļas.
Kodam “sw” daļā un “hw” daļā ir tāda pati forma, un es to aprakstīšu šeit.
Pirmais no rindu pāra katrā gadījumā ir cikla cikla sākums. Ja neesat pazīstams ar laiku, varat to atrast vietnē Arduino.cc/Reference, lai iegūtu skaidrojumu un piemērus. Šeit mēs gaidām, kamēr iebūvētā funkcija “Serial” nav saņēmusi nevienu rakstzīmi un ka mainīgais newData ir izslēgts (t.i., newData == false nosacījums ir patiess). Tiklīdz tiek saņemta rakstzīme - vai vairāk nekā viena rakstzīme -, šis laiks “nokritīs” līdz otrā pārim šajā pārī. Pēc tam tiks aicināts recAstringChar (char); funkcija pašreizējās rakstzīmes apstrādei. Šis rindu pāris mainīsies, kamēr (vai tik ilgi), kad vēl ir jāsaņem rakstzīmes. Kad tie visi ir paveikti, kamēr stāvoklis beidzas, ļaujot līdz vai citam līmenim līdz beigām, un, savukārt, ļaujot rec (char); funkcija beigsies. Tādējādi tagad ir saņemta pilna ziņa.
12. solis: uzrakstiet saņemšanas apakšfunkciju - 1. daļa
Tagad mums ir jāraksta funkcija recAstringChar (char);. Jūs redzat no komentāra līdz 50. rindai šeit augšpusē, ka tās uzdevums ir atjaunināt divus buferus ar ienākošā sērijveida ziņojuma kopijām. [Izrādījās, kamēr es visu centos panākt, lai uzzinātu, ka viena lieta, ko es uzzināju, bija tāda, ka man vajadzēja divus dažādus buferus - vai vismaz tas bija vienkāršākais veids, kā apiet dažas problēmas, tāpēc tas kļuva par vajadzīgu 2 buferšķīdumiem, tāpēc Es tikko tos uztaisīju.] Vienu buferi esmu izsaucis: ReceiveData, bet otru - saņēmisChars.
Buferi ir globāli mainīgie, tāpēc tie tiek deklarēti moduļa līmenī, skatīt kopējās cilnes 9. un 10. rindu. Šajā funkcijā ir deklarēti arī citi mainīgie, kuriem tādēļ ir lokāla darbības joma- šeit parādīti 51.-54. Šī nav īstā vieta, kur izskaidrot atšķirības starp globālajiem un vietējiem iedzīvotājiem, taču vairāk informācijas par to ir pieejama vietnē https://www.arduino.cc/glossary/en/ sadaļā Local and Global.
Jūs varat arī uzzināt visu par datu veidiem un tipa pārveidotājiem: static, boolean, byte, const, char šeit: https://www.arduino.cc/reference/en/#variables, kas parādīti šeit.
Galveno programmas plūsmu šajā funkcijā kontrolē, ja 56. rindā šeit, un tās atbilstošā citur 74. rindā. Tas attiecas uz diviem scenārijiem
a) [no 74. rindas], kad sākas saņemtā ziņa. Tas notiek, ja tiek pamanīts startMarker - tas ir definēts kā “<” raksturs, tāpēc, pārbaudot skici, mēs vienmēr sākam virkni ar šo rakstzīmi. Ja mēs to nedarīsim, nekas netiks apstrādāts kā saņemts, tas viss tiks ignorēts, it kā mēs rakstītu muļķības tastatūras uzvednē “Serial Monitor”.
b) [56. līdz 73. rindiņa], kas saņem visas pārējās rakstzīmes neatkarīgi no tā, kādas tās ir, taču tās tiek apstrādātas tikai pēc derīga sākuma (ir saņemta “>”, kā norādīts iepriekš).
Šajās rindās (no 74 līdz 78) mēs ievietojām <saņemto vienā no buferiem (ReceiveData [0]), bet ne citā. Mēs pielāgojam bufera rādītāju (mainīgais: char ndx), lai norādītu uz nākamo rezerves bufera pozīciju (ReceiveData [1]), izmantojot rindu ndx ++ pēc palielināšanas komandu (++);, un mēs iestatījām norādes karodziņu uz patiesu.
Programmas plūsmu šajā funkcijas daļā kontrolē, ja 57. rindā šeit, un tās atbilstošā daļa 65. rindā. Tas attiecas uz diviem scenārijiem
a) [no 65. rindas], kad saņemtā ziņa ir beigusies. Tas notiek, ja tiek atzīmēts endMarker - definēts kā>, tāpēc, pārbaudot skici, mēs vienmēr beidzam virkni ar šo rakstzīmi. Viena no lietām, kas notiek, saņemot beigu rakstzīmi, ir tāda, ka globālais karogs (tehniski mainīgs) newData tiek iestatīts kā patiess, tiklīdz funkcija beidzas, lai funkcija, kas sauca mūsu apakšfunkciju (izsaukšanas funkcija: recv (char);) var "zināt", ka ir saņemti pilnīgi jauni derīgi dati.
b) [no 57. līdz 64. rindai], kas saņem visas pārējās rakstzīmes neatkarīgi no tā, kādas tās ir. Tas vienkārši intensīvi novieto tos kārtīgi rindās abos buferos.
13. solis: uzrakstiet saņemšanas apakšfunkciju - 2. daļa
Varētu palīdzēt sniegt piemēru tam, kā izskatās 2 buferi, kad tie ir aizpildīti. Ja mēs ievadītu ievades taustiņu, buferos būtu redzamas šādas rakstzīmes:
Tagad jūs varat redzēt, ka mums ir viens buferis, kas ir tieši tādas pašas rakstzīmes, kā mēs pirmo reizi ierakstījām, un viens buferis, kurā ir tikai divas vērtības un atdalāms komats. Tagad mums ir kāds kods, kas var saņemt rakstzīmes, kuras mēs ierakstām sērijas monitora tastatūrā. Mēs varam pāriet no CDIO I fāzes uz O, ierakstot dažas virknes un redzot, kas notiek. Augšupielādējiet kodu Master Arduino, atveriet sērijas monitoru un mēģiniet ierakstīt kaut ko derīgu, piemēram, enter. Vai seriālā monitora ekrānā tiek parādīts tāds atbalss, kāds parādīts šeit?
14. solis: uzrakstiet pārraides un parsēšanas funkcijas
Vispirms pārraidei
Tātad, tagad mēs esam saņēmuši virkni, mēs varam uzrakstīt pārraides funkciju: tran (char); lai nomainītu tā rokturi. Tas ļaus mums nosūtīt virkni no meistara vergam Arduino, tāpēc pārbaudiet, vai abas ierīces ir pievienotas un savienotas kopā, lai pārbaudītu šo jauno funkcionalitāti.
Ievadiet šo funkciju, kā parādīts šeit 117. līdz 133. rindā. Kā jūs atpazīsiet, tai ir divas daļas, viena jānosūta uz USB kanālu (aparatūras UART), bet otra - uz otru Arduino (programmatūras UART.) Tam vajadzētu apkopot kļūdu. -bez maksas, un jūs varat nekavējoties augšupielādēt skici un redzēt, kas notiek. Šoreiz nosūtīšu. Vai jūs redzat rezultātu?
Ekrānuzņēmums ir interesants, jo saņemtajai virknei… vajadzētu izskatīties pareizi, kā iepriekš, bet pārraidītajai virknei… tagad vajadzētu izskatīties pareizi. Tomēr ņemiet vērā, ka veselu skaitļu reklāmguvums nav strādājis. Lai tas darbotos, vēl ir jāpievieno nedaudz vairāk koda.
15. solis: uzrakstiet pārraides un parsēšanas funkcijas
Tad par Parse
Šis ir koda gabals, kas parsē virkni, kas saņemta, lai izgūtu skaitliskās daļējās virknes un pārvērstu tās par veselām skaitļiem. Tas ir tukšs parseData (); galvenās cilpas funkcija
Nomainiet parsēšanas nepilnības ar kodu, kas parādīts 98. - 113. rindā. Augšupielādējiet to, un redzēsim, vai problēma, kas mums radās ar 2 veselo skaitļu vērtībām, tagad ir novērsta. Pamēģināsim.
Jā, tas darbojas, kā parādīts, atrastie veseli skaitļi ir 49 un 98.
16. solis: fināls
Šie dati ir gājuši tieši ap cilpu no datora caur meistaru caur vergu un atpakaļ caur galveno atkal uz datoru. Kad kopējā versija ir augšupielādēta gan galvenajā, gan vergu galā, un atkļūdošanas režīms ir izslēgts tagad, mēs redzam, ka dati ir pareizi saņemti abos galos, kā parādīts šeit.
Ieteicams:
Arduino programmēšana, izmantojot citu Arduino, lai parādītu ritinošu tekstu bez bibliotēkas: 5 soļi
Arduino programmēšana, izmantojot citu Arduino, lai parādītu ritinošu tekstu bez bibliotēkas: Sony Spresense vai Arduino Uno nav tik dārgi un neprasa daudz enerģijas. Tomēr, ja jūsu projektam ir ierobežoti jaudas, vietas vai pat budžeta ierobežojumi, iespējams, vēlēsities izmantot Arduino Pro Mini. Atšķirībā no Arduino Pro Micro, Arduino Pro Mi
Skatiet visus savus Fitbit datus vienā informācijas panelī: 5 soļi
Skatiet visus savus Fitbit datus vienā informācijas panelī: ir jaunais gads, un tas nozīmē, ka mums visiem ir jauni mērķi. Kopējais jaunā gada mērķis ir būt veselīgākam neatkarīgi no tā, vai tas nozīmē labāk ēst, vairāk trenēties vai būt aktīvākam kopumā. Mans mīļākais veids, kā izsekot visam, kas ir mans Fitbit
Ieslēgts un izslēgts slēdzis ar UC. Viena spiedpoga. Viena tapa. Diskrēta sastāvdaļa: 5 soļi
Ieslēgts un izslēgts slēdzis ar UC. Viena spiedpoga. Viena tapa. Diskrēts komponents: Sveiki, visi meklēja ieslēgšanas/izslēgšanas ķēdi tīklā. Viss, ko atradu, nebija tas, ko meklēju. Es runāju ar sevi, tam noteikti ir ceļš. Tas bija tas, kas man bija vajadzīgs.-Tikai viena spiedpoga, lai to ieslēgtu un izslēgtu
Sūtiet paziņojumus uz tālruni no ESP8266: 3 soļi
Sūtiet paziņojumus uz savu tālruni no ESP8266: ik pa laikam būtu lietderīgi pa tālruni saņemt paziņojumus par notikumiem jūsu Arduino kodā. ESP Notify Android lietotne un tai atbilstošā arduino bibliotēka ļauj to viegli sasniegt un var nosūtīt paziņojumus no jebkura ESP8266
Kā ieprogrammēt AVR (arduino) ar citu Arduino: 7 soļi
Kā ieprogrammēt AVR (arduino) ar citu Arduino: Šī pamācība ir noderīga, ja: * jums ir savs arduino ar atmega168 un esat iegādājies atmega328 vietējā elektronikas veikalā. Tam nav arduino sāknēšanas ielādētāja *, kuru vēlaties izveidot projektā, kurā netiek izmantots arduino - tikai