Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Robotstøvsuger garasje


cogliostrio

Anbefalte innlegg

Introduksjon

Denne guiden gir ikke alle detaljer, men prøver å gi generelle retningslinjer som kan forenkle prosessen ved å bygge noe tilsvarende. 

 

 

Verktøy

 

 

Deleliste

 

 

Bygge rammen

image.png.25e6c4cc3c91ee7f3d6c3997f5d7e9d7.png

Mockup av rammen.

Jeg bygget rammen min av terrassebord jeg hadde liggende (28x120), men akkurat hva det er så lenge det passer underkjøkkenbenken er ikke så viktig. Bredden innvendig bør være støvsuger + rundt 3cm klaring på hver side av den innvendig (husk bredde på aktuator og klaring fra denne mot ramme kan være rundt 4cm). Dybden på rammen kan være noe kortere enn totaldybde, da det kan justeres med overliggeren som døra festes i. Rundt 5mm kan være greit, men dette må vurderes

individuelt. Senterpunkt i rammen vil da være mellom den ene siden, og mot aktuator på andre siden. Jeg kuttet også hull i bakkant til docking, for å få litt ekstra dybde.

 

image.png.4c235241f13e3fe22013c2cdd676c26c.png

Jeg boret også hull til en guide-pinne som sitter i veggen (type treplugg som kommer med flatpakkede skap o.l.). Dette for å ha et fast punkt å jobbe fra (måtte ha rammen ut flere ganger for å måle).

Toppen av overliggeren bør være så nært undersiden av benk som mulig, for at dør ikke skal komme i konflikt med rammen under åpning. Jeg endte opp med å shimme den opp fra rammen, for å redusere avstanden mest mulig.

 

 

Hengsler

image.png.7001c9377b321dcc771f6fe84c56e7e8.png

Bor hull til hengsle ved bruk av mal i dør og overligger (holdes fast med hurtigtvinge). Modifiser hengsle ved å ta bort fjær, slik at den glir uten motstand. Bor ut aksling den er festet på ihht bilde.

 

 

Aktuator

image.png.d2ef745a18159893fdf6ff92234b1553.png

Aktuator festes med noe klaring mot gulv, horisontalt fra dør til ramme. Klaring mellom dør og ramme er avstanden til hengsle, og må tas med i beregningen når overligger monteres mtp dybde under benk. Rundt 4-5mm opp fra gulvet burde være en god plassering.

 

image.png.25f3a38a11d9f6809e2a1ba899b89ee9.png

Forsenket M6 bolt med skive fra utside, slik at envelopen ikke er større enn rammen.

 

image.png.c62b5b726ff779d926a5b695d62fdfc0.png

Bolten er så festet med skive og låsemutter på innsiden, og så shimmet ut til riktig avstand for montering av aktuator.

 

image.png.e1bcccbf96594cc7d7fa9ae9ddd38be5.png

Brakett med M6 bolt, merk ingen mutter. Dette er for mekanisk override, ved at sokkel ved siden av ramme kan tas av, og bold fjernes ved funksjonssvikt. Legg merke til avrundet hjørne i bakgrunn for tilgang til bolt fra utsiden. Bolt er kuttet i lengden, slik at den skal være enklest mulig å få ut.

 

 

Kutte sokkellist

image.png.e4358f807cb0cb65f3c958431ede419c.png

For å kutte sokkellisten lagde jeg først et dypt kutt med en tapetkniv på fronten (bruk linjal/vinkel med hurtigtvinge for å unngå feilskjær), deretter brukt jeg en gjærsag med dybdestopp for å kutte resten fra baksiden. Dette sørger for kutte bort minst mulig materiale, for best mulig sammenstilling.

 

image.png.5b03cf65ded6945d100505d6e0918b17.png

 

 

Kode

// constants won't change. They're used here to set pin numbers:
const int pushPin = 2;       // D4 -> switch, motor
const int overRidePin = 14;  // D5 -> switch, override
const int openPin = 16;      // D0 -> 3, BTS7960
const int shutPin = 15;      // D8 -> 4, BTS7960

// Variables will change:
int openState = LOW;       // 
int shutState = HIGH;      // 
int pushState;             // the current reading from the input pin
int lastPushState = LOW;   // the previous reading from the input pin

// the following variables are unsigned longs because the time, measured in
// milliseconds, will quickly become a bigger number than can be stored in an int.
unsigned long lastDebounceTime = 0;  // the last time the output pin was toggled
unsigned long debounceDelay = 100;   // (50) the debounce time; increase if the output flickers

void setup() {
  Serial.begin(115200);
  Serial.println("setup");

  pinMode(pushPin, INPUT);
  pinMode(overRidePin, INPUT);
  pinMode(openPin, OUTPUT);
  pinMode(shutPin, OUTPUT);

  // set initial state
  digitalWrite(openPin, openState);
  digitalWrite(shutPin, shutState);
}

void loop() {
  // read the state of the switch into a local variable:
  int reading = digitalRead(pushPin);

  // check to see if you just pressed the button
  // (i.e. the input went from LOW to HIGH), and you've waited long enough
  // since the last press to ignore any noise:

  // If the switch changed, due to noise or pressing:
  if (reading != lastPushState) {
    // reset the debouncing timer
    lastDebounceTime = millis();
  }

  if ((millis() - lastDebounceTime) > debounceDelay) {
    // whatever the reading is at, it's been there for longer than the debounce
    // delay, so take it as the actual current state:

    // if the button state has changed:
    if (reading != pushState) {
      pushState = reading;

      // only toggle the door if the new button state is HIGH
      if (pushState == HIGH) {
        // open gate:
        digitalWrite(openPin, LOW);
        digitalWrite(shutPin, HIGH);
        Serial.println("shut gate");
      } 
      else {
        // shut gate:
        digitalWrite(shutPin, LOW);
        digitalWrite(openPin, HIGH);
        Serial.println("shut gate");
      }
    }
  }

  // save the reading. Next time through the loop, it'll be the lastButtonState:
  lastPushState = reading;
}

 

 

Elektronikk

 

Koblingsskjema til elektronikk

image.thumb.png.3e202cd6e133d6b639f5feb9713e047b.png

Koble sammen og last opp kode til D1 mini. Bryter er festet med ståltråd i monteringsbånd, for å enkelt kunne justere denne til støvsugerpossisjon når den står i docken.

 

 

Etterord

Tatt i betraktning at det begynner å bli ganske vanlig med store dockingstasjoner for støvsugere med automatisk tømming og fylling av vann. Kan det være en ide å lage en slik garasje der man har et høyskap, slik at man kan få plass til å hente ut disse dunkene på en enkel måte.

Koden som styrer døra er ganske enkel, så om det skulle dukke opp en oppgraderinger med MQTT autodiscovery, ville det vært veldig praktisk 😉.

 

 

Vedlegg:

-          Holder til ESP, stepdown og motorstyring

-          Brakett til dør

-          Mal til hengsle-skrog

-          Mal til hengsle-dør

Hengslemal skrog.stl Hengslemal dør.stl Motor festbrakett.stl Holder.stl

 

 

edit: oppdatert aktuator spec

edit2: oppdatert koblingsskjema

Endret av cogliostrio
  • Like 3
  • Thanks 1
Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.