Sisällysluettelo:

Askel Pomodoro -ajastin: 3 vaihetta (kuvilla)
Askel Pomodoro -ajastin: 3 vaihetta (kuvilla)

Video: Askel Pomodoro -ajastin: 3 vaihetta (kuvilla)

Video: Askel Pomodoro -ajastin: 3 vaihetta (kuvilla)
Video: Джентльмены удачи (FullHD, комедия, реж. Александр Серый, 1971 г.) 2024, Marraskuu
Anonim
Image
Image
Vaihe 1: Juotos- ja liitäntäpiiri säiliön ulkopuolella
Vaihe 1: Juotos- ja liitäntäpiiri säiliön ulkopuolella

Stepper Pomodoro on pöytäajastin, joka auttaa päivittäisten tehtävien luettelon hallinnassa jakamalla jokaisen työjakson 30 minuutin jaksoiksi. Toisin kuin tavallinen Pomodoro -ajastin, se ei kuitenkaan tee sinua ahdistuneeksi näyttämällä jäljellä oleva aika. Sen sijaan se näyttää ajan, joka suunnilleen kulkee kolmesta valitsimesta. Jos et näytä tarkkaa aikaa, voit keskittyä käsillä olevaan tehtävään sen sijaan, että tarkistat jatkuvasti jäljellä olevaa aikaa. Tämä Pomodoro on täydellinen niille, jotka tarvitsevat kevyttä ja huomaamatonta rakennetta tehtäviensä hallintaan.

Työkalut

• Juotosrauta

• Langanpoistimet

• Laserleikkuri (tai hiomakone sen mukaan, miten haluat luoda ajastimen valitsimet)

• Pora (rei'itin porakoneella riittävän suuria reikiä soittimille)

Materiaalit

• 1 Arduino Uno

• 1 puolikokoinen leipälauta

• 3 H -siltaa (käytin DRV8833 -moottoria, moottorin suojakilpi säästää aikaa ja päänsärkyä)

• 3 askelmoottoria (käytin NEMA 17 -portaita)

• 1 painike

• 1 220-1K ohmin vastus (mikä tahansa alueella on hyvä)

• Verkko-/tasavirtasovitin (käytin 12V, luultavasti liian suuri tälle määrälle askelia)

• Virranjakaja

• USB A-B -johto

• Leipälevyn johdot

• Juotos

• Ajastimen säiliön materiaalit

• Akryyli soittimille

• Naulat tai metallitapit toimivat ajastimen paikallaan

Vaihe 1: Vaihe 1: Juotos- ja liitäntäpiiri säiliön ulkopuolella

Tässä vaiheessa aloitin juottamalla yhteen kaikki H -sillat (jos ostat moottorikilven, sinun ei tarvitse juottaa näitä. Kun sinulla on H -silta jokaiselle askelmalle, voit tarkistaa, miten askelmat on kytketty.

NEMA 17: t tunnetaan bipolaarisina askelmoottoreina, mikä tarkoittaa, että niissä on kaksi (eikä yhtä) kelajoukkoa moottorin sisällä, jotka muuttavat napaisuutta moottorin tarkan liikkeen mahdollistamiseksi. Bipolaarisissa askelmissa on yleensä neljä johtoa ja Polar -steppereissä yleensä kuusi lankaa, mikä monimutkaistaa ohjeita verkossa hieman. Voit kuitenkin liittää monimetrin kahteen johtoon ja katso, onko ne kytketty vai eivät. NEMA 17 -askelinten vaijerijärjestys on PUNAINEN, KELTAINEN, HARMAA, VIHREÄ värijärjestys. Punainen ja harmaa ovat ensimmäinen napapari ja keltainen ja vihreä toinen napapari. Jos jossakin vaiheessa askelin alkaa nykimään sen sijaan, että se suorittaisi odotettua liikettä, on todennäköistä, että johdot eivät jotenkin ole oikein polarisoituneet kaksoiskappaleeseensa tai yksi on irrotettu. Jokainen askelmoottori ohjataan neljän lähtötapin kautta, jotka yhdistetään DRV8833 H -siltoihin. DRV8833: n tulon johdotusjärjestys on: IN1, IN2, teho, maadoitus, IN3, IN4. Tulostustarkoituksiin NEMA kytkeytyy vain kuuden nastan keskimmäiseen neljään seuraavassa järjestyksessä: PUNAINEN, HARMAA, KELTAINEN, VIHREÄ. Nyt kytketään virta. Minulla on NEMA -numerot digitaalisissa porteissa 2–13.

Tämän virran hankkimiseksi ostin 12 V: n AC/DC -sovittimen jakajalla, jotta voisin käyttää sekä Arduinoa että kaikkia askelmia. VAROITUS: Älä kytke virta- ja maadoitusjohtojasi Arduinosta, joka jo saa virtaa portista, leipälevyyn, joka saa suoraa virtaa AC/DC -verkosta. Se paistaa lautasi. Seinään kytketyn 12 V: n sovittimen jakajan toinen osa meni suoraan Arduinon porttiin ja toinen leipälevyn positiiviseen ja negatiiviseen kohtaan.

Lopuksi on aika kytkeä painike. Painikkeen toinen puoli tarvitsee sekä virtaa (vastus kytketty sisään) että ulostulotapin juotettuna (tämä voidaan tehdä myös leipälevyltä). Toinen tappi on maamme. Nämä kolme johtoa on kytkettävä: Virta vastuksella 5 V: iin, lähtö A0: een ja maadoitettu kaikki Arduino Uno -levyssä.

Täältä meidän pitäisi pystyä hallitsemaan askelmia käyttämällä tätä perusaskelkoestetunnusta, joka löytyy täältä. Tämä selitys Arduino.cc -sivustossa tekee myös perusteellisemman selityksen bi/unipolaarisista askelmista, jos tarvitset sitä. Seuraavaksi päästään Pomodoron koodiin!

Vaihe 2: Vaihe 2: Lataa koodi ja säädä se tarpeidesi mukaan

Vaihe 2: Lataa koodi ja säädä se tarpeidesi mukaan
Vaihe 2: Lataa koodi ja säädä se tarpeidesi mukaan

Alla on Pomodoro -painikkeeni -painike, jotta voit mukauttaa sen asetukseesi seuraavasti:

1. Aseta kuinka monta askelta kierrosta kohden henkilökohtaisella askelmallillasi on (NEMA 17: llä on 200 ja se on lueteltu vakio -kokonaisluvussa, jota kutsutaan askeliksiPerRevolution).

2. Aseta vakion kokonaislukuisen soittajan painikkeen PIN -koodi mihin painike syöttää.

3. Määritä, mistä arduino -laitteesi pitäisi lähettää komentoja steppereille (nämä osat voivat vaihdella eniten H -sillatyypeittäin, koska monilla on erilaisia kirjastoja, joita he käyttävät).

4. Aseta askelnopeus.setSpeed -kierrosluvuissa (minulla on asetettu 1 rpm kääntämällä myötäpäivään ja 30 rpm kääntämällä vastapäivään).

5. Määritä kuinka monta kertaa haluat jokaisen askelman kääntyvän ennen kuin se jatkaa eteenpäin (askelmat laskevat kymmenen minuuttia, joten ne pyörivät kymmenen kertaa 1 kierrosta minuutissa).

6 Aseta aika, jonka haluat sen kääntyvän taaksepäin.

#sisältää

const int stepsPerRevolution = 200; // asetetaan vakio kuinka monta vaihetta on askelmoottorieni jokaisessa täydessä kierroksessa

const int -painikePin = A0; // painiketoiminnon asetusvakio

Stepper firstStepper (stepsPerRevolution, 2, 3, 4, 5); // aseta askelkirjasto tietyille nastoille

Stepper secondStepper (stepsPerRevolution, 6, 7, 8, 9); Askel kolmas askel (stepsPerRevolution, 10, 11, 12, 13); Stepper firstStepperBack (stepsPerRevolution, 2, 3, 4, 5); // alustaa askelkirjasto uudelleen näissä nastoissa, jotta rpm voidaan nollata, kun hälytetään, että aika on päättynyt Stepper secondStepperBack (stepsPerRevolution, 6, 7, 8, 9); Askel kolmasStepperBack (stepsPerRevolution, 10, 11, 12, 13);

int minutesCounter = 0; // int askeleiden täysi kierros

int timerState = LOW; // pomodoro -ajastimen nykyinen tila (HIGH = päällä, LOW = pois/nollaus) int buttonState; // nykyinen lukema tulonapista int lastButtonState = HIGH; // edellinen lukema tulonapista

// seuraavat muuttujat ovat merkitsemättömiä pitkiä, koska aika millisekunteina mitattuna

// tulee nopeasti isompi luku kuin int. unsigned long lastDebounceTime = 0; // viimeksi kun tulostusnasta vaihdettiin unsigned long debounceDelay = 50; // palautusaika; kasvaa, jos lähtö vilkkuu

void setup () {

pinMode (buttonPin, INPUT_PULLUP); // aseta painikkeen vakio tuloksi

firstStepper.setSpeed (1); // aseta nopeudeksi 1 rpm 10 minuutin laskemista varten stepper secondStepper.setSpeed (1); kolmasStepper.setSpeed (1); firstStepperBack.setSpeed (30); // aseta nopeudeksi 30 rpm varoittaaksesi, että aika on kulunut sen jälkeen, kun Pomodoro on suorittanut secondStepperBack.setSpeed (30); kolmasStepperBack.setSpeed (30);

Sarja.alku (9600); // käynnistä sarjamonitori 9600 baudinopeudella

}

void loop () {

// lukee kytkimen tilan paikalliseksi muuttujaksi: int reading = digitalRead (buttonPin);

// tarkista, oletko juuri painanut painiketta

// (eli syöttö muuttui LOW: sta HIGH: ksi), ja olet odottanut // tarpeeksi kauan viimeisestä painalluksesta lähtien, jotta voit sivuuttaa melun:

// Jos kytkin on vaihdettu melun tai painamisen vuoksi:

if (lukeminen! = lastButtonState) {// nollaa debouncing -ajastin lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// olipa lukema mikä tahansa, se on ollut siellä pidempään // kuin poistumisviive, joten ota se todelliseksi nykyiseksi tilaksi:

// jos painikkeen tila on muuttunut:

if (lukeminen! = buttonState) {buttonState = lukeminen;

// vaihda ajastimen aktivointi vain, jos uuden painikkeen tila osoittaa, että sitä on painettu

// käynnistä painamalla kerran, sammuta painamalla uudelleen, jos (buttonState == LOW) {timerState =! timerState; Serial.print ("Ajastimen tila on"); Serial.println (timerState); }}}

if (timerState == KORKEA) {

Serial.println ("Pomodoro -ajastin on alkanut"); if (minutesCounter <11) {// jos nykyinen toinen arvo on eri kuin edellinen, firstStepper.step (stepsPerRevolution); // käännä askeltaa 200 askelta/1 kierros minuuttiaCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (11 <= minutesCounter && minutesCounter <21) {// jos nykyinen toinen arvo on eri kuin edellinen, niin secondStepper.step (stepsPerRevolution); // käännä askeltaa 200 askelta/1 kierros minuuttiaCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (21 <= minutesCounter && minutesCounter <31) {// jos nykyinen toinen arvo on eri kuin edellinen, niin kolmasStepper.step (stepsPerRevolution); // käännä askeltaa 200 askelta/1 kierros minuuttiaCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }

if (31 <= minutesCounter && minutesCounter <1031) {// jos nykyinen toinen arvo on eri kuin edellinen, firstStepperBack.step (-1); // käännä askelta taaksepäin 1 askel peräkkäin, jotta kaikki näyttävät toimivan samanaikaisesti secondStepperBack.step (-1); kolmasStepperBack.step (-1); minutesCounter ++; Serial.print ("minutesCounter is"); Serial.println (minutesCounter); }} else {Serial.println ("Pomodoro -ajastin on pois päältä"); } // tallenna lukema. Seuraavan kerran silmukan läpi // se on lastButtonState: lastButtonState = lukeminen; }

Vaihe 3: Vaihe 3: Sisällytä Stepperit ja Arduino, jos haluat

Vaihe 3: Sisällytä Stepperit ja Arduino, jos haluat
Vaihe 3: Sisällytä Stepperit ja Arduino, jos haluat
Vaihe 3: Sisällytä Stepperit ja Arduino, jos haluat
Vaihe 3: Sisällytä Stepperit ja Arduino, jos haluat
Vaihe 3: Sisällytä Stepperit ja Arduino, jos haluat
Vaihe 3: Sisällytä Stepperit ja Arduino, jos haluat

Päätin luoda kellolleni rinnakkaismuotoisen muodon. Tämä muoto ja punaisen tammen materiaalivalinnat saivat inspiraationsa vuosisadan puolivälin moderneista huonekaluista. Yksi osa, jonka kanssa minulla oli eniten vaikeuksia, oli askelmoottorien asentaminen kellotaulukoiden läpi niiden aukkojen kautta.

Suositeltava: