Բովանդակություն:

Պլանշետ/հեռախոս, ինչպես Arduino էկրան, և $ 2 տատանում ՝ 4 քայլ
Պլանշետ/հեռախոս, ինչպես Arduino էկրան, և $ 2 տատանում ՝ 4 քայլ

Video: Պլանշետ/հեռախոս, ինչպես Arduino էկրան, և $ 2 տատանում ՝ 4 քայլ

Video: Պլանշետ/հեռախոս, ինչպես Arduino էկրան, և $ 2 տատանում ՝ 4 քայլ
Video: How to use LCD LCD1602 with I2C module for Arduino - Robojax 2024, Նոյեմբեր
Anonim
Պլանշետ/հեռախոս, ինչպես Arduino էկրան, և $ 2 տատանում
Պլանշետ/հեռախոս, ինչպես Arduino էկրան, և $ 2 տատանում
Պլանշետ/հեռախոս, ինչպես Arduino էկրան, և $ 2 տատանումներ
Պլանշետ/հեռախոս, ինչպես Arduino էկրան, և $ 2 տատանումներ
Պլանշետ/հեռախոս, ինչպես Arduino էկրան, և $ 2 տատանումներ
Պլանշետ/հեռախոս, ինչպես Arduino էկրան, և $ 2 տատանումներ

Չնայած Arduino- ի վրա հիմնված ծրագրի համար կարելի է գնել էժան 320x240 LCD սենսորային էկրան, այն ավելի հարմար կլինի, հատկապես ուրվագիծը նախատիպերի պատրաստելու և փորձարկելու համար, պլանշետը կամ հեռախոսը որպես սենսորային էկրան և էներգիայի աղբյուր օգտագործելը: նախագիծը: Ձեր Android սարքում կարող եք ունենալ շատ ավելի բարձր լուծաչափ և ավելի լավ տեսք ունեցող էկրան (օրինակ ՝ ձեր բոլոր տողերը հակածրագրավորված կլինեն):

Android- ի վրա հիմնված էկրանը կարող է միացվել USB սերիայի, Bluetooth- ի կամ WiFi- ի միջոցով (օրինակ ՝ ESP8266):

Այդ նպատակով ես գրեցի VectorDisplay (աղբյուրը այստեղ), Android ծրագիր, որը զուգորդվում է Arduino գրադարանով, որն իրականացնում է Adafruit GFX ինտերֆեյսի մեծ ենթաբազմություն: Կարող եք գրել ծածկագիր, որն այնուհետև կարող է հեշտությամբ տեղափոխվել ՝ ինքնուրույն էկրան օգտագործելու համար, կամ շարունակել օգտագործել ուրվագիծը Android- ի վրա հիմնված էկրանով: Եվ դուք կարող եք հրամաններ ուղարկել Android հավելվածից ՝ Arduino- ի էսքիզը վերահսկելու համար: Arduino գրադարանը հիմնականում անկախ տախտակից է. Այն պետք է աշխատի ցանկացած տախտակի հետ, որն ապահովում է USB սերիական պորտի օբյեկտ Serial անունով կամ ESP8266 WiFi- ով կամ Bluetooth- ով (նախ զուգակցեք ձեր տախտակը):

Որպես հայեցակարգի կիրառման ապացույց, ես տեղափոխեցի մերկ ոսկորներ STM32-O-Scope նախագիծը ՝ VectorDisplay- ի օգտագործման համար ILI9341 ցուցադրման փոխարեն: Արդյունքը ՝ շարժական, մարտկոցով աշխատող 1.7MS/վ տատանում է, որը պահանջում է ոչ ավելի, քան $ 2 STM32F103C տախտակ (օգտագործելով libmaple- ի վրա հիմնված Arduino միջուկը), երկու լար, USB OTG մալուխ և Android սարք:. Իհարկե, այն, ինչ դուք ստանում եք դրանով, 0 -ից մինչև 3.3 Վ լարման միջակայք է:

Քայլ 1: Տեղադրեք ծրագրակազմ

Ենթադրում եմ, որ դուք ունեք Arduino IDE ՝ ձեր նախընտրած տախտակի համար, և որ ձեր նախընտրած տախտակն ունի USB սերիական ինտերֆեյս:

Գնացեք ուրվագիծ | Ներառել գրադարան | Կառավարեք գրադարանները: Տեղադրեք «VectorDisplay» որոնման տարածքում և կտտացրեք «Տեղադրեք», երբ այն գտնվի:

Ներբեռնեք գրադարանի zip այստեղից:

Բացեք ձեր Arduino/libraries պանակի ներսում գտնվող թղթապանակի մեջ:

Ներբեռնեք VectorDisplay- ը Google Play- ից և տեղադրեք այն ձեր Android սարքում: Հնարավոր է, որ անհրաժեշտ լինի միացնել Android սարքի անհայտ աղբյուրներից տեղադրումը: Android ծրագիրը օգտագործում է UsbSerial գրադարանը, և ելակետը գրադարանի օրինակելի ծրագրերից մեկն էր:

Քայլ 2: Դեմո ուրվագիծ

Դեմո ուրվագիծ
Դեմո ուրվագիծ
Դեմո ուրվագիծ
Դեմո ուրվագիծ
Դեմո ուրվագիծ
Դեմո ուրվագիծ
Դեմո ուրվագիծ
Դեմո ուրվագիծ

Միացրեք ձեր տախտակը (անհրաժեշտության դեպքում `բեռնման ռեժիմում) ձեր համակարգչին և անցեք Ֆայլ | Օրինակներ | VectorDisplay | շրջանակներ ձեր Arduino IDE- ում: Կտտացրեք վերբեռնման կոճակին (աջ սլաք):

Գործարկեք VectorDisplay ծրագիրը ձեր Android սարքում: Միացրեք ձեր տախտակը Android սարքին USB OTG մալուխի միջոցով: (Եթե ձեր տախտակն ունի USB միկրո պորտ, համոզվեք, որ ձեր USB OTG հյուրընկալող կողմը անցնում է Android սարքին): Այժմ դուք պետք է թույլտվության հարցում ստանաք VectorDisplay- ի համար: Սեղմեք OK:

Եթե ամեն ինչ լավ ընթանա, VectorDisplay- ն այժմ էկրանի ձախ կողմում ցույց կտա երկու կոճակ ՝ Circle և Color: Circle սեղմելը նկարում է պատահական շրջան էկրանին, իսկ Color- ը գույնը փոխում է պատահական գույնի մինչև հաջորդ շրջանը:

Եթե նայեք IDE- ի շրջանակների ուրվագծին, կտեսնեք, որ սերիական վեկտորի ցուցադրումը հայտարարված է հետևյալով.

SerialDisplayClass էկրան;

այնուհետև սկզբնավորվում է setup () - ում ՝

Display.begin ();

Այնուհետեւ հրամանի կոճակները պահանջվում են Display.addButton () - ով: Այնուհետև loop () - ը կանչում է Display.readMessage () ՝ հրամանների կոճակների միջոցով ուղարկվող հրամաններ փնտրելու համար:

Լռելյայն, ցուցադրման կոորդինատային համակարգը 240x320 է: Այնուամենայնիվ, տողերն ու տեքստը գծված են ՝ օգտագործելով ձեր Android սարքի էկրանի ամբողջական լուծաչափը ՝ լավ արտաքին տեսքի համար հակալիզացմամբ: Այդ պատճառով հավելվածը կոչվում է Vector Display:

Քայլ 3: API

Գրադարանում API- ն գտնվում է VectorDisplay.h ֆայլում: Նախ պետք է նախաստորագրեք objectուցադրման օբյեկտ: USB- ի օգտագործման համար դա արեք ՝

SerialDisplayClass էկրան;

Նախագծեք Display.begin () - ի հետ կապը:

SerialDisplayClass օբյեկտում առկա են մեթոդների երկու փաթեթ. Մեկ հավաքածուն օգտագործում է 32-բիթանոց գույն (ներառյալ ալֆա) և հրամաններ, որոնք բավականին մոտ են USB սերիական արձանագրությանը, որն օգտագործում է իմ VectorDisplay ծրագիրը, իսկ մյուսը ստանդարտի ենթաբազմությունն է: Adafruit GFX գրադարանային մեթոդներ ՝ օգտագործելով 16-բիթանոց գույն: Մեծ մասամբ դուք կարող եք ազատորեն խառնել երկու հրամանների հավաքածու, բացառությամբ, որ եթե օգտագործում եք Adafruit- ի հետ համատեղելի մեթոդներ, ապա պետք է օգտագործեք 16-բիթանոց գունային հրամաններ, որոնց անունները 32 բիթերի փոխարեն ավարտվում են 565-ով:

Դուք կարող եք կոորդինատների համակարգը սահմանել Display.coordinates- ով (լայնություն, բարձրություն): Լռելյայն է լայնությունը = 240 և բարձրությունը = 320: Եթե ցանկանում եք ընդօրինակել ոչ քառակուսի պիքսելներով էկրանը, կարող եք օգտագործել Display.pixelAspectRatio (հարաբերակցությունը):

Մեթոդներից մի քանիսը, ներառյալ pixelAspectRatio (), վերցնում են FixedPoint32 փաստարկը: Սա լողացող կետի համար ներկայացնող 32-բիթանոց ամբողջ թիվ է, որտեղ 65536-ը ներկայացնում է 1.0-ը: Լողացող կետի համարը FixedPoint32- ի փոխարկելու համար կատարեք ՝ (FixedPoint32) (65536. * X) (կամ պարզապես TO_FP32 (x)):

Բացի Android կոճակներից հրամաններ ուղարկելու հնարավորությունից, էկրանի հպման իրադարձությունները նույնպես ուղարկվում են MCU:

WiFi- ի օգտագործման համար տե՛ս rings_esp8266 օրինակը: WiFiրագրում պետք է սեղմել USB կոճակը ՝ WiFi ռեժիմին անցնելու համար:

Bluetooth- ի համար դուք պետք է կարողանաք անել.

SerialDisplayClass էկրան (MyBluetoothSerial);

… MyBluetoothSerial.begin (115200); Display.begin ();

և այնուհետև շարունակեք այնպես, ինչպես USB սերիայի դեպքում, որտեղ MyBluetoothSerial- ը Stream- ի ցանկացած օբյեկտ է (օրինակ ՝ Serial2) միացված է ձեր Bluetooth ադապտերին:

Քայլ 4: 2 դոլար տատանում

2 դոլար արժողությամբ օսլիոսկոպ
2 դոլար արժողությամբ օսլիոսկոպ
2 դոլար արժողությամբ օսլիլոսկոպ
2 դոլար արժողությամբ օսլիլոսկոպ
2 դոլար արժողությամբ օսլիլոսկոպ
2 դոլար արժողությամբ օսլիլոսկոպ

Արագ և կեղտոտ տատանումների համար ձեզ հարկավոր կլինի կապույտ կամ սև (ավելի հեշտ է գործ ունենալ) հաբ STM32F103C8 տախտակ, որը Aliexpress- ում կարող եք ձեռք բերել 2 դոլարից ցածր գնով: Ես նկարագրում եմ, թե ինչպես պատրաստել տախտակը դրա համար Arduino միջավայրի հետ օգտագործման համար և էսքիզներ տեղադրել այստեղ:

Ներբեռնեք այս ուրվագիծը գրատախտակին, որը Pingumacpenguin- ի STM32-O-Scope էսքիզի փոփոխված տարբերակն է: Խմբագրեք #define BOARD_LED տողը ՝ ձեր տախտակին համապատասխանելու համար: Ես օգտագործում եմ սև հաբ, որի LED- ն PB12 է: Կապույտ դեղահատերը (և մի քանի սև դեղահատեր, որոնք ունեն նույն պինուսը, ինչ կապույտ դեղահատը) ունեն LED- ը PC13- ում:

Մի մետաղալար `հիմնավորված զոնդը միացրեք տախտակի գետնին, իսկ մյուսը` տախտակի B0 կապին: Միացրեք տախտակը Android սարքի հետ, որն աշխատում է VectorDisplay- ով, և ունեք շարժական, մարտկոցով աշխատող տատանում:

Լուսանկարում ես ունեմ օսլիլոսկոպ, որը միացված է ֆոտոտրանսիստորին: Էկրանի հետքը հեռուստացույցի ինֆրակարմիր հեռակառավարման վահանակից է:

Խորհուրդ ենք տալիս: