Sisällysluettelo:

Laajennettavan painikkeen käyttö tärinäpalautteella: 7 vaihetta (kuvien kanssa)
Laajennettavan painikkeen käyttö tärinäpalautteella: 7 vaihetta (kuvien kanssa)

Video: Laajennettavan painikkeen käyttö tärinäpalautteella: 7 vaihetta (kuvien kanssa)

Video: Laajennettavan painikkeen käyttö tärinäpalautteella: 7 vaihetta (kuvien kanssa)
Video: Complete Next js -kurssi - Opi Nextjs 2 tunnissa! | Reagoi SSR + aikakoodeihin 2024, Heinäkuu
Anonim
Laajennettavan painikkeen sovellus, jossa on tärinäpalaute
Laajennettavan painikkeen sovellus, jossa on tärinäpalaute
Laajennettavan painikkeen sovellus, jossa on tärinäpalaute
Laajennettavan painikkeen sovellus, jossa on tärinäpalaute

Tässä opetusohjelmassa näytämme ensin, kuinka voit käyttää Arduino Unoa tärinämoottorin ohjaamiseen laajennetun painikkeen avulla. Useimmat painikkeiden opetusohjelmat sisältävät fyysisen leipälevyn painikkeen, kun taas tässä opetusohjelmassa painiketta on muutettu liitettäväksi leipälevyyn hyppyjohtojen kautta. Tämän painikkeen avulla voit hallita moottorin voimaa ja tärinäkuviota. Tämän jälkeen näytämme mahdollisen prototyypin puettavasta tekniikasta, joka käyttää tätä kokoonpanoa. Tämä puettava on käsine, jossa on ulottuvat sormenpäät, joiden päissä on painikkeet ja jotka on ohjelmoitu antamaan käyttäjälle ainutlaatuista tärinäpalautetta painetun painikkeen perusteella.

Vaihe 1: Komponentit, joita tarvitaan painikkeen tärinämoottorin asennukseen

Komponentit, joita tarvitaan painikkeen tärinämoottorin asennukseen
Komponentit, joita tarvitaan painikkeen tärinämoottorin asennukseen
  • Arduino Uno
  • Leipälauta
  • Kolikon tärinämoottori
  • Grove -painike
  • Uros-uros-hyppyjohdot (x10)
  • Hyppyjohdin 4 -nastainen
  • Haptic -moottorin kuljettaja
  • Uros-naarasreunaliitin
  • Juotin

Vaihe 2: Kaaviot painikkeesta värähtelevään moottoriin

Kaaviot painikkeesta värähtelevään moottoriin
Kaaviot painikkeesta värähtelevään moottoriin

Edellinen kaavio luotiin Fritzing.org -sivustolla.

Vaihe 3: Painikkeen asetus tärinämoottorin asetuksiin

Vaihe 1: Juotos reunaliitin tärinämoottorin ohjaimeen. Juotos kolikon täryttimen johdot tärinämoottorin ohjaimen liittimiin.

Vaihe 2: Kytke 4 -nastainen hyppyjohto painikkeeseen.

Vaihe 3: Yhdistä yksi hyppyjohdoista ja liitä Arduinon GRD -tappi rivilevyyn.

Vaihe 4: Kytke Arduinon Volt 3.3 -tappi toisella hyppyjohdolla toiselle leipälevyn riville.

Vaihe 5: Nyt liitämme tärinämoottorin ohjaimen Arduinoon. Liitä tärinämoottorin ohjaimen GND -nasta kolmannella hyppyjohdolla samaan leipälevyn riviin kuin Arduinon GRD -tappi. Tee sama toisella VCC (voltti) -johdolla tärymoottorin ohjaimessa, leipälevyn voltiriville.

Vaihe 6: Yhdistä toinen johto liittämällä tärinämoottorin ohjaimen SDA -nasta suoraan Arduinon SDA -nastaan. Toista sama kummankin SCL -nastoilla. Vaihtoehtoisesti voit noudattaa samanlaista lähestymistapaa kuin vaiheessa 5 ja liittää Arduinon SDA- ja SCL -nastat omille riveilleen leipälaudalla hyppyjohtojen kautta. Vedä sitten lanka riviltä, jossa SDA -nasta on kytketty leipälevylle, moottorin ohjaimen SDA -nastaan. Tee sama leipälevyn SCL -riville moottorin ohjaimen SCL -tapille.

Vaihe 7: Nyt lopetamme yhdistämällä painikkeen tärinämoottorin ohjaimeen ja Arduinoon. Kytke GRD toisella hyppyjohdolla kytkeäksesi GRD: n 4 -napaisesta hyppyjohdosta, joka on kytketty painikkeeseen, samaan riviin kuin muut leipälevyn GRD -johdot. Tee sama uudelleen voltilla (VCC).

Vaihe 8: Liitä lopullinen kirjoitus SIG: stä painikkeen hajoamiseen Arduino -nastaan (koodimme vuoksi käytimme tappia 7).

Vaihe 9: Liitä Arduino ja lataa koodi ja katso, miten se toimii!

Vaihe 4: Koodi

Painike-tärinä-moottori. C

/ * Koodi mukautettu osoitteesta https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 */
#sisältää// SparkFun Haptic Motor Driver Library
#sisältää// I2C -kirjasto
SFE_HMD_DRV2605L HMD; // Luo haptinen moottoriajuriobjekti
int -painike = 7; // valitse syöttönappi 7 painikkeelle
int -painikkeen_valo = 0; // muuttuja pin -tilan lukemiseen
voidsetup ()
{
/ * Alusta Haptic Motor Driver Object */
HMD.begin ();
Sarja.alku (9600);
HMD -tila (0); // Sisäinen laukaisimen syöttötila - Toiston käynnistämiseen on käytettävä GO () -toimintoa.
HMD. MotorSelect (0x36); // ERM -moottori, 4x jarrutus, keskisilmukan vahvistus, 1,365x takaisin EMF -vahvistus
HMD. Kirjasto (2); // 1-5 ja 7 ERM-moottoreille, 6 LRA-moottoreille
}
voidloop ()
{
/ * Käynnistä tärinämoottori */
HMD.go ();
button_val = digitalRead (painike);
jos (button_val == HIGH) {
/* Tämä tulostaa kirjaamaan, että painiketta on painettu, käytä virheenkorjaukseen*/
Serial.println ("Painike painettu.");
/ * Aaltomuotokirjastossa on 0-122 erityyppistä aaltoa */
HMD. Waveform (0, 69);}
muu{
/ * Jos painiketta ei paineta, pysäytä tärinämoottori */
HMD.stop ();
}
}

katso rawButton-Vibration-Motor.c, jota isännöi GitHub

Vaihe 5: Video painikkeesta tärinämoottorin käyttöönottoon

Image
Image

Vaihe 6: Käsineen laajennettavan prototyyppi

Prototyyppi hansikas laajennettavissa
Prototyyppi hansikas laajennettavissa
Prototyyppi hansikas laajennettavissa
Prototyyppi hansikas laajennettavissa

Yksi mahdollinen painikkeen käyttö tärinämoottorissa on yllä oleva käsine. Olemme muokanneet halpoja esteettömiä materiaaleja, kuten ruiskuja, tehdäksemme laajennettavia "sormenpäitä". Kiinnitämme grove -painikkeet muokattujen ruiskujen päähän tarranauhalla, leikkasimme reiät käsineen sormenpäihin ja asetimme jokaisen ruiskun reikien läpi. Painikkeiden 4 -napaiset hyppyjohdot on kierretty ruiskujen läpi ja ne ovat riittävän pitkiä, jotta voit pidentää ruiskuja koko pituudeltaan. Arduino ja leipälauta on kiinnitetty tarranauhalla käsineen yläosaan, jolloin painikkeiden johdot voidaan helposti yhdistää pienen raon kautta jokaisen sormenpään pohjassa. Moottorin ohjain on kiinnitetty käsineen alapuolelle aukon avulla tärinämoottorin kiinnittämiseksi käsineen sisäpuolelle. Kun käyttäjällä on käsine kädessä, tärinämoottori istuu käyttäjän ranteen alapuolella. Kun käyttäjä koskettaa pintaa ja painaa yhtä painiketta, moottorin läpi tulee ainutlaatuinen takaisinkytkentävärähtely.

Tällaisen käsineen takana oleva ajatusprosessi olisi antaa kenenkään, joka käyttää sitä, "koskettaa" tavallisilla sormenpäillä pidemmälle jääviä esineitä ja saada palautetta koskettavansa näitä pintoja. Tärinäpalaute muuttuu sen mukaan, mikä sormi koskettaa pintaa, jotta käyttäjä voi tärinäkuvion perusteella kertoa, mikä sormi koskettaa pintaa.

On monia tapoja viedä prototyyppi pidemmälle, kuten sormien laajentaminen tai palautteen muuttaminen kosketettavan pinnan tyypin perusteella. Ihannetapauksessa pidennettävät sormet luodaan 3D -tulostuksen avulla, jolloin teleskooppivaihtoehdot ovat parempia. Painikkeiden sijasta voitaisiin käyttää lämpötila -anturia, jotta voidaan antaa palautetta siitä, kuinka kuuma pinta koskettaa käyttäjää, tai kosteusanturia vastaaviin tarkoituksiin. Voitaisiin toteuttaa tapa tunnistaa, kuinka pitkälle "sormi" on ojennettu, jotta käyttäjä voi tietää, kuinka kaukana kohde, johon he koskettavat. Nämä ovat vain muutamia mahdollisia vaihtoehtoja tämän prototyypin viemiseksi eteenpäin.

Tämä käsine voidaan valmistaa tavallisista materiaaleista helpon tavan laajentaa aistejasi ja luoda palautetta, jonka käyttäjä voi tuntea ja ymmärtää.

Vaihe 7: Koodi useille painikkeille, joilla on ainutlaatuinen tärinä

mutliple_buttons_to_vibmotor.ino

/ * Koodi mukautettu SparkFunista https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide */
#sisältää// SparkFun Haptic Motor Driver Library
#sisältää// I2C -kirjasto
SFE_HMD_DRV2605L HMD; // Luo haptinen moottoriajuriobjekti
int -painike_väli = 7;
int -painike_indeksi = 5; // valitse syöttönappi painikkeelle
int napinrengas = 9;
int -painike_vaaleanpunainen = 3;
voidsetup ()
{
HMD.begin ();
Sarja.alku (9600);
HMD -tila (0); // Sisäinen laukaisimen syöttötila - Toiston käynnistämiseen on käytettävä GO () -toimintoa.
HMD. MotorSelect (0x36); // ERM -moottori, 4x jarrutus, keskisilmukan vahvistus, 1,365x takaisin EMF -vahvistus
HMD. Kirjasto (2); // 1-5 ja 7 ERM-moottoreille, 6 LRA-moottoreille
}
voidloop ()
{
HMD.go (); // käynnistä tärinämoottori
/ * Tarkista, mitä painiketta painetaan, ja anna aaltomuoto 0-122 */
if (digitalRead (button_middle) == HIGH) {
Serial.println ("Painike painettu.");
HMD. Waveform (0, 112);}
elseif (digitalRead (button_index) == HIGH) {
HMD. Aaltomuoto (0, 20);
}
elseif (digitalRead (button_ring) == HIGH) {
HMD. Aaltomuoto (0, 80);
}
elseif (digitalRead (button_pinky) == HIGH) {
HMD. Aaltomuoto (0, 100);
}
/ * Jos mitään painiketta ei paineta, lopeta */
muu{
HMD.stop ();
}
}

katso rawmutliple_buttons_to_vibmotor.ino, jota isännöi GitHub ❤

Suositeltava: