Skocz do zawartości

Robot do nalewania wódki


Pomocna odpowiedź

9 godzin temu, ethanak napisał:

Niby dlaczego? Pisałem o LiPo 1x18650 - jakby nie było nieco tańszy i mniejszy niż 8 sztuk NiMH, a zakładając sprawność przetwornicy 75% wystarczy na godzinę pracy pompy bez przerwy przy stabilnym napięciu 12V. Przy czym te 75% to taki duży zapas - np. U3V50ALV w interesującym nas zakresie prądów i zasilaniu 3.7V ma sprawność powyżej 80%.

Dodaj do tego szybkość i łatwość ładowania, cenę ładowarki (coś koło 2 PLN)... owszem: urządzenie które zrobiłeś jest super wystrzałowe - ale nawet jeśli jesteś samoukiem powinieneś dostrzec, że sprawę zasilania dokładnie skopałeś.

 

Niewykluczone 😉 Ja zastosowałem 8x akumulator AA 2600 mAh z założeniem długiego polewania.

9 godzin temu, Leoneq napisał:

Btw, taki automat nalewałby kakałko? Procentów nie mogę a i tak mnie jakoś nie zachęcają...

Myślę, że z takimi substancjami jak kakao może być problem z zachowaniem czystości układu a i ne wiem jak się wszystko zachowa jak dojdzie też temperatura bo sam nalewam tylko schłodzone trunki

Link to post
Share on other sites
8 minut temu, Treker napisał:

Ja to jednak ze wsi jestem;) Kawa ma być czarna i bez cukru:) 

 

3 minuty temu, Kasztan napisał:

Ja zastosowałem 8x akumulator AA 2600 mAh z założeniem długiego polewania.

Na ile wystarcza? Szkoda jakby się musiał jakiś długi kabel poniewierać po stole... 

Link to post
Share on other sites
3 minuty temu, SOYER napisał:

Na ile wystarcza? Szkoda jakby się musiał jakiś długi kabel poniewierać po stole... 

Szczerze to nie wiem, raczej długo - nie mierzyłem, kilka godzin testowałem w czsie budowy potem polewał na imprezie i w tym czasie raz ładowałem pakiet

  • Lubię! 1
Link to post
Share on other sites
1 godzinę temu, Kasztan napisał:

Ja zastosowałem 8x akumulator AA 2600 mAh z założeniem długiego polewania.

Dobra. Pompka bierze ok. 250 mA (wg danych ze sklepu), czyli teoretycznie starczy na 10 godzin ciągłej pracy. Po 10 godzinach musisz wyjąć akumulatory, włożyć do ładowarki, odczekać (2600 mAh NiMH trochę czasu do naładowania wymaga), dobrze jeśli masz ładowarkę na 8 ogniw bo jeśli nie to musisz czynność ładowania powtórzyć z drugą połówką zestawu, następnie włożyć do urządzenia. Jeśli akumulatory zdechną w połowie imprezy to masz ręczna zmianę polewającą.

Przy tym co proponujemy ja i @Leoneq co prawda akumulator wystarczy na dużo krócej (od 30 minut do godziny) - ale mówimy tu o pracy ciągłej, a pompka pracuje przez niecałe pół minuty przy 10 kieliszkach. Nawet przy 30 minutach starczy na 60 polań... powiedzmy że drugie tyle zeżre Arduino, serwo czy silnik i cała elektryka - niech będzie 30 polań. Musiałaby być dobra impreza, pół, litra na ucho (licząc razem z uchem środkowym)... A ładowanie tego ustrojstwa polega na podpięciu zwykłej ładowarki od telefonu czy dowolnego zasilacza 5V, po godzinie-dwóch masz akumulator nabity do pełna. Mało tego - zawsze w przypadku gdy zapomnisz go naładować możesz podłączyć w czasie imprezy do ładowarki (Li-Iony są dość odporne na częściowe naładowanie) i cieszyć się działającym urządzeniem. Mało tego - w ostateczności urządzenia nie trzeba odpinać od ładowarki aby polać kolejkę...

Przy czym uważaj: ja nie neguję tego, że Twoje urządzenie działa, że tak Ci jest wygodnie i tak chcesz. Po prostu widzę, że co najmniej jedna osoba (a może i więcej) chciałaby sobie coś podobnego zrobić, i w takim przypadku pchanie się w jakieś zestawy akumulatorów NiMH jest nieco bez sensu.

W sumie jeśli ktoś ma ładowarkę modelarską może zastosować np. pakiet 3S, wtedy od biedy można pompkę podłączyć bezpośrednio a napięcie regulować prostym PWM-em na jednym mosfecie. Możliwości jest mnóstwo, łącznie z pompką na 6V która nie wymaga takiej ekwilibrystyki 🙂

23 minuty temu, macizet napisał:

za 700-900 zł możesz spokojnie Ender 3 kupić

Chyba na Ali.

Za jakieś cztery stówki kupujesz modowaną Anetkę - na bacefuku na grupie Anety co jakiś czas są ogłoszenia o sprzedaży.

1 godzinę temu, SOYER napisał:

Kawa ma być czarna i bez cukru:) 

Dla mnie też  - ale dziewczyny mogą mieć inne zdanie 🙂

A tak w ogóle do syropków i tym podobnych lepsza jest chyba pompa perystaltyczna... przynajmniej wszyscy na czymś takim robią.

Link to post
Share on other sites
54 minuty temu, ethanak napisał:

A tak w ogóle do syropków i tym podobnych lepsza jest chyba pompa perystaltyczna... przynajmniej wszyscy na czymś takim robią.

Tak czytając ten temat przypomniał mi się film GreatScotta. Właśnie używa tu pompy perystaltyczne:

 

 

Link to post
Share on other sites

Byłem dzisiaj w punkcie zbiórki odpadów i takie cudo znalazłem. Do projektu jak znalazł:) 1586534631091620293589298969370.thumb.jpg.bbbdc19b2a2987fc6928ea17d4c73827.jpg

Stara waga kuchenna, widzę 4 tensometry i dwa czujniki dotykowe, ciekawe czy wszystko działa...

  • Lubię! 1
Link to post
Share on other sites
(edytowany)
Dnia 28.04.2020 o 23:01, Maruno napisał:

Podzieliłbyś się kodem do Arduino? Bo zajmuje się szczerze drukiem 3d, programowanie dla mnie to magia, a taki robocik w domu to na imprezy to złoto 😄

Było to dla mnie największe wyzwanie, po wielu próbach wyszło mi coś takiego:

#include <Servo.h>

Servo myservo;

#define kp 2
#define vp 3
#define czerwona 5
#define zielona 6
#define niebieska 4
#define start 7
#define Trig 8
#define Echo 9
#define serwo 10
#define bateria A0
#define potencjometr A2

int dystans;
long duration;
int a = 2;
int b = 5;
int pos = 0;
int odczytanaWartosc = 0;
int wartosc = 0;
int czasOpoznienia = 300;

void setup() 
{
  Serial.begin(9600);
  Serial.println("napięcie");
  myservo.attach(10);
  pinMode(kp, OUTPUT);
  pinMode(vp, OUTPUT);
  pinMode(czerwona, OUTPUT);
  pinMode(zielona, OUTPUT);
  pinMode(niebieska, OUTPUT);
  pinMode(start, INPUT_PULLUP);
  pinMode(Trig, OUTPUT);
  pinMode(Echo, INPUT); 
  pinMode(bateria, INPUT_PULLUP);
  pinMode(potencjometr, INPUT_PULLUP);
}

