Мазмуну:

Python колдонуу менен Raspberry Pi жана MMA7455 менен ылдамдатуунун вариацияларын көзөмөлдөө: 6 кадам
Python колдонуу менен Raspberry Pi жана MMA7455 менен ылдамдатуунун вариацияларын көзөмөлдөө: 6 кадам

Video: Python колдонуу менен Raspberry Pi жана MMA7455 менен ылдамдатуунун вариацияларын көзөмөлдөө: 6 кадам

Video: Python колдонуу менен Raspberry Pi жана MMA7455 менен ылдамдатуунун вариацияларын көзөмөлдөө: 6 кадам
Video: Как собрать ПЛК Raspberry Pi Pico || Редактор OpenPLC 2024, Ноябрь
Anonim
Image
Image

Мен чуркабадым, тартылуу күчүн сынап жаттым. Бул дагы эле иштейт…

Ылдамдатып бараткан космостук кеменин көрүнүшү, гравитациялык убакыттын кеңейишинен улам, челноктун эң бийик жериндеги саат базага караганда ылдамыраак болорун тактады. Кээ бирлери челноктун бортундагы ылдамдык эки саат үчүн бирдей болот деп айтышкан, ошондуктан алар бирдей ылдамдыкта өтүшү керек. Бир аз ойлонуп көрүңүз.

Ойлор, мотивация жана ал тургай көрсөтмө каалаган жерден келип чыгышы мүмкүн, бирок сиздин көңүлүңүз инновацияга бурулганда, бул нерсеге көңүл топтогон инсандардын салымы болот. Raspberry Pi, мини, бир такталуу Linux PC, уникалдуу иш -чараларды жана уюштуруу, программалоо жана электроника ишканалары боюнча кеңештерди сунуштайт. Raspberry Pi жана түзмөктөрдүн үйрөткүчтөрү болгондон кийин, биз Информатика жана Электроника менен таң калыштуу нерселерди жасоо жана программалоо мүмкүнчүлүгүнө ээ болобуз. Биз кеч болуп калганда акселерометрди колдонуп, тапшырманы аткаруудан кубаныч алдык жана бул гаджет менен эмне кыла алаарыңыздын артында ойлор чындап эле сонун. Ошентип, бул тапшырмада биз 3 өлчөмдүү X, Y жана Z ылдамдатууну өлчөө үчүн MMA7455, 3 огунун Сандык акселерометр сенсорун, Raspberry Pi менен Python аркылуу киргизебиз.

1 -кадам: Биз талап кылган жабдыктар

Биз талап кылган жабдыктар
Биз талап кылган жабдыктар
Биз талап кылган жабдыктар
Биз талап кылган жабдыктар

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

1. Raspberry Pi

Биринчи кадам Raspberry Pi тактасын алуу болду. Raspberry Pi - бул Linux негизиндеги жалгыз такта. Бул кичинекей компьютерде электроникалык көнүгүүлөрдүн бир бөлүгү катары колдонулган каттоочу күч, ошондой эле жадыбалдар, текст иштетүү, веб -серфинг жана электрондук почта жана оюндар сыяктуу компьютердик операциялар бар. Сиз каалаган электроника же хобби дүкөнүнөн сатып ала аласыз.

2. Raspberry Pi үчүн I2C Shield

Raspberry Pi чындыгында жок болгон негизги көйгөй I2C порту. Ошентип, TOUTPI2 I2C туташтыргычы Raspberry Pi'ди каалаган Кандайдыр бир I2C түзмөгү менен колдонуу сезимин берет. Бул DCUBE дүкөнүндө жеткиликтүү

3. 3-октук акселерометр, MMA7455

Freescale Semiconductor, Inc. тарабынан чыгарылган, MMA7455 3-Axis Digital Accelerometer-бул аз кубаттуулук, анын X, Y жана Z огу боюнча ылдамдатууну өлчөө үчүн ылайыкталган кичине масштабдуу иштетилген сенсор. Биз бул сенсорду DCUBE дүкөнүнөн алдык

4. Кабелди туташтыруу

Биз I2C Connecting кабелинDCUBE Store дүкөнүнөн сатып алдык

5. Микро USB кабели

Эң кичине чырмалышкан, бирок күчкө муктаждык боюнча эң катуу нерсе - Raspberry Pi! Стратегияны башкаруунун эң белгиленген жана эң аз талап кылынган ыкмасы Micro USB кабелин колдонуу. Дагы өнүккөн жана адистештирилген жол - бул атайын GPIO же USB порттору аркылуу күч берүү.

6. Тармакты колдоо

Ethernet (LAN) кабели менен байланышкан Raspberry Piңизди алыңыз жана аны үй тармагыңызга туташтырыңыз. Башка жагынан алганда, WiFi туташтыргычын издеп, алыскы тармакка жетүү үчүн USB портторунун бирин колдонуңуз. Бул курч чечим, негизги, кичинекей жана жөнөкөй!

7. HDMI Cable/Remote Access

Raspberry Pi'де HDMI порту бар, аны сиз өзгөчө HDMI кабели менен Экранга же ТВга туташтыра аласыз. Тандалма, сиз Linux PC же Macтан Raspberry Pi менен терминалды орнотуу үчүн SSH колдоно аласыз. Ошо сыяктуу эле, PuTTY, бекер жана ачык булак терминалдык эмулятору акылдуу ойго окшош.

2 -кадам: Аппаратты туташтыруу

Аппаратты туташтыруу
Аппаратты туташтыруу
Аппаратты туташтыруу
Аппаратты туташтыруу
Аппаратты туташтыруу
Аппаратты туташтыруу

Схемада көрсөтүлгөндөй схеманы көрсөтүңүз. Схемада сиз ар кандай электроника компоненттеринин, туташтыруучу зымдардын, электр кабелдеринин жана I2C сенсорунун байланыштарын көрөсүз.

Raspberry Pi жана I2C Shield туташуусу

Биринчи орунда Raspberry Pi алып, I2C Shield'ди байкаңыз. Калканды Пионун GPIO төөнөгүчтөрүнүн үстүнө жакшылап басыңыз жана биз бул прогрессти пирог сыяктуу оңой эле бүтүрөбүз (үзүндүнү караңыз).

Raspberry Pi жана Sensor Connection

Сенсорду жана I2C кабелин аны менен кошо алыңыз. Бул кабелдин ылайыктуу иштеши үчүн I2C Output ар дайым I2C киргизүү менен таанышып чыгыңыз. GPIO казыктарына орнотулган I2C калканы менен Raspberry Pi үчүн да ушундай кылыш керек.

Биз I2C кабелин колдонууну сунуштайбыз, анткени ал пинуттарды кесүү, камсыздоо жана уятсыздык менен аткарылган убарачылыкты жокко чыгарат. Бул маанилүү ассоциация жана ойноо кабели менен сиз ылайыктуу колдонмого презентация жасай аласыз, алмаштыра аласыз же башка гаджеттерди кошо аласыз. Бул иш салмагын эбегейсиз деңгээлге чейин колдойт.

Эскертүү: күрөң зым Жердин (GND) туташуусунан кийин ишенимдүү түрдө бир түзүлүштүн чыгышы менен башка түзмөктүн киришинин ортосунда болушу керек

Интернетке кирүү ачкычы

Биздин аракетибизди жеңиш үчүн Raspberry Pi үчүн Интернет байланышы талап кылынат. Бул үчүн сизде үй тармагына Ethernet (LAN) менен туташуу сыяктуу альтернатива бар. Ошондой эле, альтернатива катары, канааттандырарлык курс - WiFi USB коннекторун колдонуу. Жалпысынан муну билдирүү үчүн айдоочунун иштешин талап кылат. Андыктан, Linux менен бири -бириңизге карай багыт алыңыз.

Электр камсыздоо

Micro USB кабелин Raspberry Pi'дин кубат уячасына сайыңыз. Чыккыла, биз даярбыз.

Экранга туташуу

Биз HDMI кабелин башка Мониторго/ТВга туташтыра алабыз. Кээде, сиз Raspberry Pi'ге экранга кирбей туруп эле жетишиңиз керек же андан маалыматты башка жактан көрүүңүз керек болот. Мүмкүн, ойлонулган иштердин бардыгын жасоонун креативдүү жана фискалдык жактан акылдуу жолдору бардыр. Алардын бири - SSH (алыскы командалык сапка кирүү) колдонуп жатат. Бул үчүн PuTTY программасын колдонсоңуз болот.

3 -кадам: Raspberry Pi үчүн Python коддоо

Raspberry Pi үчүн Python коддоо
Raspberry Pi үчүн Python коддоо

Биздин GithubRepositoryден Raspberry Pi жана MMA7455 сенсорунун Python кодун көрө аласыз.

Кодду улантуудан мурун, Readme хроникасында берилген стандарттарды окуганыңызга кепилдик бериңиз жана Raspberry Piңизди анда көрсөтүлгөндөй орнотуңуз. Бул учурдагы шарттарды эске алуу менен бир мүнөткө жеңилдейт.

Акселерометр - ылдамдатуу күчтөрүн өлчөй турган электромеханикалык гаджет. Бул кубаттуулуктар сиздин бутуңузга тартылган туруктуу тартылуу күчүнө окшош статикалык болушу мүмкүн же алар өзгөрүшү мүмкүн - акселерометрди кыймылдатуу же вибрациялоо аркылуу алып келиши мүмкүн.

Питон коду менен жүрүп жатат жана сиз кодду каалаган жагыңызга клондоп жана өзгөртө аласыз.

# Эркин лицензия менен бөлүштүрүлгөн.# Аны каалагандай колдон, пайда же бекер, эгер ал тиешелүү эмгектеринин лицензиясына туура келсе. # MMA7455L # Бул код dcubestore.com жеткиликтүү MMA7455L_I2CS I2C Mini модулу менен иштөө үчүн иштелип чыккан # https://dcubestore.com/product/mma7455l-3-axis-low-g-digital-output-accelerometer-i%C2 %B2c-мини-модуль/

smbus импорттоо

импорттоо убактысы

# I2C автобусун алыңыз

автобус = smbus. SMBus (1)

# MMA7455L дареги, 0x1D (16)

# Тандоо режимин башкаруу реестри, 0x16 (22) # 0x01 (01) Өлчөө режими, +/- 8g bus.write_byte_data (0x1D, 0x16, 0x01)

убакыт.уйку (0.5)

# MMA7455L дареги, 0x1D (16)

# 0x00 (00) маалыматтарын кайра окуу, 6 байт # X-Axis LSB, X-Axis MSB, Y-Axis LSB, Y-Axis MSB, Z-Axis LSB, Z-Axis MSB data = bus.read_i2c_block_data (0x1D, 0x00, 6)

# Маалыматтарды 10 битке айландырыңыз

xAccl = (маалымат [1] & 0x03) * 256 + маалымат [0] эгерде xAccl> 511: xAccl -= 1024 yAccl = (маалымат [3] & 0x03) * 256 + маалымат [2] эгер yAccl> 511: yAccl - = 1024 zAccl = (маалымат [5] & 0x03) * 256 + маалымат [4] эгер zAccl> 511: zAccl -= 1024

# Экранга маалыматтарды чыгаруу

басып чыгаруу "X огунда ылдамдануу: %d" %xAccl басып чыгаруу "Y огунда ылдамдануу: %d" %yAccl print "Z огунда ылдамдануу: %d" %zAccl

4 -кадам: Кодекстин практикалуулугу

Кодекстин практикалуулугу
Кодекстин практикалуулугу

Githubдан кодду жүктөп алыңыз (же git pull) жана аны Raspberry Piден ачыңыз.

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

5 -кадам: Тиркемелер жана өзгөчөлүктөр

Freescale Semiconductor тарабынан чыгарылган MMA7455, аз кубаттуулугу жогору 3 октук санарип акселерометрди сенсордук маалыматтын өзгөрүшү, продукттун багыты жана жаңсоолорду аныктоо үчүн колдонсо болот. Бул мобилдик телефон/PMP/PDA сыяктуу колдонмолор үчүн идеалдуу: Багыттоону аныктоо (Портрет/Пейзаж), Сүрөттүн туруктуулугу, Текстти жылдыруу, Кыймылды терүү, Үнүн басуу үчүн басыңыз, Ноутбук PC: Уурулукка каршы, Оюн: Кыймылды аныктоо, Авто Ойгонуу/ Аз энергия керектөө жана санарип камера үчүн уйку: Сүрөттүн туруктуулугу.

6 -кадам: Жыйынтык

Эгерде сиз Raspberry Pi жана I2C сенсорлорунун ааламын изилдөөнү ойлонуп жүргөн болсоңуз, анда сиз өзүңүздү чыгармачылыраак кылууга аракет кылып жатканыңызда, аппараттык негиздерди колдонуу, коддоо, уюштуруу, авторитет ж. кичинекей ишкана, ал эч качан тышкы булактарга ооп кетпейт. Бул ыкма боюнча, жөнөкөй болушу мүмкүн болгон кээ бир тапшырмалар болушу мүмкүн, кээ бирлери сизди сынап көрүшү мүмкүн. Кандай болбосун, сиз өзүңүздүн формаңызды өзгөртүп жана түзүү менен бир жол жана кемчиликсиз кыла аласыз.

Мисалы, сиз Жердин гравитациялык талаасын MMA7455 жана Raspberry Pi менен Python аркылуу өлчөө үчүн Гравиметрдин Прототибин ойлонуп баштасаңыз болот. Жогорудагы ишканада биз негизги эсептөөлөрдү колдондук. Дизайндын негизги принциби - Жердин тартылуу күчү 1 г ичинде өтө кичинекей бөлчөк өзгөрүүлөрдү өлчөө. Ошентип, бул сенсорду ар кандай жолдор менен колдонсоңуз болот. Алгоритм - тартылуу градиентинин тензорун пайда кылган бардык үч перпендикуляр багытта вертикалдуу тартылуу векторунун өзгөрүү ылдамдыгын өлчөө. Муну кичине тик аралык, l менен бөлүнгөн эки чекиттеги тартылуу күчүнүн маанисин айырмалоо жана бул аралыкка бөлүү аркылуу чыгарууга болот. Биз тезирээк бул прототиптин репрезентациясын, кодун жана моделдөө структурасынан чыккан ызы -чууну жана дирилдөөнү талдоого аракет кылабыз. Баарыңарга жагат деп ишенебиз!

Сиздин жубатууңуз үчүн, бизде YouTub'да сизди текшерүүгө жардам бере турган укмуштуудай видео бар. Бул аракетке ишенип, андан аркы иликтөөлөрдү жүргүзүңүз. Эгерде мүмкүнчүлүк тыкылдабаса, эшик куруңуз.

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