Мазмуну:

Планшет/Телефон Arduino экраны жана 2 долларлык осциллограф: 4 кадам
Планшет/Телефон Arduino экраны жана 2 долларлык осциллограф: 4 кадам

Video: Планшет/Телефон Arduino экраны жана 2 долларлык осциллограф: 4 кадам

Video: Планшет/Телефон Arduino экраны жана 2 долларлык осциллограф: 4 кадам
Video: Подключаем дисплей от сотика или мобильного телефона к Ардуино 2024, Июль
Anonim
Планшет/Телефон Arduino экраны жана 2 долларлык осциллограф
Планшет/Телефон Arduino экраны жана 2 долларлык осциллограф
Планшет/Телефон Arduino экраны жана 2 долларлык осциллограф
Планшет/Телефон Arduino экраны жана 2 долларлык осциллограф
Планшет/Телефон Arduino экраны жана 2 долларлык осциллограф
Планшет/Телефон Arduino экраны жана 2 долларлык осциллограф

Ардуиного негизделген проект үчүн 320x240 LCD сенсордук экранды арзан сатып алса да, өзгөчө ыңгайлуу болушу мүмкүн-айрыкча эскизди прототиптөө жана тестирлөө үчүн-планшетти же телефонду сенсордук экран жана кубат булагы катары колдонуу долбоор. Сиз Android түзмөгүңүздө алда канча жогорку чечилишке жана жакшыраак дисплейге ээ боло аласыз (мис., Бардык линияларыңыз лакап атка ээ болот).

Android'ге негизделген экран USB Serial, Bluetooth же WiFi аркылуу туташтырылышы мүмкүн (мисалы, ESP8266).

Бул үчүн мен Adafruit GFX интерфейсинин чоң бөлүгүн ишке ашырган Arduino китепканасы менен жупташкан AndroidDisplay (булак булагы) деген Android тиркемесин жаздым. Сиз кодду жаза аласыз, андан кийин өзүнчө экранды колдонууга же Android негизиндеги дисплейи менен эскизди колдонууну уланта аласыз. Жана Android колдонмосунан Arduino эскизин башкаруу үчүн буйруктарды жөнөтсөңүз болот. Arduino китепканасы негизинен тактан көз каранды эмес: ал USB сериялык порт объектисин камсыз кылган ар кандай такта менен иштеши керек же WiFi аркылуу ESP8266 же Bluetooth менен (биринчи тактаңызды жупташтырыңыз).

Концепциянын колдонулушунун далили катары, мен ILI9341 дисплейинин ордуна VectorDisplayди колдонуу үчүн STM32-O-Scope долбоорун жылдырдым. Натыйжада портативдүү, батарейка менен иштеген 1.7MS/s осциллографы, ал 2 $ STM32F103C тактасынан башка нерсени талап кылбайт (libmaple негизделген Arduino ядросун колдонуу менен), эки зым, USB OTG кабели жана Android түзмөгү. Албетте, сиз муну менен 0ден 3.3Vга чейинки диапазонду аласыз.

1 -кадам: Программаны орнотуу

Сизде Arduino IDE сүйүктүү тактаңыз үчүн орнотулган жана сиздин сүйүктүү тактаңызда USB сериялык интерфейси бар деп ойлойм.

Баруу Sketch | Китепкананы кошуу | Китепканаларды башкаруу. Издөө аймагына "VectorDisplay" коюп, тапкандан кийин "Орнотууну" чыкылдатыңыз.

Бул жерден китепкана zipин жүктөп алыңыз.

Arduino/libraries папкаңыздын ичиндеги папканы ачыңыз.

Google Playден VectorDisplay жүктөп алып, аны Android түзмөгүңүзгө орнотуңуз. Сиз Android түзмөгүңүздөгү белгисиз булактардан орнотууну иштетишиңиз керек болот. Android колдонмосу UsbSerial китепканасын колдонот жана баштапкы чекит китепкана үчүн мисал колдонмолордун бири болгон.

2 -кадам: Demo Sketch

Demo Sketch
Demo Sketch
Demo Sketch
Demo Sketch
Demo Sketch
Demo Sketch
Demo Sketch
Demo Sketch

Тактаңызды (керек болсо жүктөө режиминде) компьютериңизге туташтырып, File | ге өтүңүз Мисалдар | VectorDisplay | Сиздин Arduino IDEдеги чөйрөлөр. Жүктөө баскычын чыкылдатыңыз (оң жебе).

Android түзмөгүңүздө VectorDisplay колдонмосун баштаңыз. Тактаңызды USB OTG кабели аркылуу Android түзмөгүнө туташтырыңыз. (Эгерде тактаңыздын USB микро порту бар болсо, анда USB OTG түйүнүнүн Android түзмөгүнө өтөөрүн текшериңиз). Эми VectorDisplay үчүн уруксат сурамын алышыңыз керек. OK басыңыз.

Эгерде баары ойдогудай болсо, VectorDisplay азыр экрандын сол жагында эки баскычты көрсөтөт: Circle жана Color. Чөйрөнү басуу экранда туш келди тегеректи тартат жана Түс кийинки тегерекке чейин түстү туш келди түскө өзгөртөт.

Эгерде сиз IDEдеги тегеректердин эскизин карасаңыз, анда вектордук сериялык дисплей жарыяланганын көрөсүз:

SerialDisplayClass дисплейи;

жана андан кийин setup () менен башталат:

Display.begin ();

Андан кийин Display.addButton () менен буйрук баскычтары суралат. Андан кийин цикл () Display.readMessage () буйрук баскычтары аркылуу жөнөтүлгөн буйруктарды издөө үчүн чакырат.

Демейки боюнча, дисплейдин координаттар системасы 240х320. Бирок, саптар жана тексттер сиздин Android түзмөгүңүздүн экраны толук чечилиши менен тартылган, жакшы көрүнүшү үчүн аниалиазинг менен. Ошондуктан тиркеме Вектордук дисплей деп аталат.

3 -кадам: API

Китепканадагы API VectorDisplay.h файлында. Сиз адегенде Display объектисин инициализациялашыңыз керек. USB колдонуу үчүн, муну менен аткарыңыз:

SerialDisplayClass дисплейи;

Display.begin () менен туташууну баштаңыз.

SerialDisplayClass объектисинде жеткиликтүү эки ыкма бар: бир комплект 32-разряддуу түстү (анын ичинде альфаны) жана менин VectorDisplay колдонмосу колдонгон USB сериялык протоколуна абдан жакын болгон буйруктарды колдонот, ал эми экинчиси-бул стандарттын топтому Adafruit GFX китепканасынын методдору, 16-бит түсүн колдонуу. Көпчүлүк учурда, сиз эки буйруктун топтомун эркин аралаштыра аласыз, эгер сиз Adafruit шайкеш ыкмаларын колдонсоңуз, 32-биттердин ордуна 565 менен аяктаган 16-бит түстүү командаларды колдонушуңуз керек.

Сиз Display.coordinates (туурасы, бийиктиги) менен координаттар системасын орното аласыз. Демейки туурасы = 240 жана бийиктиги = 320. Эгерде сиз квадрат эмес пикселдери бар дисплейди туурагыңыз келсе, Display.pixelAspectRatio (катыш) колдоно аласыз.

Бир нече ыкмалар, анын ичинде pixelAspectRatio (), FixedPoint32 аргументин алат. Бул өзгөрмөлүү чекиттин санын көрсөтүүчү 32 биттик бүтүн сан, мында 65536 1.0ди билдирет. Өзгөрмөлүү чекиттин санын FixedPoint32ге айландыруу үчүн: (FixedPoint32) (65536. * X) (же жөн гана TO_FP32 (x)).

Android баскычтарынан буйруктарды жөнөтүүдөн тышкары, экрандын тийүү окуялары да MCUга жөнөтүлөт.

WiFi колдонуу үчүн, тойрок_эсп8266 мисалын караңыз. WiFi режимине өтүү үчүн колдонмодогу USB баскычын басууңуз керек.

Bluetooth үчүн, сиз төмөнкүлөрдү кыла алышыңыз керек:

SerialDisplayClass Display (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 болгон кара таблетканы колдонуп жатам. Көк таблеткалар (жана көк таблетка менен бирдей болгон кээ бир кара таблеткалар) PC13те LED бар.

Бир зымды-жерге илгичти-тактанын жерге жана башка зымды тактанын B0 пинине туташтырыңыз. Тактайды VectorDisplay иштеп жаткан Android түзмөгүнө туташтырыңыз, жана сизде портативдүү, батарея менен иштеген осциллограф бар.

Сүрөттө менде фототранзисторго туташкан осциллограф бар. Экрандагы из ТВнын инфракызыл алыстан башкаруу пультунан.

Сунушталууда: