Kaip padaryti „AutoLacing“ avalynę naudojant „Arduino“?

Šiuolaikinėje eroje mokslininkai ir inžinieriai stengiasi, kad viskas būtų automatizuota. Tai reiškia, kad viskas veiks savaime be jokių žmogaus pastangų. Visuomenėje buvo nustatyta labai dažna problema, kad kai kuriems žmonėms sunku susirišti batų raištelius patiems. Tarp šių žmonių tam tikru mastu yra neįgaliųjų, nugaros skausmų, vaikų ir aklųjų. Taigi, sprendimas turi būti padarytas taip, kad šie žmonės nemanytų, kad tai problema.



Nuotrauka paimta iš Instructables

Šiame projekte rengsime „Automatic Lacing“ šou, kuris be jokių žmogaus pastangų automatiškai susies jos raištelius. Tai padarys mikrokontrolerio plokštė, variklio skydo jutiklis ir servovariklis, kai tik pėda bus įdėta į bato vidų.

Kaip automatiškai surengti savo pasirodymą naudojant „Arduino“?

Dabar, kai žinome projekto santrauką, pradėkime rinkti daugiau informacijos ir atlikite procedūrą, kaip pagaminti šį „AutoLace“ batą naudojant „Arduino“.



1 veiksmas: rinkite komponentus

Geriausias būdas pradėti bet kokį projektą yra sudaryti komponentų sąrašą ir atlikti trumpą šių komponentų tyrimą, nes niekas nenorės laikytis projekto vidurio vien dėl trūkstamo komponento. Toliau pateikiamas komponentų, kuriuos ketiname naudoti šiame projekte, sąrašas:



  • „Arduino uno“
  • Variklio skydas
  • Servo variklis
  • Jėga
  • LED
  • 1k omų rezistorius
  • Batas
  • Metalinė juosta
  • Plastikiniai užtrauktukai
  • 1/8
  • Šuolių laidai
  • Baterija

2 žingsnis: komponentų studijavimas

Dabar, kai žinome savo projekto santrauką ir turime išsamų visų komponentų sąrašą, eikime žingsniu į priekį ir atlikime trumpą komponentų, kuriuos ketiname naudoti, tyrimą.

Seeeduino v4.2 yra viena iš geriausių „Arduino“ suderinamų plokščių pasaulyje, paremta mikrovaldikliu „Atmega 328 MCU“. nes jis yra lengvai naudojamas, stabilesnis ir atrodo geriau nei daugelis kitų plokščių. Jo pagrindas yra „Arduino“ įkrovos programa. jis turi ATMEGA16U2 kaip UART – USB keitiklį, nes iš kurio jis gali būti naudojamas kaip FTDI lustas. jis prijungtas prie kompiuterio naudojant mikro USB laidą, kuris paprastai vadinamas „Android“ kabeliu. Plokštės maitinimui taip pat galima naudoti nuolatinės srovės lizdą. įėjimo galia turi būti nuo 7 V iki 15 V.

Seeeduino lenta



„Arduino“ variklio skydas leidžia jums lengvai valdyti variklio kryptį ir greitį naudojant „Arduino“. Leisdami jums tiesiog kreiptis į „Arduino“ kaiščius, galite lengvai įvažiuoti bet kokį variklį į savo įmonę. Tai papildomai suteikia galimybę valdyti variklį su skirtingu maitinimo šaltiniu iki 12v. Geriausia, kad skydą labai lengva rasti. Dėl visų šių priežasčių „Arduino Motor Shield“ yra puikus dalykas, kurį turite turėti savo arsenale, kad galėtumėte greitai kurti prototipus ir eksperimentuoti.

Variklio skydas

Jėgos jutiklių rezistoriai (FSR) yra labai paprasti ir lengvai naudojami slėgio jutikliai. FSR kliūtis priklauso nuo svorio, kuris taikomas aptinkančiai teritorijai. Kuo didesnis svoris, tuo mažesnė opozicija. Obstrukcijos diapazonas yra gana didžiulis: nuo> 10 MΩ (be svorio) iki ~ 200 Ω (maks. Svoris). Dauguma FSR gali aptikti galią nuo 100 g iki 10 kg. FSR susideda iš dviejų sluoksnių ir tarpiklio klijų. Laiduojantys sluoksniai yra izoliuoti mažu oro tarpu, kai nėra taikomas svoris. Viename iš filmų yra du pėdsakai, einantys nuo uodegos iki aptikimo srities (apvalios dalies). Šie pėdsakai yra austi kartu, tačiau nesiliečia. Kita plėvelė padengta pagrindiniu rašalu. Paspaudus jutiklį, rašalas sutrumpina du pėdsakus kartu su priešingumu, kuris priklauso nuo svorio.

Jėgos jutiklis

Į Servo variklis yra sukamasis arba linijinis pavaras, kurį galima valdyti ir judėti tiksliai. Šie varikliai skiriasi nuo nuolatinės srovės variklių. Šie varikliai leidžia tiksliai valdyti kampinį arba sukamąjį judesį. Šis variklis yra sujungtas su jutikliu, kuris siunčia grįžtamąjį ryšį apie jo judėjimą.

Servo Moto

3 žingsnis: darbo principas

Šio projekto veikimo principas yra labai paprastas. Jėgos jutiklis bus naudojamas nustatyti, ar pėda dedama į pasirodymą, ar ne. Aptikęs koją, jis nusiųs signalą į „Arduino“ lentą, kuri „Arduino“ variklio skydo pagalba judins servo variklį. Šis servo variklis judės taip, kad vienu metu ištrauks visus nėrinius. Taigi automatiškai surišami visi bato raišteliai.

4 žingsnis: komponentų surinkimas

Dabar, kai žinome pagrindinę šio projekto idėją ir veikimo principą, eikime žingsniu į priekį ir pradėkime viską surinkti, kad padarytume laidą, kuri savaime vyks. Norėdami pagaminti galutinį produktą, atlikite toliau nurodytus veiksmus:

  1. Visų pirma nukirpkite mažą metalinę plokštelę taip, kad ji būtų pritvirtinta laidos gale. Naudokite sintetinę medžiagą, kad ji tvirtėtų visam laikui ir neatsipalaiduotų. Įsitikinkite, kad palikote tarpą tarp metalinės plokštės ir laidos, nes mes praleisime keletą kabelių raiščių prieš tą spragą.
  2. Dabar paimkite du servovariklius ir karštais klijais pritvirtinkite juos prie metalinės plokštės. Norėdami, kad tai būtų visam laikui užfiksuota, naudokite aplink juos užtrauktukus, kad vėliau šie servovarikliai nejudėtų. Kai servo varikliai įsibėgės, nukirpkite likusį papildomą laidą.
  3. Dabar pritvirtinkite akumuliatoriaus dėklą po varikliais, kad jo maitinimo jungiklis būtų į išorę.
  4. Dabar pritvirtinkite „Arduino“ plokštę ant variklių. Prieš sujungiant variklio skydą su „Arduino“, į grandinę reikia įtraukti keletą dalykų.
  5. Paimkite šviesos diodą ir lituokite rezistorių į jo teigiamą koją, o trumpą vielos ilgį - lituokite prie neigiamos kojos ir kitos rezistoriaus kojos. Tada prijunkite šį mazgą prie „Arduino“ ir prijunkite jį prie vieno iš nenaudojamų batų raištelių lizdų.
  6. Dabar paimkite a Jėgos jutiklis ir padėkite jį į batus, kur atsirems kulnas. nerekomenduojama lituoti jėgos jutiklio kaiščių, nes lituoklio šiluma gali ištirpdyti jutiklio plastiką. Taigi geriau, jei jį klijuosite arba lipnia juosta.
  7. Galiausiai naudokitės užtrauktuku, kad visus nėrinius pririštumėte prie servo variklio, kad variklis pasisukdamas trauktų visus nėrinius vienu metu.

Įsitikinkite, kad teigiamas šviesos diodo laidas yra prijungtas prie „Arduino“ 2 kaiščio. Jėgos jutiklio Vcc ir įžeminimo kaištis bus prijungti prie „Arduino“ 5 V ir įžeminimo, o jėgos jutiklio IN kaištis bus prijungtas prie „Arduino“ plokštės A0 kaiščio. Galiausiai atsargiai prijunkite servovariklio kaiščius prie variklio skydo, kad nepadarytumėte neteisingo ryšio.

5 žingsnis: darbo pradžia naudojant „Arduino“

Jei anksčiau nesate susipažinę su „Arduino IDE“, nesijaudinkite, nes žemiau galite pamatyti aiškius kodo įrašymo mikrovaldiklio valdyboje veiksmus, naudodami „Arduino IDE“. Naujausią „Arduino IDE“ versiją galite atsisiųsti iš čia ir atlikite toliau nurodytus veiksmus:

  1. Kai „Arduino“ plokštė prijungta prie jūsų kompiuterio, atidarykite „Control panel“ ir spustelėkite „Hardware and Sound“. Tada spustelėkite „Įrenginiai ir spausdintuvai“. Raskite prievado, prie kurio prijungta jūsų „Arduino“ plokštė, pavadinimą. Mano atveju tai yra „COM14“, bet jūsų kompiuteryje jis gali skirtis.

    Rasti uostą

  2. Norėdami naudoti „Servo Motor“, turėsime įtraukti biblioteką. Biblioteka pridėta žemiau atsisiuntimo nuorodoje kartu su kodu. Eiti į Eskizas> Įtraukti biblioteką> Pridėti .ZIP biblioteką.

    Įtraukti biblioteką

  3. Dabar atidarykite „Arduino IDE“. Iš įrankių nustatykite „Arduino“ lentą į „Arduino“ / „Genuino UNO“.

    Nustatymo lenta

  4. Tame pačiame meniu Įrankis nustatykite prievado numerį, kurį matėte valdymo skydelyje.

    Uosto nustatymas

  5. Atsisiųskite žemiau pridėtą kodą ir nukopijuokite jį į savo IDE. Norėdami įkelti kodą, spustelėkite mygtuką įkelti.

    Įkelti

Galite atsisiųsti kodą iki paspaudę čia.

6 žingsnis: kodas

Kodas yra gana gerai komentuojamas ir savaime suprantamas. Tačiau vis tiek kodas trumpai paaiškinamas žemiau.

1. Pradžioje įtraukiama speciali biblioteka, kad servovariklis būtų integruotas su mikrovaldiklio plokšte ir per jį būtų užprogramuotas. Sukurti du objektai, skirti naudoti su servo varikliu. inicializuojami kai kurie kaiščiai arba „Arduino“, kurie bus prijungti prie variklio tvarkyklės, taip pat deklaruojami kai kurie kintamieji, kurie išsaugos kai kurias laikinas reikšmes, kurios vėliau bus naudojamos pagrindinėje programoje.

#include // įtraukti biblioteką į sąsają su servo varikliu su mikrovaldiklio lenta „Servo myservo“; // sukuria servo objec 1 Servo myservo2; // sukurti servo objektą 2 int forcePin = 0; // analoginis kaištis 0 prijungtas prie jėgos jutiklio int ledPin = 2; // skaitmeninis kaištis 2 prijungtas prie LED int jungiklioPin = 19; // nustato atrakinimo jungiklį į analoginį kaištį 5 int valF; // jėgos jutiklio vertė int valS; // jungiklio int thresHold = 500 vertė; // apibrėžia jėgos jutiklio slėgio slenkstį int servoUnlock = 0; // pagrindinį servo serverį nustato į neutralią neužrišamą padėtį (0 laipsnių) int servoLock = 180; // nustato pagrindinį servo įrišamą padėtį (180 laipsnių) int servoUnlock2 = 180; // nustatomas pagalbinis servo serveris į neutralią neužrištą padėtį (0 laipsnių) int servoLock2 = 0; // nustatomas pagalbinis servo serveris į raištelinę padėtį (180 laipsnių)

2. negaliojanti sąranka () yra funkcija, veikianti tik vieną kartą paleidus mikrovaldiklį arba paspaudus įjungimo mygtuką. Šioje funkcijoje „Arduino“ kaiščiai inicijuojami, kad būtų naudojami kaip įvestis arba išvestis. Objektai, kurie anksčiau buvo sukurti servovarikliui, naudojami servovarikliui pritvirtinti prie konkretaus „Arduino“ plokštės kaiščio, o servo serveris perkeliamas į pradinę neužrišamą būklę. Šioje funkcijoje taip pat nustatytas perdavimo greitis. „Baud Rate“ - tai greitis bitais per sekundę, kuriuo mikrovaldiklis bendrauja su prijungtais išoriniais įrenginiais.

void setup () {Serial.begin // mikrovaldiklio pinMode (ledPin, OUTPUT) perdavimo greičio nustatymas; // skaitmeninis kaištis 2 yra išvestas LED pinMode (switchPin, INPUT); // analoginis kaištis 5 yra jungiklio myservo.attach (9) įvestis; // pritvirtina servos prie kaiščių 9 myservo2.attach (10); // pritvirtina servos prie kaiščių 10 myservo.write (servoUnlock); // perkelkite servo 1 į neraguotas pozicijas myservo2.write (servoUnlock2); // 2 servo perkėlimas į neužrištas pozicijas}

3. tuščia kilpa () yra funkcija, kuri kartojasi cikle. Pirma, jėgos jutiklis nuskaito analoginę vertę. Tada jis laukia, kol jėgos jutiklio vertė praeis ribinę vertę. Jis lauks, kol koja visiškai įsitaisys savo vietoje, ir abu servo serverius nustatys į fiksavimo padėtį. Paspaudus jungiklius, servo nustatomas atrakinimas ir laukia, kol šviesos diodas mirksi septynis kartus.

void loop () {valF = analogRead (forcePin); // nuskaityta jėgos jutiklio vertė valS = digitalRead (switchPin); // perskaityti jungiklio vertę, jei (valF> = thresHold) {// laukia, kol jėgos jutiklis bus lygus arba praeis slėgio slenkstis, tada: delay (1000); // laukia, kol pėda įsitvirtins vietoje batelyje myservo2.write (servoLock2); // nustato pagalbinį servo į užrakintos padėties vėlavimą (1000); // laukia vieną sekundę myservo.write (servoLock); // nustato pagrindinį servo į užrakintos padėties vėlavimą (1000); // laukia viena sekundė digitalWrite (ledPin, HIGH); // įjungia šviesos diodą, kol atrakinta servo. Pašalinkite šią liniją, kad sutaupytumėte baterijos veikimo laiką. } if (valS == HIGH) {// laukia, kol bus paspaustas jungiklis, tada: myservo2.write (servoUnlock2); // atrakina pagalbinio servo uždelsimą (1000); // laukia dvi sekundes myservo.write (servoUnlock); // atrakina pagrindinį servo uždelsimą (500); // palauk, tada mirksi LED 7 kartus digitalWrite (ledPin, LOW); vėlavimas (200); „digitalWrite“ („ledPin“, HIGH); vėlavimas (200); „digitalWrite“ („ledPin“, LOW); vėlavimas (200); „digitalWrite“ („ledPin“, HIGH); vėlavimas (200); „digitalWrite“ („ledPin“, LOW); vėlavimas (200); „digitalWrite“ („ledPin“, HIGH); vėlavimas (200); „digitalWrite“ („ledPin“, LOW); vėlavimas (200); „digitalWrite“ („ledPin“, HIGH); vėlavimas (200); „digitalWrite“ („ledPin“, LOW); vėlavimas (200); „digitalWrite“ („ledPin“, HIGH); vėlavimas (200); „digitalWrite“ („ledPin“, LOW); vėlavimas (200); „digitalWrite“ („ledPin“, HIGH); vėlavimas (200); „digitalWrite“ („ledPin“, LOW); vėlavimas (200); „digitalWrite“ („ledPin“, HIGH); vėlavimas (200); „digitalWrite“ („ledPin“, LOW); // išjungia LED delsą (1000); }}

Taigi tai buvo visa procedūra, kuriant laidą, kuri automatiškai susieja savo raištelius servovariklio, mikrovaldiklio ir variklio skydo pagalba. Dabar, kai žinote visą šią procedūrą, mėgaukitės „AutoLacing Show“ rengimu namuose.