SCAT-A

Ανθρώπινες κατασκευές, διάφορα χόμπυ, έργα - do it yourself, είδη μοντελισμού.
Άβαταρ μέλους
omg kai 3 lol
Δημοσιεύσεις: 5032
Εγγραφή: 03 Απρ 2018, 14:03

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από omg kai 3 lol » 11 Μαρ 2024, 07:16

enaon έγραψε:
10 Μαρ 2024, 13:04
ναι Ευρώπη μονο απο το https://www.robotshop.com/ νομίζω για επίσημα οι γνωστές μάρκες, το litter robot έχει 900 ευρώ, δεν είναι απλά τσιμπημένο, τα ηλεκτρονικά του είναι πιο φθηνά από αυτά που έβαλα. Αλλα δεν το βλέπω σύντομα να πέφτουν κατω απο 100.

το τεμυ βεβαια δεν μπορεί να τσιμπήσει παραγωγή, ένα ιρλανδικό σίτε με αποθήκες είναι, αν εννοείς το αλιμπαμπα εχει καμια 50αρια μοντέλα, όλα πανάκριβα και παιχνίδια από άποψη μοτέρ/ηλεκτρονικά νομίζω.

το Temu το ανεφερα τυχαια θα βρει μια φθηνη noname γραμμη παραγωγης και θα πουλαει αβερτα το ιδιο και το Alibaba, AlliExpress κλπ. κι εγω σε 2-3 χρονια βλεπω να πεφτουν στα 150-200 ευρω απο τα +500 που ειναι τωρα

Άβαταρ μέλους
enaon
Δημοσιεύσεις: 22650
Εγγραφή: 04 Απρ 2018, 14:48

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από enaon » 11 Μαρ 2024, 07:55

οκ καταλαβα, παντως δεν ειναι προιόντα τεχνολογίας αυτα ακριβως, δεν ειναι σαν τις σκουπες ρομποτ για παραδειγμα που περιμέναμε να πεσει το κοστος της τεχνολογίας ή να αναπτύξουν λογισμικό, ο,τι χρειάζεται μια τουαλέτα υπάρχει πανω απο 10 χρόνια έτοιμο με ιδιο κοστος απο τοτε.

αλλαξες και αβαταρ και δεν σε γνωρίζω, ωραίο παντως :)

Άβαταρ μέλους
omg kai 3 lol
Δημοσιεύσεις: 5032
Εγγραφή: 03 Απρ 2018, 14:03

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από omg kai 3 lol » 11 Μαρ 2024, 08:07

enaon έγραψε:
11 Μαρ 2024, 07:55
οκ καταλαβα, παντως δεν ειναι προιόντα τεχνολογίας αυτα ακριβως, δεν ειναι σαν τις σκουπες ρομποτ για παραδειγμα που περιμέναμε να πεσει το κοστος της τεχνολογίας ή να αναπτύξουν λογισμικό, ο,τι χρειάζεται μια τουαλέτα υπάρχει πανω απο 10 χρόνια έτοιμο με ιδιο κοστος απο τοτε.

αλλαξες και αβαταρ και δεν σε γνωρίζω, ωραίο παντως :)

δεν εχει σημασια αυτο, οσοι φραγκατοι διαθετουν πανω απο 500 ευρω για μια εξυπνη λεκανη γατας θα την αγορασουν και καποια στιγμη νομοτελειακα θα στερεψουν, οταν πεσουν οι πωλησεις τοτε θα πεσει και η τιμη, τωρα ολες μοιαζουν σα τη σκουπα της Dyson! -που δεν ειναι-
thanx!

Άβαταρ μέλους
Lasal
Δημοσιεύσεις: 60
Εγγραφή: 19 Φεβ 2024, 01:38
Phorum.gr user: Lasal

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από Lasal » 11 Μαρ 2024, 15:40

enaon έγραψε:
11 Μαρ 2024, 07:55
υπάρχει πανω απο 10 χρόνια έτοιμο με ιδιο κοστος απο τοτε.
Και γω σε αυτό θα κατέληγα
omg kai 3 lol έγραψε:
11 Μαρ 2024, 08:07
δεν εχει σημασια αυτο, οσοι φραγκατοι διαθετουν πανω απο 500 ευρω για μια εξυπνη λεκανη γατας θα την αγορασουν και καποια στιγμη νομοτελειακα θα στερεψουν, οταν πεσουν οι πωλησεις τοτε θα πεσει και η τιμη, τωρα ολες μοιαζουν σα τη σκουπα της Dyson! -που δεν ειναι-
thanx!
Μην το λες αυτό. Επέτρεψε μου (φιλικά πάντα) να σου εκφράσω μια άλλη άποψη.
Την 10ετία του 70 έλεγαν ότι όποιος έχει αυτοκίνητο είναι φραγκάτος.
Θα μπορούσα να πω οτι, εφόσον σήμερα έχω αυτοκίνητο (σύμφωνα με ότι έλεγαν τότε) είμαι φραγκάτος.
Εφόσον έχω και έξυπνη λεκάνη (σήμερα) άρα θα πρέπει να είμαι...... σουπερφραγκάτος
Όχι δεν είμαι.
Αν και θα έπρεπε να είμαι σύμφωνα με τους φόρους που έχω πληρώσει τα τελευταία σαρανταπέντε χρόνια. :)
Δες το όμως με διαφορετική οπτική.
Με την δική μου, απλά άλλαξε το βιοτικό μου επίπεδο.
Τώρα........αν η τιμή της έξυπνης τουαλέτας είχε 150 ευρώ τότε σε ποιά κατηγορία θα ανήκε!!
Την κατηγορία των πτωχών?
Προς θεού μην με παρεξηγήσεις γιατί δεν έχω τετοιο σκοπό.
Επειτα είμαι και γω φάν του richard dean anderson :003:
:wave:
ΥΓ.
Προτείνω η επόμενη ver της skat-@ να ονομαστεί PmSLb
(Poor mans shit litter box) :g030:

Άβαταρ μέλους
omg kai 3 lol
Δημοσιεύσεις: 5032
Εγγραφή: 03 Απρ 2018, 14:03

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από omg kai 3 lol » 11 Μαρ 2024, 15:53

Lasal έγραψε:
11 Μαρ 2024, 15:40
enaon έγραψε:
11 Μαρ 2024, 07:55
υπάρχει πανω απο 10 χρόνια έτοιμο με ιδιο κοστος απο τοτε.
Και γω σε αυτό θα κατέληγα
omg kai 3 lol έγραψε:
11 Μαρ 2024, 08:07
δεν εχει σημασια αυτο, οσοι φραγκατοι διαθετουν πανω απο 500 ευρω για μια εξυπνη λεκανη γατας θα την αγορασουν και καποια στιγμη νομοτελειακα θα στερεψουν, οταν πεσουν οι πωλησεις τοτε θα πεσει και η τιμη, τωρα ολες μοιαζουν σα τη σκουπα της Dyson! -που δεν ειναι-
thanx!
Μην το λες αυτό. Επέτρεψε μου (φιλικά πάντα) να σου εκφράσω μια άλλη άποψη.
Την 10ετία του 70 έλεγαν ότι όποιος έχει αυτοκίνητο είναι φραγκάτος.
Θα μπορούσα να πω οτι, εφόσον σήμερα έχω αυτοκίνητο (σύμφωνα με ότι έλεγαν τότε) είμαι φραγκάτος.
Εφόσον έχω και έξυπνη λεκάνη (σήμερα) άρα θα πρέπει να είμαι...... σουπερφραγκάτος
Όχι δεν είμαι.
Αν και θα έπρεπε να είμαι σύμφωνα με τους φόρους που έχω πληρώσει τα τελευταία σαρανταπέντε χρόνια. :)
Δες το όμως με διαφορετική οπτική.
Με την δική μου, απλά άλλαξε το βιοτικό μου επίπεδο.
Τώρα........αν η τιμή της έξυπνης τουαλέτας είχε 150 ευρώ τότε σε ποιά κατηγορία θα ανήκε!!
Την κατηγορία των πτωχών?
Προς θεού μην με παρεξηγήσεις γιατί δεν έχω τετοιο σκοπό.
Επειτα είμαι και γω φάν του richard dean anderson :003:
:wave:
ΥΓ.
Προτείνω η επόμενη ver της skat-@ να ονομαστεί PmSLb
(Poor mans shit litter box) :g030:


ενταξει υπαρχουν και εξαιρεσεις και αρκετοι κανουμε υπερβασεις για τα χομπυ μας και πολυ περισσοτερο για τις λατρειες μας

αντικειμενικα ομως σε αυτην την τιμη ειναι ενα προιον για λιγους

Άβαταρ μέλους
Lasal
Δημοσιεύσεις: 60
Εγγραφή: 19 Φεβ 2024, 01:38
Phorum.gr user: Lasal

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από Lasal » 11 Μαρ 2024, 16:11

omg kai 3 lol έγραψε:
11 Μαρ 2024, 15:53
ενταξει υπαρχουν και εξαιρεσεις και αρκετοι κανουμε υπερβασεις για τα χομπυ μας και πολυ περισσοτερο για τις λατρειες μας

αντικειμενικα ομως σε αυτην την τιμη ειναι ενα προιον για λιγους
Συμφωνώ απόλυτα!
Για τις λατρείες μας θα το παλέψουμε να γίνει προσιτό
:klino:
ΥΓ.
Με γύρισες πολλά χρόνια πίσω
:)

Άβαταρ μέλους
enaon
Δημοσιεύσεις: 22650
Εγγραφή: 04 Απρ 2018, 14:48

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από enaon » 11 Μαρ 2024, 17:11

βαζω την λογική μηπως θελει καποιος να ρίξει μια ματιά, τα εχω λιγο μπερδεμένα γιατί δοκιμαζα διαφορα, αλλά γιατί οχι.

ασχετο λιγο, δεν εχω μετρησει καταναλώσεις ακομα, αλλα το σκ βρηκα μια ωραία ιδέα επιτέλους να μπορώ να βλεπω κατασταση φορτισης του ποαουρμπανκ σωστά και τα πραγματα πανε πολυ ωραία, ειναι στο 65%, 2 μηνες σχεδόν εχουν περάσει, 320 αδειασματα.

Κώδικας: Επιλογή όλων

E.setConsole(Bluetooth, { force: true });
pinMode(D22, "opendrain_pullup");
pinMode(D23, "opendrain_pullup");

scata = {
  clb: (ew.def.name == "eL-6f") ? 0 : -0.03,
  state: { busy: 0, run: 0, tap: 0, dbg: 1, lock: 1, ball: 0, recovery: 0 },
  pos: { lock: 0.2, ball: 0.2, flip: 0 },
  volt: { drop: {}, base: 0, min: 0 },
  tid: {},
  move: function(pin, pos, range) {
    i = range ? 0.5 : 1;
    if (pos < 0) pos = 0;
    if (pos > 1 / i) pos = 1 / i;
    analogWrite(pin, (i + pos) / 50.0, { freq: 20, soft: false });
  },
  count: function(i) {
    if (scata.tid.cntdn) {
      clearInterval(scata.tid.cntdn);
      scata.tid.cntdn = 0;
    }
    if (i) { if (scata.state.dbg) print("scata-Info: clear counter"); return; }
    if (scata.state.dbg) print("scata-Info: start counter");
    scata.wake();
    let v = 121;
    ew.oled.msg("Hello Kitty");
    scata.tid.cntdn = setInterval(() => {
      v--;
      ew.oled.msg((118 <= v) ? "Hello Kitty" : "Empty in " + v);
      if (v == 90 && ew.def.name != "eL-6f") {
        if (scata.state.dbg) print("scata-Info: sleep counter");
        digitalPulse(D23, 0, [200, 300, 200, 300, 200]);
      }
      if (v <= 5) {
        acc.sleep();
        buzzer([200, 100, 100]);
      }
      if (v <= 0) {
        clearInterval(scata.tid.cntdn);
        scata.tid.cntdn = 0;
        //acc.sleep();
        if (scata.state.dbg) print("scata-Info: counter expired, staring");
        scata.wake("empty");
      }
    }, 1000);
  },
  go: function(i) {
    scata.pos.flip = 0;
    if (!i.speed) i.speed = 100;
    //scata.volt.base = ew.is.ondcVoltage();
    scata.volt["min" + i.act] = scata.volt.base;
    if (scata.tid.move) { clearInterval(scata.tid.move); }
    ew.oled.msg(i.act, 1);
    scata.tid.move = setInterval(() => {
      scata.pos.ball = scata.pos.ball + (scata.pos.flip == 1 ? -0.01 : 0.01);
      scata.move(D22, scata.pos.ball, 1);
      //if (scata.state.dbg) print("move : " + scata.pos.ball, scata.pos.flip);
      if (!scata.pos.flip && i.one <= scata.pos.ball) { if (i.act1) { ew.oled.msg(i.act1, 1); if (scata.state.dbg) print("scata-Info:", i.act1); } scata.pos.flip = 1; }
      else if (scata.pos.flip == 1 && scata.pos.ball <= i.two) scata.pos.flip = 0 <= i.three ? 2 : 3;
      else if (scata.pos.flip == 2 && i.three <= scata.pos.ball) scata.pos.flip = 3;
      if (scata.volt["min" + i.act] > ew.is.ondcVoltage()) {
        scata.volt["min" + i.act] = ew.is.ondcVoltage();
      }
      if (scata.pos.flip == 3) {
        clearInterval(scata.tid.move);
        scata.tid.move = 0;
        if (i.act == "Emptying") {
          scata.volt.drop[i.act] = scata.volt.base - scata.volt["min" + i.act];
          if (scata.state.dbg) print("scata-Info: voltage drop", scata.volt.drop[i.act].toFixed(3), "V");
          if (scata.state.dbg) print("scata-Info: sand estimate", (scata.volt.drop[i.act] * (40 - (scata.volt.drop[i.act] * 50))).toFixed(1), " litres");
          scata.state.litres = (scata.volt.drop[i.act] * (40 - (scata.volt.drop[i.act] * 50))).toFixed(1);
        }
        if (scata.state.dbg) print("scata-Info:", i.act, "done, running", i.next);
        if (i.next) scata[i.next]();
      }
      //recovery
      if (ew.is.ondcVoltage() <= 4) {
        if (scata.state.dbg) print("scata-Error: power is down, waking up");
        clearInterval(scata.tid.move);
        scata.tid.move = 0;
        scata.pos.ball = scata.pos.ball + (scata.pos.flip == 1 ? 0.25 : -0.25);
        scata.move(D22, scata.pos.ball, 1);
        scata.wake("recovery");
      }

    }, i.speed);
  },
  empty: function(mode) {
    if (scata.state.busy) return;
    scata.state.busy = 1;
    if (scata.state.dbg) print("scata-Info: acc sleep");
    acc.sleep();
    scata.count("clear");
    mode == "sand" ? scata.state.run = 0 : scata.state.run++;
    scata.unlock();
    scata.go({ one: 0.52 + scata.clb, two: 0.30 + scata.clb, three: 0.38 + scata.clb, act: "Unlocking", next: mode ? "sand" : "betonite" });
    //ew.oled.msg("Emptying", 1);
    return "ok";
  },
  // fine grain betonite sand
  betonite: () => { scata.go({ one: 2 + scata.clb, two: 0, three: 0.65, act: "Emptying", act1: "Returning ", next: "lock", speed: 100 }); },
  // standard non-stick sand
  nonstic: () => { scata.go({ one: 1.6 + scata.clb, two: 1 + scata.clb, act: "Emptying", next: "nonstic_return" }); },
  nonstic_return: () => { scata.go({ one: 2 + scata.clb, two: 0, three: 0.65, act: "Emptying", act1: "Returning", next: "lock", speed: 100 }); },
  // light crystalic silicone sand
  silicone: () => { scata.go({ one: 1.6 + scata.clb, two: 0.6 + scata.clb, act: "Getting ready", next: "silicone1", speed: 50 }); },
  silicone1: () => { scata.go({ one: 2 + scata.clb, two: 1.9 + scata.clb, act: "Emptying", next: "silicone_return", speed: 100 }); },
  silicone_return: () => { scata.go({ one: 2 + scata.clb, two: 0, act: "Emptying", next: "silicone_return1", speed: 100 }); },
  silicone_return1: () => { scata.go({ one: 0.1, two: 0, act: "Leveling", next: "silicone_return2", speed: 80 }); },
  silicone_return2: () => { scata.go({ one: 0.1, two: 0, act: "Leveling", next: "silicone_return3", speed: 80 }); },
  silicone_return3: () => { scata.go({ one: 0.8, two: 0.65, act: "Leveling", next: "lock", speed: 100 }); },
  // empty sand
  sand: () => { scata.go({ one: 2 + scata.clb, two: 0.65, act: "Empty all sand", next: "sand1" }); },
  sand1: () => { scata.go({ one: 2 + scata.clb, two: 0.65, act: "Empty all sand", next: "sand2", speed: 50 }); },
  sand2: () => { scata.go({ one: 2 + scata.clb, two: 0.65, act: "Empty all sand", next: "sand3", speed: 50 }); },
  sand3: () => { scata.go({ one: 2, two: 0.65, act: "Empty all sand", next: "lock", speed: 100 }); },
  recovery: () => {
    scata.unlock();
    t = getTime() + 2;
    while (getTime() < t);
    scata.go({ one: 0.45, two: 0, three: 0.65, act: "recover", next: "lock" });
  },
  // lock ball
  lock: function() {
    D23.reset();
    digitalPulse(D23, 1, 1.8);
    scata.go({ one: 0.65, two: 0.28 + scata.clb, three: 0.45 + scata.clb, act: "Lockcing", next: "sleep" });
  },
  unlock: function() {
    digitalPulse(D23, 1, 1.2);
    t = getTime() + 0.2;
    while (getTime() < t);
    digitalPulse(D23, 1, 1.2);
    t = getTime() + 0.2;
    while (getTime() < t);
    digitalPulse(D23, 1, 1.2);
    t = getTime() + 1;
    while (getTime() < t);
  },
  //
  sleep: function() {
    if (ew.tid.scata) { clearTimeout(ew.tid.scata);
      ew.tid.scata = 0; }
    scata.state.busy = 0;
    ew.oled.msg("Going to Sleep", 1);
    scata.state.tap = 0;
    digitalPulse(D23, 1, [300, 100, 300, 100]);
    if (scata.state.dbg) print("scata-Info: going to sleep");
    ew.tid.scata = setTimeout(() => {
      ew.tid.scata = 0;
      if (scata.state.dbg) print("scata-Info: acc wake");
      ew.oled.msg(scata.state.litres + " Litres");
      acc.wake(1);
      //poke32(0x50000700 + 22 * 4, 2);
      //poke32(0x50000700 + 23 * 4, 2);
    }, 1500);
  },
  wake: function(i, e) {
    if (scata.state.dbg) print("scata-Info: waking up");
    ew.oled.msg("Waking up");
    if (scata.tid.move) clearInterval(scata.tid.move);
    //D23.reset();
    // pinMode(D22, "opendrain_pullup");
    // pinMode(D23, "opendrain_pullup");
    if (ew.is.ondcVoltage() <= 4.5)
      digitalPulse(D23, 1, [100, 100, 100]);
    t = getTime() + 0.5;
    while (getTime() < t);
    scata.tid.move = setInterval(() => {
      if (4.5 <= ew.is.ondcVoltage()) {
        //if (ew.is.ondcVoltage(1) <= 20)
        //if (scata.state.dbg) print("scata-Error: low battery"); //do something
        if (scata.state.dbg) print("scata-Info: power is up");
        clearInterval(scata.tid.move);
        scata.tid.move = 0;
        scata.volt.base = ew.is.ondcVoltage();
        if (i) {
          if (scata.state.dbg) print("scata-Info: starting", i, e ? e : "");
          scata[i](e ? e : "");
        }
      }
      else {
        if (scata.state.dbg) print("scata-Info: waiting for power");
        digitalPulse(D23, 1, [500, 100, 500]);
      }
    }, 2000);
  }
};
//BT events
ew.on("BTRX", (i) => {
  eval(i);
  ew.oled.msg("yes master");
});
// power events
/* //no use
ew.on("ondc", (x) => {
  if (scata.state.busy) {
    if (!x.state && !scata.state.recovery && !ew.is.charging()) {
      if (scata.state.dbg) print("scata-Error: ondc power is down, waking up");
      scata.pos.ball = scata.pos.ball + (scata.pos.flip == 1 ? 0.25 : -0.25);
      scata.move(D22, scata.pos.ball, 1);
      scata.state.recovery = 1;
      scata.wake();
    }
    else if (x.state && scata.state.recovery) {
      scata.state.recovery = 0;
      if (scata.state.dbg) print("scata-info: power is up");
      t = getTime() + 2;
      while (getTime() < t);
      scata.unlock();
      scata.go({ one: 0.45, two: 0, three: 0.65, act: "recover", next: "lock" });
    }
    //else if (scata.state.dbg) print("scata-Recovery event: false alarm-",x.state,scata.state.recovery);
  }
});
*/
// button events
ew.on("button", (x) => {
  if (scata.state.busy) {
    buzzer(400);
    ew.oled.msg("I am busy", 1);
    return;
  }
  acc.sleep();
  if (x == "double") {
    ew.oled.msg(scata.state.run + "-" + ew.is.batt(1) + " %", 1, ew.is.ondcVoltage(4) + "% - " + ew.is.ondcVoltage().toFixed(2) + "V");
  }
  else if (x == "short") {
    ew.oled.msg(4.5 <= ew.is.ondcVoltage() ? "Going to sleep" : "Waiking up");
    if (scata.state.dbg) print("scata-Info: button single tap");
    //digitalPulse(D23, ew.is.charging() ? 0 : 1, [200, 200, 200]);
    4.5 <= ew.is.ondcVoltage() ? scata.sleep() : scata.wake();
  }
  else
  if (x == "triple") {
    buzzer([80, 80, 100, 80, 200]);
    if (scata.state.dbg) print("scata-Info: button triple tap");
    scata.wake("empty", 2);
  }
  else
  if (x == "long") {
    buzzer([80, 80, 100, 80, 200]);
    if (scata.state.dbg) print("scata-Info: button long hold");
    scata.wake("empty");
  }
  acc.wake();
});
//accelerator events
acc.on("action", (x, y) => {
  if (scata.state.dbg) print("scata-Info: acc event", x, y);
  if (y == 1 || y == 2) scata.state.tap = 5;
  //(x == "double")?scata.state.tap=5 : scata.state.tap++;
  else { if (scata.state.dbg) print("scata-Info: acc event", x, y, "ignored"); return; }
  if (ew.tid.scata) {
    clearTimeout(ew.tid.scata);
    ew.tid.scata = 0;
  }
  ew.tid.scata = setTimeout(() => {
    ew.tid.scata = 0;
    scata.state.tap = 0;
    if (scata.state.dbg) print("scata-Info: out of tmr, scata.state.tap:", scata.state.tap);
  }, (1 < scata.state.tap) ? 120000 : 45000);
  if (scata.state.tap == 1) ew.oled.msg("who is there?");
  if (scata.state.busy || BTN1.read()) { if (scata.state.dbg) print("scata-Info: acc event", x, y, "canceled"); return; }
  else scata.count();
});
//init
ew.updateBT();
NRF.setTxPower(4);
//
if (ew.tid.scata) {
  clearTimeout(ew.tid.scata);
  ew.tid.scata = 0;
}
ew.tid.scata = setTimeout(() => {
  ew.tid.scata = 0;
  ew.oled.off();
  acc.wake(1);
}, 4000);

Άβαταρ μέλους
Lasal
Δημοσιεύσεις: 60
Εγγραφή: 19 Φεβ 2024, 01:38
Phorum.gr user: Lasal

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από Lasal » 12 Μαρ 2024, 00:33

enaon έγραψε:
11 Μαρ 2024, 17:11
βαζω την λογική μηπως θελει καποιος να ρίξει μια ματιά, τα εχω λιγο μπερδεμένα γιατί δοκιμαζα διαφορα, αλλά γιατί οχι.

ασχετο λιγο, δεν εχω μετρησει καταναλώσεις ακομα, αλλα το σκ βρηκα μια ωραία ιδέα επιτέλους να μπορώ να βλεπω κατασταση φορτισης του ποαουρμπανκ σωστά και τα πραγματα πανε πολυ ωραία, ειναι στο 65%, 2 μηνες σχεδόν εχουν περάσει, 320 αδειασματα.
Απότι δείχνει κάνεις πολύ καλή διαχείριση της ενέργειας.
65% για αυτά τα αδειάσματα Θα έλεγα σχεδόν εξωπραγματική.
Έριξα μια ματιά στον κώδικα χωρίς να είμαι ειδικός και χωρίς να έχω την κατάρτηση.
Οπότε θα το αγγίξω λίγο.....τελείως επιφανειακά, σαν να μαθαίνω Σουαχίλι :vp11: (ελπίζω να δει τον κώδικα κάποιος αληθινός προγραμματιστής)
Βλέπω ότι έχεις ξεχωριστές ρουτίνες για τον μπετονίτη και την κρυσταλική.
Οπότε και θα δουλεύουν λίγο διαφορετικά η μια από την άλλη φαντάζομαι.
Μάλιστα μου δημιουργούνται και κάποιες απορίες όπως για παράδειγμα
1. αν θα δουλεύει το φτυάρι στην ίδια ταχύτητα και στους 2 τύπους άμμου και τι γίνεται να μπεί.......τόφου :)
2. αν θα μπορεί να δουλεύει το φτυάρι διακοπτόμενα όπως γίνεται στην niakasa πχ σε 6 βήματα για περιστροφή
3. αν μπορεί να αλλάζει η ταχύτητα πχ με ενα ποτενσιόμετρο ή αν θα πρέπει να μπεί στον κώδικα για να αλλάξει
4. υπάρχει η δυνατότητα override στην ταχύτητα από ένα ποτενσιόμετρο?
5. το firmware update τι βαθμό δυσκολίας θα έχει
6. αν θα υπάρχει kill switch για μια ώρα ανάγκης ή θα γίνεται απλά με μια αφαίρεση του powerbank
Φυσικά ο κώδικας είναι το παν και η κατανόηση από μένα τουλάχιστον είναι λίγο...... Σουαχίλι :ne5::o:o
για την ωρα.....
"Ουφφφφφφ τωρα στα γεράματα μάθε γέρο γράμματα"
Χμ επειδή είμαι και γω λίγο μαζοχιστής και έχω μικρές αυτοκτονικές τάσεις μπορεί και να το κάνω στο τέλος............ :wall:
Οπότε πάω να συνεχίσω την μελέτη του κώδικα μέχρι να με σώσει κάποιος.

Άβαταρ μέλους
enaon
Δημοσιεύσεις: 22650
Εγγραφή: 04 Απρ 2018, 14:48

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από enaon » 12 Μαρ 2024, 03:51

Lasal έγραψε:
12 Μαρ 2024, 00:33
65% για αυτά τα αδειάσματα Θα έλεγα σχεδόν εξωπραγματική.


1. αν θα δουλεύει το φτυάρι στην ίδια ταχύτητα και στους 2 τύπους άμμου και τι γίνεται να μπεί.......τόφου :)
2. αν θα μπορεί να δουλεύει το φτυάρι διακοπτόμενα όπως γίνεται στην niakasa πχ σε 6 βήματα για περιστροφή
3. αν μπορεί να αλλάζει η ταχύτητα πχ με ενα ποτενσιόμετρο ή αν θα πρέπει να μπεί στον κώδικα για να αλλάξει
4. υπάρχει η δυνατότητα override στην ταχύτητα από ένα ποτενσιόμετρο?
5. το firmware update τι βαθμό δυσκολίας θα έχει
6. αν θα υπάρχει kill switch για μια ώρα ανάγκης ή θα γίνεται απλά με μια αφαίρεση του powerbank

Οπότε πάω να συνεχίσω την μελέτη του κώδικα μέχρι να με σώσει κάποιος.
ναι καλα ειναι, εχει πραγματι πολυ μικρες απώλειες το μοντουλε του παουερμπανκ, δεν ξερω ακομα βεβαια που κοβει εντελως, αν κοβει στα 3.3 βολτ τοτε η μπαταρια ειναι στο ~50% τωρα, αν κοβει στα ~3V ειναι στο 65%, θα φανει, ειναι στα 3.75V τωρα, σε εκεινη που εχει 6 μονο μπαταριες, την μικρη. Το γραφημα αποφορτησης παντως ειναι γραμμικό σε αυτες τις μπαταριες μεχρι τα 3V αν η πίεση ειναι ~200mA, καλα πανε, πράγματι το powerbank μοιαζει να χάνει κάτω από 200μA, standby χρόνια θα έχει.

ωραια, λοιπον:

1. τοφου δεν δοκιμασα αλλα αν δεν εχει βαρος δεν πεφτει στα κενα η αμμος και εχει απωλειες, και με την σιλικόνη οριακα τα καταφερνει, εφτιαξα ενα φτιαρακι με δόνηση που δεχεται ακομα και πελετς βεβαια, αλλα λιγο πιο μετα αυτο.
2. ναι βεβαια, οτι θες γινεται, με τον περιορισμο οτι το παξιμαδι εχει καποια μποσικα στο κλειδι απο την φυση του.
3&4. Ποιο ποντεσιομετρο παιδι μου, σερβο ειναι, με την λογική κανονιζεις ταχυτητα, θα σου εξηγησω πιο κατω.
5. ενα κουμπι υποθεση μεσα απο τον chrome, θα το δεις πιο μετα.
6. αν πατησεις το κουμπι του dsd6 για 5 δευτερολεπτα κανει ρεσετ, ή αν βγαλεις το παουερμπανκ, αλλα δεν υπαρχει λογος, κοβει μονο του πολυ ωραια, το δοκιμασα αρκετα.

θα σου εξηγησω λιγο την ρουτινα move και go που εχουν σημασια αρκετη, για να βγαλεις πιο ευκολα ακρη. Αφαιρεσα παλι μερικα για να ειναι πιο απλο στο διαβασμα, υπολογιζει και την πτωση τασης η go να ξερει ποση αμμο εχει και κοιταει αν εχει πεσει η τροφοδοσια για να ανακαμψει, πιο μετα αυτα αν ειναι.

οπως ειπαμε εχθες, τα σερβο τα οδηγουμε απλα με τον παλμο, στελνουμε ενα παλμο, αυτα πανε μονα τους εκει που ειπαμε, με μεγαλη ταχυτητα ομως, οσο μπορουνε, φουλ, 1.5 δευτερολεπτο απο ακρη σε ακρη. Δεν το θελουμε αυτο, θελουμε η κινηση να ειναι αργή, και κυρίως θελουμε να ειναι σταδιακή, να μην κανει αποτομες κινησεις.

στην ρουτινα move λοιπον, που την κανω λιγο πιο απλη παλι γιατι την εχω να υποστηρίζει σερβο 180 και 360 μοιρών, κανουμε το εξης:

Κώδικας: Επιλογή όλων

  move: function(pin, pos) { //ποιο πινακι θα οδηγησει το σερβο, σε ποια θεση θα το παει, απο το 0 εως το 2 για να εχω πιο καλη αναλυση. (με βήμα 0.01 εχουμε 200 βήματα)
    if (pos < 0) pos = 0; //αν ζητησουμε θεση κατω απο το 0, να το κανει 0
    if (pos >2) pos =2;  //αν ζητησουμε θεση πανω απο το 2, να το κανει 2
    analogWrite(pin, (0.5 + pos) / 50.0, { freq: 20, soft: false }); //μετατρεπει την θεση 0-2 σε κινηση 0-250 μοιρες στο σερβο(τοσο παει στα 5 βολτ)
  },
στην go, που οταν την καλουμε στελνουμε και μερικες μεταβλητες μαζι, κανουμε το εξης:

εστω ο μπετονιτης, που ειναι το πιο απλο:

Κώδικας: Επιλογή όλων

 betonite: () => { scata.go({ one: 2 , two: 0, three: 0.65, act: "Emptying", act1: "Returning ", next: "lock", speed: 100 }); },
καλουμε την go με 3 θεσεις που θελουμε να παει, το ονομα της δρασης για να το δειχνει στην οθόνη, το ονομα της επόμενης ρουτινας που θα καλεσει οταν τελειωσει, και την ταχυτητα κινησης. Η ταχυτητα λοιπον που ρωτας πως αλλαζει, ειναι εκει, το 100, καθε 100ms κανει το επομενο βημα, μπορει να γινει 20ms ή 500ms για παράδειγμα.

για να απαντήσω πιο καλά στο 4, η ταχύτητα αυτή δεν είναι απαραίτητο να είναι φιξαρισμενη στον κώδικα, μπορεί να είναι μια μεταβλητή που την αλλάζεις από την οθόνη της τουαλέτας, οι επόμενες θα έχουν οθόνη αφής και μενού, από εκεί δηλαδή.

Κώδικας: Επιλογή όλων

  
go: function(i) {
    scata.pos.flip = 0; //το flip αλλαζει μονο του οταν φτασει στην πρωτη θεση που ζηταμε, μετα παει να βρει την δευτερη θεση, μετα αν υπαρχει 3η παει εκει, αλλιως τελειωνει την δραση.
    if (!i.speed) i.speed = 100; //ταχυτητα λουπας, 100ms αν δεν δωσουμε μια οταν καλουμε την go, αλλιως εκεινη που δώσαμε. 
    scata.tid.move = setInterval(() => { // εδω αρχιζει η λουπα, δεν λεμε δηλαδη στο σερβο να παει εκει που θελουμε να φτασει στο τελος, του λεμε να παει απλα ενα μικρό βηματακι παρα περα καθε φορά. 
      scata.pos.ball = scata.pos.ball + (scata.pos.flip == 1 ? -0.01 : 0.01); Προσθετουμε ή αφαιρουμε ενα βημα ( 0.01 καθε βημα, αναλυση 200 βηματα απο το 0-2) απο την θεση που ειναι το σερβο τωρα, αναλογα αν το flip ειναι μονο ή ζυγό.
      scata.move(D22, scata.pos.ball); // κουναμε το σερβο να παει στο επομενο βημα. 
      if (!scata.pos.flip && i.one <= scata.pos.ball) //οσο η κινηση δεν εχει φτασει ακομα στο πρωτο μας ζητουμενο, ειμαστε σε flip 0, αλλιως παμε flip 1 και αλλαζουμε φορα για να φτασουμε στο δευτερο ζητουμενο. 
           scata.pos.flip = 1;
      else if (scata.pos.flip == 1 && scata.pos.ball <= i.two)  //αν η κινηση φτασει στο δευτερο μας ζητουμενο, κανουμε flip παλι, αν υπαρχει 3ο ζητουμενο παμε εκει, αλλιως τελειωνουμε την κινηση. 
           scata.pos.flip = 0 <= i.three ? 2 : 3;
      else if (scata.pos.flip == 2 && i.three <= scata.pos.ball)  //αν υπηρχε 3ο ζητουμενο, τελειωνουμε την δραση μολις το φτασουμε.
           scata.pos.flip = 3;
      if (scata.pos.flip == 3) //αν ολες οι θεσεις που θελαμε εχουν τελειωσει, η ρουτίνα τελειωνει,
          if (i.next) scata[i.next](); //και αν υπαρχει επόμενη ρουτινα που θελουμε να εκτελεσει (το next δηλαδη) την καλουμε, αλλιως τελος.  
    }, i.speed); //ταχυτητα λουπας, καθε ποτε δηλαδη θα κανουμε ενα βημα.
  },

Άβαταρ μέλους
Lasal
Δημοσιεύσεις: 60
Εγγραφή: 19 Φεβ 2024, 01:38
Phorum.gr user: Lasal

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από Lasal » 12 Μαρ 2024, 23:38

enaon έγραψε:
12 Μαρ 2024, 03:51

ωραια, λοιπον:
Να κάνω έναν πρόχειρο συνοψισμό.

Ποτενσιόμετρο δεν χρειάζεται γιατί το σερβο λειτουργεί σαν βηματικός κινητήρας
Η ταχύτητα μπορεί να αλλάξει, αλλάζοντας και μόνον το flag της μεταβλητής από την οθόνη, επιλέγοντας στο menu πχ. default, 1, 2, 3
Αν είναι σωστά ρυθμισμένος ο κώδικας....... απο το Input της οθόνης μπορείς να κάνεις παπάδες
Δηλαδή από την στιγμή που "υπάρχει" η λογική ή και λογικές δεν έχεις παρά να ζητήσεις κάποιες λειτουργίες.
Είναι πολύ παραμετροποιήσιμο οπότε και φαντάζομαι πως στην περίπτωση ενός beta testing (crash test) θα εχει περισσότερες δυνατότητες input απο την οθόνη.
Σε μια ολοκληρωμένη κατάσταση (αποσφαλματωμένο) θα έχει μόνον τις "απαραίτητες" λειτουργίες input για την προστασία του user.
Πώς τα πάω μέχρι τώρα? :003:
Οι λιθίου πρέπει οπωσδήποτε να κόβουν στα 3.2 γιατί αλλιώς παίρνουν την κατηφόρα :vp20:
Δεν ξέρω η φόρτισή τους απο που θα προέρχεται γιατί για 6 μπαταρίες θέλει BMS για να ειναι ισοφορτισμένες. Λοιπόν 6 μπαταρίες επι 10 ευρώ η κάθε μία σύνολο 60ευρώ χμμμμμμ
Το πέλλετ μάλλον θα πρέπει να το ξεχάσεις γιατί δουλεύει αντίστροφα.Τις σκατούλες θα τις αδειάζει σίγουρα όμως τα τσισάκια που γίνονται αμμωνιοπριονίδι...... :smt018 !
Αγωνιώ να συστηθώ με το :gb:
Θέλω να ξαναγίνω πατέρας :wink
ΥΓ.
Πάντως τα remarks που εχει βάλει βοηθούν στην κατανόηση του κώδικα
Εστω και λίγο απο εμένα τον άσχετο

Άβαταρ μέλους
enaon
Δημοσιεύσεις: 22650
Εγγραφή: 04 Απρ 2018, 14:48

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από enaon » 13 Μαρ 2024, 00:27

Lasal έγραψε:
12 Μαρ 2024, 23:38
Πώς τα πάω μέχρι τώρα? :003:


Οι λιθίου πρέπει οπωσδήποτε να κόβουν στα 3.2 γιατί αλλιώς παίρνουν την κατηφόρα :vp20:
Δεν ξέρω η φόρτισή τους απο που θα προέρχεται γιατί για 6 μπαταρίες θέλει BMS για να ειναι ισοφορτισμένες. Λοιπόν 6 μπαταρίες επι 10 ευρώ η κάθε μία σύνολο 60ευρώ χμμμμμμ
Το πέλλετ μάλλον θα πρέπει να το ξεχάσεις γιατί δουλεύει αντίστροφα.Τις σκατούλες θα τις αδειάζει σίγουρα όμως τα τσισάκια που γίνονται αμμωνιοπριονίδι...... :smt018 !
Μια χαρά αλλά

οι λιθιου πανε μεχρι 2.8, αναλογα την μάρκα/τυπο βέβαια, χρησιμοποιώ τις samsung q30, δεν έχουν απότομη πτώση αυτές στα 3.2 αν η πίεση είναι μικρή. Σου βάζω ένα λινκ να κοιτάς συμπεριφορά αν σε ενδιαφέρουν αυτά. Πάντα τα νούμερα χωρητικοτητας που βλέπεις πάνω σε μια μπαταρία, εννoουν αποφορτηση έως τα 2.8V με 200mA, αυτό είναι το στανδαρ, έτσι μετραμε.

γιαυτό έχω βάλει 6 μπαταρίες, δεν περνάει τα 6watt στην πραξη ακομα και με τον μπετονιτη που έχει βάρος, περιπου 200mA για κάθε μπαταρια στο φουλ -> μεγιστοποιηση χωρητικοτητας. Ιδανικο ειναι 8 για να καλυψει και την απωλεια ανοδου τασης, αλλα δεν χωρανε στο πλαι, και 6 ομως καλα ειναι. Αλλιως και με μια μονο μια χαρα θα δουλευε, θελει 1-2 αμπερε , η σαμσουνγκ q30 μπορει να δωσει 30αμπερε η καθε μια.

Οι μπαταρίες από Ευρώπη, από τον ολλανδο, εχουν 3 ευρω η μια. Έχω όμως καμια 100αρια από αλλα πραγματα, δεν είναι θέμα το κόστος τους.


bms παιδι μου σε παράλληλη σύνδεση είναι η πλακέτα του παουερμπανκ, γιατι το έβαλα λες;
Μια ή χίλιες μπαταρίες δεν κάνει διαφορά, δεν υπάρχει θέμα ισορροπίας όταν μπαίνουν παράλληλα, τα powerbank που έχεις σπίτι να φορτιζεις το κινητο, που εχουν 3 μπαταριες μεσα μαλλον, πως τα φορτιζεις; :)

εννοώ ότι το φορτίζεις με ένα απλό τροφοδοτικό 5βολτο, σαν αυτό που έχεις για το κινητό, δεν χρειάζεται καν να να βγουνε απο την τουαλέτα, αν θες τις φορτιζεις εκει που είναι, και το ονομάζεις ρεύματος, το module που έβαλα το υποστηριζει.

στο εχω ξαναπει νομιζω, αλλα ναι εφτιαξα ενα φτυαρακι για πελετς, πεταει την σκονη μονο του απο κατω, γιαυτο εχει δόνηση, για να κοσκινιζει το πριονιδι, γινεται, αλλα πιο μετα αυτα.


https://lygte-info.dk/review/batteries2 ... arator.php

Άβαταρ μέλους
enaon
Δημοσιεύσεις: 22650
Εγγραφή: 04 Απρ 2018, 14:48

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από enaon » 13 Μαρ 2024, 02:39

το μετρησα παντως μολις απλα απο περιεργεια, κοβει στα 2.8V, θα βαλω την λογικη βεβαια να μην αδειαζει αν ειναι κατω απο 3, αρα πραγματι για τις q30 ειναι στο 65% περιπου τωρα.

γενικα παντως, καθε powerbank, ακομα και αυτα της πλακας, ειναι 3 σε ενα συσκευη. Φορτιστης, bms, και step-up.

Άβαταρ μέλους
Lasal
Δημοσιεύσεις: 60
Εγγραφή: 19 Φεβ 2024, 01:38
Phorum.gr user: Lasal

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από Lasal » 13 Μαρ 2024, 17:31

