Olen kuullut, että nykyään kehitetään älyvaatteita. On http://www.plusea.at/ verkkosivu jossa on surrealistisiä ehdotuksia älyvaatteille. Tosielämässä on esimerkiksi älypaita, joka tunnistaa, jos ihmisen selkä ei ole suora ja muistuttaa sitten värinällä suoristamaan selkää. Sitten on älykkäitä sukkia, jotka mittaavat diabeetikon jalan lämpötilän ja varoittaa värinällä jos on tulehduksen vaara. Tämä kompassivyö on siis älyvaate, joka kertoa minulle värinällä, missä suunnassa on pohjoisnapa. Se toimii myös yölla tai jos olisin sokea. Tämän elektroniikka rakentelun kautta jouduin ensimmäistä kertaa niin sanotun I2C bus:in kanssa tekemisiin. Jotta ymmärtäsin sitä paremmin laitoin esimerkiksi kaksi Arduinoa yhteen, niin että toinen Arduino lähettää teksti toiselle ja toinen Arduino kuittaa sen tekstin vastaanotetuksi. Kokeilin myös laittaa kahta erillistä anturia (MPU6050 ja QC5883L) saman I2C -bus:in kauttaa Arduinoon, ja sain sen toimimaan. Aikaisemmissa Arduino -rakenteluissa laitoin aina 9V paristot Arduinon virransyötöksi, mutta tämän projektin yhteydessä huomasin, että markinalla on paljon parempi virransyöttöyksikkö, missä on 2 Lithium - 18650 kenno virtalähteenä.
Olen seurannut Kyle Corryn ohjeita. Se näyttää olevan sopiva rakennusprojekti minulle, koska osallistun suunnistuskilpailuihin, jopa yöllä. Instructables, Kyle Corry
En olisi pystynyt kirjoittamaan tällaista ohjelmaa, peukut pystyyn Kyle Corrylle! Github, Kyle Corry
Adaptaationi tässä on vielä keskeneräinen. Koska MPU9250:tä ei näytä enää olevan tuotannossa, käytän BNO055:tä (käytyäni läpi QM5883L:n ja MAG3110:n, ja koska ne olivat huonolaatuisia antureita, siirryin parempaan tyyppiin). Käytän myös logic level converter:in, vaikka useimmat BNO055-oppaat eivät käytä niitä. Luulen, että vaikka kytken vain GND: n ja 3.3V: n Arduinosta anturiin, Arduinosta saattaa silti saada 5V: n A4 (SDA) ja A5 (SCL) nastan kautta anturiin. Compass.cpp-tiedostossa on kallistuksen kompensointialgoritmi. jossa Xm=mag_xcos(thetaRad)-mag_ysin(phiRad)sin(thetaRad)+mag_zcos(phiRad)sin(thetaRad); ja Ym=mag_ycos(phiRad)+mag_z*sin(phiRad); Paul McWortherin ohjeen mukaan.Paul Mc Worther
Ohjelmassani kallistuksen kompensointi ei näytä toimivan. Omaa visualisointia varten ja testauksen aikana lisään python-ohjelman cuboid_draw_ursina_B.py, joka lukee COM6-portista ja piirtää näytölle kolmiulotteisen kuution kuin symbolisoidun arduinon ja kirjoittaa samalle näytölle anturin tämänhetkisen suunnan. "N", "NE", "E", "SE", "S", "SW", "W", "NW" Tarkistin siis samalla kompassilla, ja se näyttää toimivan hyvin. Poistan Kylen ohjelmasta koodirivit, jotka liittyvät kalibrointiin, koska BNO055:llä (Adafruit) on oma kalibrointirutiini.
Arduino Nano Uno (Sertronics Berrybase)
BNO055 (magnetometer) Sertronics Berrybase
coin vibration motors (Aliexpress)
Button switch
10K resistor
USB cable Belt Battery pack
Breadboard
Logic level converter
glue
Soldering kit
Adafruit_BNO055
utility/imumaths.h
Adafruit_Sensor
Kalman Filter
Ohjeet: Tee vyön päälle merkintä 45 asteen välein alkaen suoraan edestäsi. Siihen sijoitetaan moottorit. Suoraan takanasi oleva moottori osoittaa kohti etelää ja sen oikealla tai vasemmalla puolella olevat moottorit kohti kaakkoa ja lounasta. Ohjelmassa moottoreihin liittyy numero ilmansuunnan alkaen pohjoisesta, joka on vyön etupuolella, ja sitten vastapäivään ensin luoteeseen, länteen jne. Kiinnitä värähtelymoottorit vyölle merkittyihin kohtiin. Käyttämissäni värähtelymoottoreissa oli tarrakiinnitys, mikä teki tästä helppoa. Kytke komponentit yhteen periaatteessa samalla tavalla kuten alhaalla olevassa piirikaaviossa ja valokuvassa. Laita sitä kokonaisuutta, joka koostuu Arduino Nanosta, magnetometristä, painikekytkimestä, loogisesta tasomuuntimesta ja uudelleenladattaviin 18650-kennoihin perustuvasta virtalähteestä, sopivaan laatikkoon ja kiinnitä laatikko vyöhön nippusiteilla. Huomautus: Kaaviossa värähtelymoottorit jakavat yhteisen maajohdon. Kuvassa virtalähdettä ei näy, koska silloin kun tein tämän ohjeen, se oli rikki, koska laitoin vahingossa väärällä polarisaatiolla varustetun 18650:n laatikkoon. Jotain savua nousi ja se haisi. Älä siis laita väärinpäin!
Kiinnitä tärinämoottoreiden johdot vyöhön sähköteipillä. Saat parhaan tuloksen, kun hankit kutistesukan, joka on vähän leveämpi leveää kuin vyö, ja kiedot koko vyön, jolloin vain USB-kaapeli jää näkyviin Arduinoa varten. Lataa tämä luonnos Arduinoon sen jälkeen, kun olet asentanut tarvittavat kirjastot. Paina painiketta vaihtaaksesi diskreetin tilan (pieni pulssi kohti pohjoista vain suunnan muuttuessa) tai aina päällä-tilan (värähtelee aina kohti pohjoista) välillä.
Arduino kukkakastelu-kokoeilujen yhteydessä halusin että neljälle kukkapöntöille menisi aina saman verran vettä. Kuvittelin, että sitä on helppo tehdä, mutta sitä se ei ole. Aina se vesi jostain syystä menee yhteen pönttöön aivan liika, ja toiselle kukkapöntölle ei mitään. Kuvittelin, että jos tekisi samankokoiset reijät, se onnistuisi. Ensin tein muovipalikoista liimaamalla kokeiluversion mihin neulalla pistämällä tein mahdollisimman samankokoiset reijät vähän samanlainen idea niin kuin sairaalan infuusioidan tiputuslaitteet. Ei se toiminnut, aina joku reikä oli pikkasen suurempi ja sitten vesi meni vaan yhdelle pöntölle. Siksi päätin, että jospa kokeilisin 3D- tulostamalla, siinähän reikien pitäisi olla tarkkoja. Ei se silti toiminnut. Sen näköinen sisäpuoleltä näytti puolikas.
Sen näköinen se stl malli näytti ulkopuolelta. Sen mallin "stl" tiedoston tallensin Cloud serverille. (tiedosto oli liian suuri, sitä ei voinut lähettää sähköpostin liitteenä). Kun piirsin sen mallin Unigraphics ohjelmalla (nykyään ohjelman nimi on "Siemens NX") Se oli minulle samalla myös kiva harjoitus 3d-mallentamisessa. Esimerkiksi piti muistaa, että 3d tulostaja ei voi mielivaltaisia ulokkeita, koska siinähän tulostetaan aina muovikerros toisen kerroksen päälle, ja kun se muovi on vähän kuuma, se saattaa mennä vähän kasaan ja menettää muotonsa. Siemens NX soveltuu oikein hyvin erikoisten aaltomaisten ja kurvikkaiden pintojen mallentamiseen.
Siis löysin tulostuspalvelun www.tori.fi verkkosivulta. www.tori.fi on lähinnä käytettyjen tavaroiden verkkomyynti, samanlaista mitä oli ennen keltaiset sivut. 3-d mallin maksoi noin 15 Euro, ja se tuli postilla aika nopeasti. Ei se kokeilu oli siltä sen vaivan arvoista, koska se periaate ei oikein toimii. Veden jakajan pitää olla erinäköinen. Sen toimivan mallin voi löytää verkkosivulta:
Ostin niin sanottuna heräteostona erittäin halvan LIDAR:in. Osittain myös kun näin jo youtube bloggarista, että sellaisia pystyy kytkemään arduino:n. Ja vaikka se robotin rakentelu tuntuu toistaiseksi vielä vähän isolta projektilta, silti saahan minulla olla unelmia. Siis unelma tehdä näistä servomoottoreilla, arduinoilla ja muilla antureilla sellaisen neipöräisen vekottimen, joka osaisi ajella ympärille, ja sen silmänä toimii tietysti tällainen Lidar, niin että robotti ei törmäisi oviin, vaan pysähtyisi aina kiltisti. Siis tämä on vielä täyttä unelma. Unelman toteuttamisen este on ajan ja ehkä myös kärsivällisyyden puute. Aikaa tarvitsisin varmaan monta viikkoa peräkkäin, jolloin keskittyisin pelkästään tähän, mutta enhän voi käyttää kaikki viikonloput tähän, onhan minulla paljon muuutakin harrastuksia ynnä muita pakolliset kotiaskareet. tämä lidarin kokeilu voisi olla se ensimmäinen askel,jolla minun pitkä robotinrakenteluprojektin taival alkaa. Tämä on se linkki siihen, mistä ostin tämän ihmelaitteen.
Kun ostin tämän LIDAR:in, kuvittelin vielä, että sitä pystyisi kytkemään arduinoon suoraan, ainakin näin se teki se sveitsiläinen bloggari, missä piti vielä ihan erilainen muunnin, minkä minä myöskin ostin, mutta joka nyt lojuu vielä muitten elektroniikkaromun seasssa. Mutta oikeastaan tämä kytkentä suoraan tietokoneen USB porttiin on ainakin minulle jo helppo, koska ohjelmointi työkalu Visual Studio Code, ja python on valmiiksi asennettu ja minulle kohtuullisen tuttu. Tarvittava liitinmoduuli tietokoneen USB-porttiin löytyy seuraavan linkin alta. TTL tarkoittaa Transistor-Transistor Logic ja wikipedian mukaan nimi tarkoittaa, että transistori sekä vahvistaa että suorittaa loogiset toiminnot. Ei kai se mtään tarkoittaa, mutta se on USB portin ja sarjasignaalin RS232 välinen konvertteri. Muistan vielä että lyhenne RS232 esiintyi C64 tietokoneen kanssa. Linkki:
Siinä Lidarin myyntipaikalla on myös viitaus millä hakusanalla löytää sopivat ohjelmapätkät signaalin purkaamiseen. Tämä Discord keskusteluryhmä tuli julkisuuteen sen takia, koska joku Amerikkalainen julkaisi siellä salaisia vaokuvia ja muita tietoja Ukrainan sodasta, ilmeisesti vain kerskailua. Siinä kanavalla mb_1e2tydlidar-s4b on joku mies nimeltään VIDICON, joka on ahertanut tämän lidarin kanssa. Siis ilmeisesti myyjä ei ole antanut minkäänlaista dokumentaatio tästä laitteesta. Ettei sanoisi että se on hyvin tyyppillistä Kiinalaisille toimittajille. Siis VIDICON:illa on näköjään sopivat signaalien analysaattorit, jolla se on vähitellen saannut selville, mitä se datapaketti tarkoittaa, joka se laite antaa ulos.Täytyy nostaa hattu tälle miehelle, kunnioitan suuresti, että sellaisia guruja löytyy tästä maailmasta. Tässä pitää mainittaa, vaikka se koodi tuleekin githubista, ettei se ihan yks-yhteen käynyt , mutta minun piti vähän kokeilla, milla Baud-rate:lla se toimii siis 153600. Minun tietokoneella on siis ollut jo python valmiiksi asennettuna VS Code:lla, mutta siihen piti vielä laittaa lisämoduulit pygame, serial, math ja enum. Oliko sudo apt-get install -y enum tai se vastaava Windows koneella.
Tässä on siis se ohjelma. Se ei ole ihan sama kuin githubin ohjelma, mutta baudrate:n ohella muutin pygame:n käskyn set_at, joka tuottaa aivan liian heikon pisteen ruudulle ja korvasin sen pygame.draw.rect kommenolla, joka tuottaa paljon selkeämmän pisteen. kokeilin myös pygame.draw.circle, mutta se onaivan liian hidas. Muutin myös suurennuskertoimen, distancef = distance / 40 # 40 is the magnification factor sitten kun haluan ennemmän yksityiskohtia esille, oma kasvon profiili esimerkkinä, silloin laitoin tämän kertoimen 3:ksi. Aika huonosti tunnen kuitenkin pygame:n ja se koko ohjelma on minulle melkein kuin hepreaa, varsinkin tämä class State(Enum). Pitää joskus vielä ajan kanssa perehtyä.
LIDAR kytkintä tietokoneen USB portille
Kokeilin LIDAR:in toiminta kulkemalla asunnon ympäri
Tämä taitaa olla aika yleinen harjoitus. Olen hirveän laiska kastelemaan kukkia, se unohtuu usein viikkotolkulla, ja haluan että kukkaa kastellaan automaattisesti pumpulla aina kun vesi on loppunut. Asetelmaan kuulu Arduino Uno, vesipumppu, vesiletku, veden tunnistin ja Arduinon sovituskortti, ja sininen relee.
Arduino ohjelmakoodi