Category Archives: Arduino

1602 ekranas per I2C

Šiandien gavau naują žaisliuką – 16×2 dalių LCD ekraną su I2C perėjimu, kuris leidžia sutaupyti daug Arduino kontaktų. Jeigu kam įdomu, pirkau iš ebay, prekės pavadinimas “Yellow Display IIC/I2C/TWI/SP​​I Serial Interface 1602 16X2 Character LCD Module”. Gavau kažką panašaus į tai ką matote paveiksliuke.

Iki šiol jungiausi prie 1602 (Hitachi HD44780) ekranų naudojant standartinę LiquidCrystal biblioteką ir tai veikdavo be jokių problemų: tiesiog sujungi laidus pagal instrukcijas ir viskas važiuoja. Šį kartą buvo kiek sudėtingiau.

Visų pirma, standartinė LiquidCrystal biblioteka nepalaiko pajungimo per I2C. Kiek radau, labiausiai giriama kita biblioteka yra NewLiquidCrystal, kuri palaiko skirtingus ekranų pajungimo tipus, tame tarpe ir I2C. Kas mus, kaip paprastus naudotojus dar domina, tai kad ja naudojamasi lygiai taip pat kaip ir paprasta LiquidCrystal biblioteka, taigi esant reikalui rasti informacijos internete bus daug lengviau. Atsisiuntus, paaiškėjo, kad dar kažko trūksta – ekranas rodė tik juodus kvadratus.

Kiekviena schema leidžianti jungtis prie ekrano per I2C prievadą veikia kiek skirtingai ir norint, kad Arduino biblioteka galėtų parodytų prašomą tekstą, dažnai tenka nurodyti bibliotekai kaip viskas yra pajungta. Mano atveju, “perėjimas” buvo pažymėtas YwRobot užrašu, o naudojama mikrochema “PCF8574”. Pardavėjo puslapyje, visa nurodyta informacija, tebuvo I2C adresas (0x27) kurį ir taip rasti yra labai paprasta. Daugiau jokios naudingos informacijos. O čia, pagrindinė informacija kurią norėčiau pasidalinti šiame įraše: norint, kad NewLiquidCrystal biblioteka veiktų su per I2C pajungtu 1602 ekranu, biblioteką reikia inicializuotu sekančiu būdu:

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

 

Dėmėsio! Neatnaujinkite savo FTDI tvarkyklių (tik Windows)

Šiandien paaiškėjo, kad FTDI čipų gamintoja išleido draiverį-žudiką, kuris atpažįsta padirbtus FTDI čipus ir juos (beveik) užmuša.

FTDI yra čipas kurio pagalba nemažai Arduino versijų bendrauja su kompiuteriu per USB portą. Šie čipai yra gana brangūs, todėl apsukrūs kiniečiai juos kopijuoja stambiais mąstais. FTDI kompanija nesugalvojo nieko protingesnio ir suprogramavo savo naujausius draiverius (tvarkykles) tokiu būdu, kad kai tik programa atpažįsta padirbtą FTDI čipą, ji perrašo jo Product ID ir kompiuteris nebeatpažįsta pajungto įrenginio. Teoriškai, Product ID įmanoma pakeisti atgal, bet situacija pasikartos. Be to, tai tirkai nėra paprastas procesas ir paprastiems vartotojams tikrai nesinorės viso to daryti. Šiuo metu paprasčiausias sprendimo būdas yra tiesiog neatnaujinti tvarkyklių. (Dar geresnis sprendimas, pagaliau pereiti prie linux arba Mac OS ;))

Kaip gi atpažinti ar Jūsų turimi įrenginiai turi savyje originalius FTDI čipus? Manau beveik niekaip. Tieisog, jeigu pirkote kažką pigiai iš ebay arba pirkot tuos pačius elektronikus daiktus brangiai bet lietuviškose e-parduotuvėse, yra labai daug šansų, kad jie gali nustoti veikę…

Daugiau apie problemą rasite šiame šaltinyje apie piktuosius FTDI.

Arduino Yún – naujasis Arduino su Linux

Visai neseniai Arduino komanda pristatė savo naujausią kūrinį – Arduino Yún. Tai pirmasis Arduino turintis Linux operacinę sistemą. Be to jame iškarto bus įdiegti WiFi bei Ethernet ryšiai, kurie įrenginiams leis dar paprasčiau jungtis į tinklus kuriant daiktų internetą.Arduino YUN nuotrauka

Naujasis Arduino Yún turi du procesorius. Vienas jų yra ATmega32U4, toks pat kaip ir Arduino Leonardo, standartiškai dirbantis 16MHz greičiu. Jis apdoros standartines Arduino programas, kaip ir kitos Arduino plokštės. Naujovė šiame arduino yra antrasis procesorius: Atheros AR9331 kuris veikia 400MHz greičiu ir turi DDR2 64MB Ram bei 16 MB SPI Flash atminties. Šis mini kompiuteris turi paprasto “laidinio” tinklo jungtį bei WiFi IEEE 802.11 b/g/n 2.4 GHz bevielį tinklą. Jame veikia Linino operacinė sistema paremta OpenWRT, kuri dažniausia naudojama routeriuose ir pritaikyta dirbti su silpna geležim. Joje iškarto bus įdiegtos python bibliotekos, bet norint, bus galima įsidiegti beveik bet kokias Linux serverines programas (veikiančias per terminalą, o ne langų sistemą). Apie tai kaip vyks bendravimas tarp dviejų procesorių, bei kaip praktiškai tai yra vykdoma, parašysiu kitą kartą, kai jau turėsiu įrenginį savo rankose ir išbandysiu viską pats.

Be visa ko, Arduino Yún turi MicroSD kortelės lizdą. Be to, prie jo galima pajungti bet kokius USB įrenginius, kuriems pavyks rasti Linux tvarkykles. Tai gali būti klaviatūra, pelė arba net webkamera. USB jungtis jungiasi prie Linuxinės Yun dalies, todėl tiesioginio priėjimo iš standartinių Arduino programų prie USB įrenginio neturėsite. Tam reikės programuoti programas Linux sistemai, kuri jau galės perduoti duomenis arduino programai. Bet kuriuo atveju toks mikrokontrolerio ir kompiuterio junginys atveria visą aibę naujų galimybių. Aš jau negaliu sulaukti kada gausiu Arduino Yún ir įgyvendinsiu vieną kitą genialią idėją :)

Aišku, prieš bėgant užsakinėti Arduino Yún, reikėtų sulaukti pirmųjų vartotojų atsiliepimų. Nes jo kaina oficialioje parduotuvėje yra 52EUR. Tai, mano manymu, yra kiek daugoka, ypač žinant kad už apie 30$ galima nusipirkti RaspberryPi, su greitesniu procesoriumi, daaug daugiau RAM’o ir netgi HDMI jungtimi televizoriui pajungti. Jame yra GPIO jungtys, prie kurių galima pajungti visokios galežies ir padaryti kažką panašaus kaip ir su Arduino. Vienintelė viltis, kad kiniečiai greitai nukopijuos naujajį Arduiną ir ebay’jus prisipildys pigiomis kopijomis.

Arduino už 10 Lt

Arduino platforma yra labai patogi. Viename falkone gaunate mikrokontrollerį, maitinimą, programavimo aplinką, vienu žodžiu beveik viską. Belieka pridėti šiek tiek pastangų ir Jūs jau gaminate savo įrenginį. Tai yra labai patogu, bet kai jau prisitestavote ir norite iš kūrimo stadijos pereiti i produkto stadiją, kai perkate gražią dėžutę, viską į ją sudedate ir turite savo gamybos geležį, galima šiek tiek pagudrauti ir sutaupyti vietas, elektros bei pinigų.ArduinoUno

Taigi kaip jau supratote iš pavadinimo, šiandien gaminsime Arduino už apie 10 Litų. Kodėl taip pigiai? Ogi todėl, kad iš originalios “pakuotės” išmesime kelis nereikalingus dalykus, tokius kaip USB to Serial keitiklį (FTDI), maitinimo schemą, krūvą jungčių, kelis šviesos diodus ir pan. Kaip matote nuotraukoje, galime nenaudoti daugelio detalių, taip taupydamį daug vietos bei pinigų.

Detalių sąrašas:

  1. ATMEGA328P-PU DIP-28 – 8-9 Lt iš ebay. Geriau su įrašytu bootloaderiu, nors jeigu gausite be jo, galėsite jį patys įdiegti naudojantis turima Arduino Uno plokšte.
  2. 22pF kondensatorius – 2vnt. po 0,15 Lt tiktų kad ir šie iš lemonos.
  3. Kvarcinis rezonatorius 16.000 MHz – 2Lt iš lemonos.

Tai tiek :)

arduinopins

Viršuje kairėje matote sužymėtas visas Atmega328 kojeles. O dešinėje pajungimo schemą. Tereikia prijungti pliusą (+5V) prie 1, 7 bei 20 kojelių, žemę (minusą) prie 8 bei 22 kojelių, rezonatorių prie 9 ir 10, o nuo jo kiekvienos kojelės po vieną 22pF kondensatorių prie minuso. Viskas :)

Toliau jungiate kaip prie paprastos Arduino plokštės pagal pateiktą schemą. Pvz. jei naudojote A1 Arduino analoginį išėjimą, tą vieta jungiate prie 24 kojelės, o tryliktą skaitmeninį išėjimą, dažniausiai naudojamą šviesos diodui pajungti, lituojate prie 19 kojelės ir t.t.

Norėdami įrašyti programą į Atmega328 mikrokonktrollerį, tiesiog įdėkite jį į savo turimą Arduino plokštę ir veikite kaip visada. Baigę darbą išimkite ir dėkite į savo schemą. Vienintelis dalykas kurį reikia žinoti, tai kad čipe jau turi būti įrašytas bootloaderis. Jeigu nusipirkote čipus be bootloaderio, ne bėda, jį galėsite įprogramuoti pasinaudoję Arduino Uno plokšte. Bet apie tai, kitą kartą.

Kur nusipirkti Arduino, kiek kainuoja?

Jeigu jau nusprendėte, kad norite pradėti savo pažintį su mikrokonktroleriais nuo Arduino, man belieka Jus pasveikinti! Manau, tikrai nepasigailėsite dėl šio sprendimo. Šiame straipsnyje pasistengsiu trumpai apžvelgti kokią Arduino versiją pasirinkti ir kur pigiau nusipirkti.

Arduino komanda yra sukurusi daugybę skirtingų Arduino modelių. Visi jie veikia tuo pačiu principu, programuoti juos galite su ta pačia programa (angl. IDE), o žinios įgytos mokantis su papraščiausiu, pigiausiu modeliu, galės būti panaudotos jeigu ateityje sugalvosite nusipirkti naujesnį, galingesnį ar kokį nors kitokesnį modelį.

Mano manymu pirmai pažinčiai su Arduino sistema geriausiai tinka Arduino Uno. Tai yra turbūt pagrindinis, papuliariausias modelis. Daugumoje užsienio puslapių bei tutorialų aprašoma kaip dirbti būtent su šiuo modeliu. Be to jam sukurta daugiausiai išplėtimo skydelių (Shield). Taigi jei kartais sugalvosite, kad norite sutaupyti laiko išleisdami kruvą pinigų, galėsite užsisakyti sau išplėtimų kurie pridės naujas galimybes Jūsų arduino, tokių kaip prisijungimas prie wi-fi tinklo, galimybė prisijungti prie GSM tinklo (SMS siuntimas/gavimas, GPRS internetas), SD kortelių nuskaitymas bei rašymas į jas ir begalė kitų ne mažiau naudingų galimybių.

Pirkimas

Dėl man nežinomų priežasčių, šio straipnsio rašymo metu, nei Lemona nei Evita arduinų neparduoda. Lemona tik siūlo užsisakyti už kosminę kiną. Kiek esu radęs, Lietuvoje yra el. parduotuvė kurios pagrindinė specializacija yra arduino – www.darysiupats.lt. Šiuo metu joje Arduino Uno kainuoja apie 80Lt (negaliu patikrinti tiksliau, nes puslapis nulūžęs). Aišku tai nėra pigiausias variantas, bet galite paguosti save, kad palaikote Lietuvišką firmą, kuri platina atviro kodo elektroniką Lietuvoje.

Papildymas 2013-04-07: Kažkaip visai netyčia šiandien radau dar dvi lietuviškas el. parduotuves parduodančias arduino. Modelis.lt Arduino Uno R3 (trečioji, šiuo metu naujausia versija) siūlo už 86Lt, o inforeg už 69Lt, bet šiuo metu neturi. Taip pat norėčiau pabrėžti, kad nesiūlau pirkti versiju su SMD tipo Atmega čipu, kuris yra prilituotas prie plokštės. Nusipirkus tokį Arduino Jums bus sunkiau jo pagalba įrašyti programas į kitus Atmega čipus, apie ką papasakosiu sekančiame straipsnyje.
Papildymo pabaiga.

Jeigu biudžetas yra labai mažas, bet turite laiko laukti siuntos iš Kinijos, siūlyčiau pasinaudoti ebay aukcionais. Aišku pirkimui iš ebay Jums reikia turėti Paypal sąskaitą (o jai savo ruožtu greičiausiai reikėtų kreditinės arba specialios interneto atsiskaitymams skirtos debetinės) kortelės. Bet tai jau tema atskiram sraipsniui. Jeigu kam įdomu, klauskite komentaruose, paaiškinsiu.

Taigi, įvedame ebay paieškos laukelyje “arduino uno” ir ieškome. Šiuo metu pigiausios Arduino kopijos kainuoja nuo 13$ (apie 35Lt) kartu su siuntimu iki Jūsų namų (o tiksliau pašto skyriaus). Už šiuos pinigus gausite patį Arduino, prie jo Jums dar reikės USB B laido, bet jeigu turite namuose per USB jungiamą printerį, greičiausiai tiks jo laidas. Jeigu norisi dar labiau sutaupyti, galite rinktis Arduino nano kopiją (Kiniečiai ją vadina “Iduino nano”). Joje šiek tiek mažiau išėjimų, šiek tiek silpnesnis pats mikrokonktroleris (Atmega168), mikro USB jugtis (gali tikti laidas kuriuo jungiate telefoną prie kompiuterio). Taip pat reikės šiek tiek daugiau pasukti galvą bandant kopijuoti internete aprašytus projektus, kurie kaip jau rašyta anksčiau, dažniausiai aprašinėjami remiantis Arduino Uno. Užtat kaina šiuo metu nuo maždaug 9$ (24Lt) su siuntimu. Tai yra tikrai labai maža kaina turint omeny kokias galimybes Jums suteiks mikrokonkontrolerių pasaulis, kurį Jums atvers Arduino!

Kai jau turėsite savo pirmąjį Arduino, papasakosiu Jums kaip pasidaryti dar pigesnį Arduino už 10 Litų, pasinaudojus gamikliniu!