Мазмуну:
- 1 -кадам: Shield/breadboardду куруңуз
- 2 -кадам: Arduino программасы
- 3 -кадам: Android тиркемесин Google Playден жүктөңүз же GitHubдын филиалына
- 4 -кадам: Кызыктуу нерсеге Arduino менен туташуу (Мен R/C машинасын колдондум)
- 5 -кадам: Arduino менен туташуу үчүн Android түзмөгүн колдонуңуз
- 6 -кадам: Маалыматты алуу жана плоттоо
- 7 -кадам: Кийинки колдонуу үчүн Pythonго (же башка платформага) импорттоңуз
Video: Чыныгы убакыт MPU-6050/A0 Arduino жана Android менен маалыматтарды каттоо: 7 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Мен машинаны үйрөнүү үчүн Arduino колдонууга кызыкчумун. Биринчи кадам катары, мен Android түзмөгү менен реалдуу убакытта (же ага абдан жакын) маалымат дисплейин жана журналын түзгүм келет. Мен MPU-6050дөн акселерометрдин маалыматын алгым келет, ошондуктан мен HC-05ти 115200 bodда колдонууга ылайыкташтырдым. Бул конфигурация менен маалыматтын 4 каналы секундуна 250 үлгүдө өткөрүлүшү мүмкүн.
Курулуш бир нече кадамдардан турат:
- Калканды же нан тактасын куруңуз
- Arduino программасы
- Android колдонмосун Google Playден жүктөңүз же GitHubды филиалга бөлүп, өзүңүз түзүңүз
- MPU-6050ди дирилдей турган кызыктуу нерсеге туташтырыңыз (мен R/C машинасын колдондум)
- Arduino менен туташуу үчүн Android түзмөгүн колдонуңуз
- Маалыматты пландаңыз, эгер кызыксаңыз сактап коюңуз
- Андан ары колдонуу үчүн Pythonго (же башка платформага) импорттоңуз
Кел, баштайлы!
1 -кадам: Shield/breadboardду куруңуз
Бул Arduino, HC-05 жана MPU-6050 үчүн туташуу схемасы. MPU-6050дөн тышкары менде ADC иштеп жатканын көрсөтүү үчүн жарык сенсоруна A0 аналогдук кирүүсү бар. Ар кандай 0-5 вольттуу сигнал A0 ADCге киргизилиши мүмкүн. Бул мен куруу үчүн колдонгон компоненттер:
- Arduino Uno
- HC-05 (HC-06 да иштеши керек, бирок менин курулушум HC-05 менен болгон)
- MPU-6050
- Sparkfun фоторезистору
- 10kOhm каршылыгы (күрөң-кара-кызгылт сары)
Көпчүлүк HC-05 Bluetooth модулдары демейки боюнча 9600 bod. Маалымат ийгиликтүү өткөрүлүшү үчүн аны 115200 байдын ылдамдыгына кайра программалашыңыз керек болот. Муну кантип жасоону түшүндүргөн жакшы HC-05/HC-06 AT Command Instructable бар.
2 -кадам: Arduino программасы
Мен Arduino программасы үчүн Arduino IDE 1.6.7 чыгарылышын колдондум. Кодду бул кадамдагы шилтемелерден же GitHub репоунан жүктөп алсаңыз болот. Мен үч версияны киргиздим: Firmware125.ino - 125 герц, Firmware250.ino - 250 герц, Firmware500.ino - 500 герц версиясы. Arduino 500 герцте айлануу үчүн, A0 ADC чогултулбайт.
Камтылган программада мен убакытты текшерүү үчүн колдонулган Pin 9дагы саат бар. Из циклдин убактысын 4 мс (1/250 герцке барабар) көрсөтөт. Мен сериялык шилтеме көйгөйлөрү бар болсо, убакыт бирдей болбойт деп таптым.
Arduino коду ар бир пакетке каналдын номерин кошуу үчүн бит маскировкасын колдонот, анткени кээде үлгүлөр Bluetooth аркылуу түшүп кетет. Мен каналдын номерин сактоо үчүн эң маанилүү үч битти колдоном. Кол коюлган бүтүн сандар үчүн эң маанилүү бит (MSB) белги үчүн корголгон. Мен MSBди бүтүн санга эмес, дарегиме колдонгум келгендиктен, кол коюлган акселерометрдин бардык маанилерин белгисиз бүтүн сандарга айландырышым керек. Мен муну ар бир мааниге 32768 кошуу менен жасайм (MPU акселерометринин ADC сандары +32768ден -32768ге чейин) жана белгисиз бүтүн сандар катары чыгарам:
(unsigned int) ((long) iAccelData+32767);
Каналдын номери ар бир акселерометр менен A0 порту үчүн бирдей, андыктан каналдын номерлери ирээтсиз болсо, түшүп калган пакетти табууга болот. Arduinoдогу Bluetoothдан келген пакеттер үчүн бинардык үлгү (белгилер бир аз акылдуу түрдө өзгөрөт):
(xacc 3 дарек бит = 0x00, 13бит белгиси жок) (yacc 3 дарек бит = 0x01, 13бит белгиси жок) (zacc 3 дарек бит = 0x02, 13бит белгиси жок) (3 дарек бит = 0x03, iadc13bit белгиси жок)
(xacc 3 дарек бит = 0x00, 13бит белгиси жок) (yacc 3 дарек бит = 0x01, 13бит белгиси жок) (zacc 3 дарек бит = 0x02, 13бит белгиси жок) (3 дарек бит = 0x03, iadc13bit белгисиз) (xacc 3 дарек бит = 0x00, 13 бит белгиси жок) (yacc 3 дарек бит = 0x01, 13 бит белгисиз) (zacc 3 дарек бит = 0x02, 13 бит белгисиз) (3 дарек бит = 0x03, iadc13bit белгиси жок)…
Эгерде Bluetooth маалыматын окуу үчүн Accel Plot Android колдонмосунан башка нерсени колдонуп жатсаңыз, бул жерде даректи алуу кадамдары келтирилген (мен GitHub репонунан Accel Plot Bluetooth.java файлынан өзгөрмө аттарды колдонуп жатам):
- 16 кол коюлбаган интдитада окуңуз
- Жогорку байтты чыгарып, btHighке сактаңыз.
- Аз байтты чыгарып, btLowко сактаңыз.
- btHighтен даректи алыңыз: (btHigh >> 5) & 0x07. Бул билдирүү btHigh 5 битти оңго жылдырат, үч дарек битин эң төмөнкү үч реестрге жылдырат. & Белгиси логикалык ЖАНА 4 жана андан жогору биттерди нөлгө, акыркы үч битти дарек биттерине дал келтирүүгө мажбурлайт. Бул билдирүүнүн жыйынтыгы сиздин дарегиңиз.
Сиз Accel Plot колдонуп жатсаңыз, даректи алуу жөнүндө тынчсыздануунун кажети жок.
3 -кадам: Android тиркемесин Google Playден жүктөңүз же GitHubдын филиалына
Сизде Android колдонмосун түзмөгүңүзгө жүктөө үчүн эки тандоо бар. Эгерде сиз коддон качкыңыз келсе, "Accel Plot" издей аласыз жана колдонмо Google Play дүкөнүндө пайда болушу керек. Орнотуу үчүн дүкөндүн нускамаларын аткарыңыз.
Бул Нускамага менин каалоом чындыгында башкаларды долбоорлорду курууга үндөө, ошондуктан мен кодду GitHub репоунда жарыяладым. Сиз муну бутактап, куруп жана өзүңүз каалагандай өзгөртүшүңүз керек. Мен кодду MIT лицензиясынын астында жарыяладым, андыктан көңүл ачыңыз!
4 -кадам: Кызыктуу нерсеге Arduino менен туташуу (Мен R/C машинасын колдондум)
Мен акыры аппаратты жолдун үстүнкү бетин аныктоо үчүн колдонгум келет, ошондуктан кичинекей алыстан башкарылуучу (R/C) машина ылайыктуу деп ойлодум. Менин оюмча, бул кийинки кадамга жардам берет, эгерде акселдер кыймылдаган же дирилдеген нерселерде болушу мүмкүн.
5 -кадам: Arduino менен туташуу үчүн Android түзмөгүн колдонуңуз
Эгер сиз буга чейин андай кыла элек болсоңуз, алгач HC-05ти Android түзмөгүңүзгө жупташтырышыңыз керек болот. Мен ишенем, көпчүлүк түзмөктөрдө муну жөндөөлөргө өтүү менен жасаса болот. Көпчүлүк HC-05 түзмөктөрү үчүн демейки пин 1234 же 1111 болот.
Android түзмөгүндө AccelPlot колдонмосун ачыңыз. Колдонмо ачылганда жана HC-05ке туташуудан мурун, тандоо ылдамдыгын (бул Arduino кодунда белгиленген), акселерометрдин таразаларын (Arduino кодунда дагы коюлган) жана сактала турган үлгүлөрдүн санын өзгөртө аласыз.
Бул параметрлер орнотулгандан кийин "Туташуу" баскычын чыкылдатыңыз. Бул Bluetooth түзмөктөрүн алып келиши керек жана сиздин түзмөк тизмеде болушу керек. Аны тандап, код байланышты орноткондон кийин, сиз "Туташкан" тост калкып чыгат.
Accel Plotко кайтуу үчүн артка жебе баскычын колдонуңуз. HC-05 түзмөгүнөн маалыматтарды көрсөтүү үчүн "Агымды баштоо" баскычын таптаңыз. Сиз ошондой эле маалыматты сактоо же аудио уячасы аркылуу жыштыгы модуляцияланган мазмунду ойнотуу үчүн жеткиликтүү баскычтарга ээ болушуңуз керек.
6 -кадам: Маалыматты алуу жана плоттоо
"Агымды баштоо" баскычы иштетилиши керек. Маалыматты экранга өткөрүүнү баштоо үчүн аны басыңыз.
"Маалыматты сактоо" баскычы да иштетилет, маалыматтарды сактоо үчүн аны таптап коюңуз.
Accel Plot аудио каналдарда модуляцияланган сигналды чыгаруу мүмкүнчүлүгүн да камтыйт. Accel Plot тиркемесиндеги 2 канал Android түзмөгүндөгү аудио чыгуучу уячанын сол жана оң каналдарын билдирет. Бул MPU-6050 маалыматтарын Улуттук инструменттер сыяктуу өзүнчө маалыматтарды каттоо тутумуна киргизүүнү кааласаңыз пайдалуу.
Видеодо R/C машинасында маалыматтарды чогултуу системасынын мисалы көрсөтүлгөн.
7 -кадам: Кийинки колдонуу үчүн Pythonго (же башка платформага) импорттоңуз
Файлдар Android түзмөгүнө сакталат. Файлдар Android API 18 жана андан улуу версиялары үчүн "AccelPlot" каталогунда сакталат. Код.dat файлдарын "\ Tablet / Documents / AccelPlot" папкасына API 19 (KitKat 4.4) жана андан жогору жайгаштырат. Мен USB аркылуу туташканда кээ бир Android түзмөктөрүндө файлдарды көрсөтүүдө кыйынчылыктар болду. Кээ бир учурларда, аларды көрсөтүү үчүн Android түзмөгүн өчүрүп -күйгүзүүгө туура келди. Бул эмне үчүн экенин билбейм, бирок ар бир канал үчүн төрт файл болушу керек. Алар кошумча жумуш үчүн жергиликтүү каталогго көчүрүлүшү мүмкүн.
Мен файлдарды ачуу жана маалыматтарды көрсөтүү үчүн Anaconda/Python 2.7 колдондум. "ExploratoryAnalysis.ipynb" файлында IPython Notebook файлы бар, ал бардык маалымат файлдарын ачат жана үлгүлүү маалыматтарды пландаштырат. Үлгү файлдар GitHub репоуна кирет. Берилиштер чоң байндуу 4 байт калкыма ('> f') катары сакталат, андыктан ар кандай анализ программасы аларды ача алышы керек.
Менде "ReadDataFiles.ipynb" деп аталган жөнөкөй файл бар, ал бир файлда кантип аталышын окууну көрсөтөт.
Сунушталууда:
Коронавирустун белгилерин аныктоо жана маалыматтарды каттоо менен Smart Watchz: 10 кадам
Smart Watchz Corona симптомдорун аныктоо жана маалыматтарды каттоо менен: Бул LM35 жана Accelerometer аркылуу серверде маалыматтарды каттоо менен Corona белгилерин аныктоочу Smartwatch. Rtc убакытты көрсөтүү жана телефон менен шайкештештирүү жана аны маалыматтарды каттоо үчүн колдонуу үчүн колдонулат. Esp32 Blue менен кортекс контроллери бар мээ катары колдонулат
ESP8266 жана OLEDди колдонгон Live Covid19 Tracker - Чыныгы убакыт Covid19 тактасы: 4 кадам
ESP8266 жана OLEDди колдонгон Live Covid19 Tracker | Realtime Covid19 тактасы: Techtronic Harsh веб -сайтына баш багыңыз: http: //techtronicharsh.com Бардык жерде роман Corona Virus (COVID19) чоң тутанышы бар. Дүйнөдө учурдагы COVID-19 сценарийине көз салып туруу керек болуп калды, ошондуктан үйдө болуп, бул биринчи
PfodApp, Android жана Arduino колдонуп мобилдик маалыматтарды каттоо: 5 кадам
PfodApp, Android жана Arduino менен мобилдик маалыматтарды каттоо: Moblie маалыматын каттоо pfodApp, Andriod мобилдик телефонуңуз жана Arduino аркылуу жөнөкөй кылынды. NO Android программалоо талап кылынат. Android түзмөгүңүздөгү маалыматтарды пландоо үчүн, муну кийинчерээк Android / Arduino / pfodApp колдонуп, жөнгө салынуучу жөнөкөй алыстан берилиштерди караңыз
Мультиметр/Arduino/pfodAppты колдонуу менен жогорку тактыкта алыскы маалыматтарды каттоо: 10 кадам (сүрөттөр менен)
Мультиметр/Arduino/pfodAppты колдонуу менен жогорку тактыкта алыскы маалыматтарды каттоо: 26 -апрелде жаңыртылган 4000ZC USB эсептегичтери менен иштөө үчүн такталган схема жана Android коддоосу талап кылынбайт каттоо үчүн жана
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: 13 кадам (сүрөттөр менен)
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: Киришүү: Бул Ардуино тактасын, Sensor (DHT11), Windows компьютери жана Processing (бекер жүктөлүүчү) программасын колдонуп, Температураны, Нымдуулукту санариптик жана тилке графасынын формасы, убакытты жана күндү көрсөтүү жана эсептөө убактысын иштетүү