enaon έγραψε:
13 Μαρ 2024, 00:27
Οι μπαταρίες από Ευρώπη, από τον ολλανδο, εχουν 3 ευρω η μια. Έχω όμως καμια 100αρια από αλλα πραγματα, δεν είναι θέμα το κόστος τους.
Ωραία πληροφορία!
Γιατί εχω την εντύπωση πως στα βγάζω με το τσιγκέλι?
Μάλλον για να μην πάθω εγκεφαλικό :a108:
:smt013 #$%$^^%$#@#$
enaon έγραψε:
13 Μαρ 2024, 00:27
γιαυτό έχω βάλει 6 μπαταρίες, δεν περνάει τα 6watt στην πραξη ακομα και με τον μπετονιτη που έχει βάρος, περιπου 200mA για κάθε μπαταρια στο φουλ
Κάθε τσούρα απ το τσιγάρο μου είναι 36W >8Α :)
enaon έγραψε:
13 Μαρ 2024, 00:27
bms παιδι μου σε παράλληλη σύνδεση είναι η πλακέτα του παουερμπανκ, γιατι το έβαλα λες;
Για......να πετάξεις πύραυλο? :pPpPPppp
enaon έγραψε:
13 Μαρ 2024, 00:27
Μια ή χίλιες μπαταρίες δεν κάνει διαφορά, δεν υπάρχει θέμα ισορροπίας όταν μπαίνουν παράλληλα, τα powerbank που έχεις σπίτι να φορτιζεις το κινητο, που εχουν 3 μπαταριες μεσα μαλλον, πως τα φορτιζεις; :)
Ντεν εχει power bank καρντιά μου
Εχω όμως φορτιστή 4 θέσεων τστσ :wink
enaon έγραψε:
13 Μαρ 2024, 00:27
στο εχω ξαναπει νομιζω, αλλα ναι εφτιαξα ενα φτυαρακι για πελετς, πεταει την σκονη μονο του απο κατω, γιαυτο εχει δόνηση, για να κοσκινιζει το πριονιδι, γινεται, αλλα πιο μετα αυτα.
Πέρα απο την πλάκα αν κατάφερες να το κάνεις τότε είναι καινοτομία
:blm:
Υπάρχει περίπτωση να μπει και αισθητήρας βάρους?
Για τον καφέ δεν ρωτάω "ξέρω οτι κάνει" :)
ΥΓ.
Εγώ οφείλω σαν "παρατηρητής" να κάνω άσχετες ερωτήσεις (ακόμα και αν τις ξέρω) και να λέω και καμιά παλαβομάρα για
χάρη της πληροφορίας. :003:

Άβαταρ μέλους
enaon
Δημοσιεύσεις: 22650
Εγγραφή: 04 Απρ 2018, 14:48

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από enaon » 13 Μαρ 2024, 17:38

Lasal έγραψε:
13 Μαρ 2024, 17:31
Πέρα απο την πλάκα αν κατάφερες να το κάνεις τότε είναι καινοτομία
:blm:
Υπάρχει περίπτωση να μπει και αισθητήρας βάρους?
Για τον καφέ δεν ρωτάω "ξέρω οτι κάνει" :)
ΥΓ.
Εγώ οφείλω σαν "παρατηρητής" να κάνω άσχετες ερωτήσεις (ακόμα και αν τις ξέρω) και να λέω και καμιά παλαβομάρα για
χάρη της πληροφορίας. :003:
το ξέρω, αλλα θα το ανεβάσω καλά αυτό αν είναι, θα με εκνευρίσει αν το δω πατενταρισμενο για 15 χρονια μετα παλι, θελω να δω αν μπορώ να το ανεβάσω κάπως με κοινόχρηστη άδεια, αν έχει σημασια. Δουλευει μια χαρά πάντως.

ναι εύκολο είναι να μπει αισθητήρας βάρους, πολύ φθηνο κιολας, 2-3 ευρω εχουν. Αλλα εχει νοημα στα αλήθεια, ή είναι παιχνίδι αυτό; Σε εμενα νομιζω δεν έχει, έχουν παρόμοιο βάρος, δεν θα τις ξεχωρίσει. Τι άλλο θα μπορούσε να γίνει με τον αισθητήρα βάρους;

Άβαταρ μέλους
Lasal
Δημοσιεύσεις: 60
Εγγραφή: 19 Φεβ 2024, 01:38
Phorum.gr user: Lasal

Re: SCAT-A

Μη αναγνωσμένη δημοσίευση από Lasal » 13 Μαρ 2024, 17:54

enaon έγραψε:
13 Μαρ 2024, 17:38
το ξέρω, αλλα θα το ανεβάσω καλά αυτό αν είναι, θα με εκνευρίσει αν το δω πατενταρισμενο για 15 χρονια μετα παλι, θελω να δω αν μπορώ να το ανεβάσω κάπως με κοινόχρηστη άδεια, αν έχει σημασια. Δουλευει μια χαρά πάντως.

ναι εύκολο είναι να μπει αισθητήρας βάρους, πολύ φθηνο κιολας, 2-3 ευρω εχουν. Αλλα εχει νοημα στα αλήθεια, ή είναι παιχνίδι αυτό; Σε εμενα νομιζω δεν έχει, έχουν παρόμοιο βάρος, δεν θα τις ξεχωρίσει. Τι άλλο θα μπορούσε να γίνει με τον αισθητήρα βάρους;
Τότε μην το ανεβάζεις.....
Την έχω πατήσει και γω στο παρελθόν και το φυσάω και δεν κρυώνει......
λοιπόν
Στα δικά μου τα γατιά έχει νόημα γιατί έχουν τρία ξεχωριστά βάρη και μπορώ να παίρνω χρήσιμα στατιστικά
Αν έχουν όλες το ίδιο βάρος δεν θα έχει νόημα εκτός και αν εχει η κάθε μια της rfid.
Και για να σου φτιάξω την μέρα......
Τι κοινό μπορεί να εχει το θέμα μας με το βίντεο αυτό!
https://www.youtube.com/watch?v=GHbBqDDte2E
βάλτο στο 15:05
:wave:
Τελευταία επεξεργασία από το μέλος Lasal την 13 Μαρ 2024, 18:03, έχει επεξεργασθεί 1 φορά συνολικά.

Απάντηση

Επιστροφή στο “Χόμπυ • Κατασκευές • Μοντελισμός”

Phorum.com.gr : Αποποίηση Ευθυνών