void loop()
{
int wartosc = analogRead(bateria);
byte poziom = (wartosc / 204.8)*2.4;
Serial.println(poziom);
delay(50);

if (poziom < 7)
{
  myservo.write(0);
  digitalWrite(niebieska, LOW);        
  digitalWrite(zielona, LOW);
  digitalWrite(czerwona, HIGH);
}
else
{
  myservo.write(0);
  digitalWrite(niebieska, LOW);        
  digitalWrite(zielona, HIGH);
  digitalWrite(czerwona,LOW);
  
if (digitalRead(start) == LOW){
{  
   myservo.write(14);
   digitalWrite(niebieska, LOW);        
   digitalWrite(zielona, HIGH);
   digitalWrite(czerwona,LOW);
   delay(czasOpoznienia);
   dystans = calculateDistance();
   if((dystans >=a) && (dystans <= b))
{
lanie();
}
   myservo.write(28);
   digitalWrite(niebieska, LOW);        
   digitalWrite(zielona, HIGH);
   digitalWrite(czerwona,LOW);
   delay(czasOpoznienia);
   dystans = calculateDistance();
   if((dystans >=a) && (dystans <= b))
{
lanie();
}
   myservo.write(45);
   digitalWrite(niebieska, LOW);        
   digitalWrite(zielona, HIGH);
   digitalWrite(czerwona,LOW);
   delay(czasOpoznienia);
   dystans = calculateDistance();
   if((dystans >=a) && (dystans <= b))
{
lanie();
}
   myservo.write(62);
   digitalWrite(niebieska, LOW);        
   digitalWrite(zielona, HIGH);
   digitalWrite(czerwona,LOW);
   delay(czasOpoznienia);
   dystans = calculateDistance();
   if((dystans >=a) && (dystans <= b))
{
lanie();
}
   myservo.write(80);
   digitalWrite(niebieska, LOW);        
   digitalWrite(zielona, HIGH);
   digitalWrite(czerwona,LOW);
   delay(czasOpoznienia);
   dystans = calculateDistance();
   if((dystans >=a) && (dystans <= b))
{
lanie();
}
   myservo.write(99);
   digitalWrite(niebieska, LOW);        
   digitalWrite(zielona, HIGH);
   digitalWrite(czerwona,LOW);
   delay(czasOpoznienia);
   dystans = calculateDistance();
   if((dystans >=a) && (dystans <= b))
{
lanie();
}
   myservo.write(120);
   digitalWrite(niebieska, LOW);        
   digitalWrite(zielona, HIGH);
   digitalWrite(czerwona,LOW);
   delay(czasOpoznienia);
   dystans = calculateDistance();
   if((dystans >=a) && (dystans <= b))
{
lanie();
}
   myservo.write(140);
   digitalWrite(niebieska, LOW);        
   digitalWrite(zielona, HIGH);
   digitalWrite(czerwona,LOW);
   delay(czasOpoznienia);
   dystans = calculateDistance();
   if((dystans >=a) && (dystans <= b))
{
lanie();
}
   myservo.write(158);
   digitalWrite(niebieska, LOW);        
   digitalWrite(zielona, HIGH);
   digitalWrite(czerwona,LOW);
   delay(czasOpoznienia);
   dystans = calculateDistance();
   if((dystans >=a) && (dystans <= b))
{
lanie();
}
   myservo.write(174);
   digitalWrite(niebieska, LOW);        
   digitalWrite(zielona, HIGH);
   digitalWrite(czerwona,LOW);
   delay(czasOpoznienia);
   dystans = calculateDistance();
   if((dystans >=a) && (dystans <= b))
{
lanie();
}
  for (pos = 180; pos >= 0; pos -= 1) {
    myservo.write(pos);
    delay(15);  
} 
}
    }
  }
} 
int calculateDistance(){ 
  
  digitalWrite(Trig, LOW); 
  delayMicroseconds(2);
  digitalWrite(Trig, HIGH); 
  delayMicroseconds(10);
  digitalWrite(Trig, LOW);
  duration = pulseIn(Echo, HIGH);
  dystans = duration / 58;
  return dystans;
}
void lanie ()
{
    odczytanaWartosc = analogRead(potencjometr);
    odczytanaWartosc = map(odczytanaWartosc, 0, 1023, 5, 30);
    digitalWrite(niebieska, HIGH);        
    digitalWrite(zielona, LOW);
    digitalWrite(czerwona,LOW);
    analogWrite(vp,200);
    digitalWrite(kp, 1);
    delay(100*odczytanaWartosc);
    analogWrite(vp,0);
    digitalWrite(kp, 0);
    digitalWrite(niebieska, HIGH);        
    digitalWrite(zielona, LOW);
    digitalWrite(czerwona,LOW);
    delay(500); 
}

 

Edytowano przez Gieneq
Zachęcam do używania bloku kodu
  • Pomogłeś! 1
Link to post
Share on other sites

Napisałeś że pojemność określasz potencjometrem ale co w przypadku gdy jeden z kieliszków ma mniejszą pojemność niż zakładana ?
Jak ustalić moment osiągnięcia  końca pojemności naczynia ?

Układ ultradzwiękowy identyfikuje tylko czy jest kieliszek ale nie określi wysokości kieliszka czy wysokości cieczy. 
Wysokość cieczy można by prawdopodobnie określać z odbicia powierzchni cieczy (test od góry) ale trudno wyłapać odbicie od brzegów kieliszka przed rozpoczęciem nalewania.  

Link to post
Share on other sites
8 godzin temu, Przemek1967 napisał:

Napisałeś że pojemność określasz potencjometrem ale co w przypadku gdy jeden z kieliszków ma mniejszą pojemność niż zakładana ?
Jak ustalić moment osiągnięcia  końca pojemności naczynia ?

Układ ultradzwiękowy identyfikuje tylko czy jest kieliszek ale nie określi wysokości kieliszka czy wysokości cieczy. 
Wysokość cieczy można by prawdopodobnie określać z odbicia powierzchni cieczy (test od góry) ale trudno wyłapać odbicie od brzegów kieliszka przed rozpoczęciem nalewania.  

Niestety po ustawieniu potencjometru leje do wszystkich kieliszków tak samo i nie rozróżnia pojemności kieliszka. Doświadczalnie ustaliłem zakres na potencjometrze od 10 do 50 ml.

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.