Sabtu, 27 September 2025

tempat sampah buka-tutup otomatis (ukuran agak besar)

 



1 — Komponen (what to buy / use)

Komponen yang sudah kamu punya

  • Arduino Uno (sudah)

  • Sensor ultrasonik HC-SR04 (sudah)

  • Servo (sudah) — catatan: tipe servo kecil (SG90) mungkin tidak kuat untuk tutup besar. Baca bagian mekanik & upgrade.

Komponen yang disarankan (wajib/kuatkan proyek)

  • Servo torsi tinggi (rekomendasi: MG996R, MG995, atau metal-gear high-torque) — jika tutup besar pakai ini.

  • Power supply portable: 1 × baterai lithium 18650 (3400 mAh) + modul proteksi / holder, atau power bank kecil.

  • Modul pengisian LiPo via panel surya: Adafruit Solar LiPo Charger (atau modul solar charger berbasis CN3065 / MT3608+TP4056 + regulator stabil) — jangan sambungkan panel langsung ke TP4056 tanpa regulator solar charger.

  • Step-up booster 5V (mis. MT3608 atau modul boost) jika baterai 3.7V dibutuhkan menjadi 5V untuk Arduino + servo.

  • Diode blokade (mis. Schottky) dan fuse (opsional) untuk keamanan.

  • Kabel power terpisah (servo harus punya sumber 5V terpisah atau sangat stabil).

  • Struktur bin: papan kayu/ acrylic / kotak plastik ukuran yang kamu mau; engsel kuat; poros/lever; baut; karet peredam.

  • Baut/rod/lever untuk menghubungkan servo ke tutup; atau link arm 3D printed.

Saran alternatif mekanik

  • Untuk tutup lebih besar: gunakan servo torsi tinggi atau motor DC dengan gearbox + limit switches dan H-bridge. Tapi tetap pakai servo jika lid ringan atau dengan counterweight.


2 — Desain mekanik singkat (cara supaya tutup bin agak besar masih bisa dibuka oleh servo kecil)

  1. Pakai lever arm pendek pada servo (mis. 2–3 cm) yang mengurangi stroke tapi meningkatkan torsi di poros tutup jika dipasangkan dengan rasio tuas.

  2. Tambah counterweight di sisi lain tutup sehingga servo hanya mengatasi sebagian beban (kurangi beban vertikal).

  3. Gunakan engsel bearing yang halus (kurangi gesekan).

  4. Jika servo kecil tetap tidak cukup: ganti ke MG996R (torque ~9 kg·cm) atau gunakan gearbox.

  5. Pastikan pemasangan servo ke kotak kokoh (plat aluminium atau printed mount). Pakai penguat di titik sambungan.


3 — Skematik wiring sederhana

Asumsi: Arduino Uno, HC-SR04, 1 servo, baterai 3.7V + boost ke 5V.

[BATTERY 3.7V] --> [Solar Charger Module] --> [Battery pack]
Battery pack --> [Boost converter 5V] --> +5V rail
+5V rail --> VIN (atau 5V pin on Arduino)  (lebih aman: ke 5V pin jika regulator sudah dipakai)
GND (common) --> Arduino GND

HC-SR04:
VCC --> +5V
GND --> GND
Trig --> Arduino digital pin 9
Echo --> Arduino digital pin 8

Servo:
VCC (red) --> +5V rail (jangan sambungkan servo langsung ke 5V dari Arduino USB)
GND (brown) --> GND
Signal (orange) --> Arduino digital pin 10

(Opsional) Push-button for manual open close --> Arduino digital pin 7 (pull-down or use INPUT_PULLUP)

Catatan penting listrik

  • Pastikan GND semua modul di-common-kan (battery, boost, Arduino, servo).

  • Servo dapat menyebabkan spike — gunakan capacitor (1000 µF) di +5V dekat servo untuk menstabilkan tegangan.

  • Jika servo menarik arus besar, pertimbangkan supply terpisah untuk servo (tetap common GND).


4 — Kode Arduino (siap upload)

Kode ini menggunakan HC-SR04 untuk mendeteksi objek/hand, membuka tutup dengan servo, dan menutup kembali setelah delay. Juga menggunakan attach/detach servo supaya mengurangi konsumsi sedikit.

#include <Servo.h>

#define TRIG_PIN 9
#define ECHO_PIN 8
#define SERVO_PIN 10
#define MANUAL_BTN 7  // optional

Servo lidServo;

// tunable parameters
const int OPEN_ANGLE = 85;      // sudut buka (ubah sesuai rig)
const int CLOSED_ANGLE = 10;    // sudut tutup
const unsigned long KEEP_OPEN_MS = 3000; // berapa lama terbuka setelah mendeteksi (ms)
const long DIST_THRESHOLD_CM = 20; // jarak trigger (cm)

unsigned long lastOpenTime = 0;
bool isOpen = false;

void setup() {
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  pinMode(MANUAL_BTN, INPUT_PULLUP); // optional: tombol ground saat ditekan

  lidServo.attach(SERVO_PIN);
  lidServo.write(CLOSED_ANGLE);
  delay(500);
  lidServo.detach(); // detach to reduce current draw when idle
}

long readDistanceCM() {
  // send pulse
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);

  long duration = pulseIn(ECHO_PIN, HIGH, 30000); // timeout 30ms
  if (duration == 0) return 9999; // no echo

  long distanceCm = duration / 58; // speed of sound conversion
  return distanceCm;
}

void openLid() {
  lidServo.attach(SERVO_PIN);
  for (int a = CLOSED_ANGLE; a <= OPEN_ANGLE; a += 3) {
    lidServo.write(a);
    delay(20);
  }
  lastOpenTime = millis();
  isOpen = true;
  lidServo.detach();
}

void closeLid() {
  lidServo.attach(SERVO_PIN);
  for (int a = OPEN_ANGLE; a >= CLOSED_ANGLE; a -= 3) {
    lidServo.write(a);
    delay(20);
  }
  isOpen = false;
  lidServo.detach();
}

void loop() {
  // manual override button (active LOW)
  if (digitalRead(MANUAL_BTN) == LOW) {
    openLid();
    delay(200);
  }

  long dist = readDistanceCM();
  // Serial.println(dist);

  if (!isOpen && dist <= DIST_THRESHOLD_CM) {
    openLid();
  }

  if (isOpen && (millis() - lastOpenTime > KEEP_OPEN_MS)) {
    closeLid();
  }

  delay(150); // main loop delay
}

Catatan kode

  • Ubah OPEN_ANGLE, CLOSED_ANGLE, dan DIST_THRESHOLD_CM sesuai jarak/rig kamu.

  • Servo attach/detach mengurangi konsumsi saat idle.

  • Jika kamu tambahkan LED indikator atau buzzer, beri pin dan logika tambahan.


5 — Perhitungan baterai & panel surya (langkah demi langkah)

Aku jelaskan asumsi & perhitungan digit-per-digit supaya jelas.

Asumsi konsumsi:

  • Arduino Uno: 50 mA @ 5 V.
    Power = V × I = 5 × 0.05 = 0.25 W.
    Energi per hari = 0.25 W × 24 h = 6 Wh.

  • HC-SR04: 15 mA @5 V.
    Power = 5 × 0.015 = 0.075 W.
    Energi per hari = 0.075 W × 24 h = 1.8 Wh.

  • Servo (rata-rata, puncak saat bergerak): 500 mA @5 V saat bergerak.
    Power = 5 × 0.5 = 2.5 W.
    Waktu bergerak per cycle kira-kira 4 detik (buka + tutup).
    Waktu per cycle dalam jam = 4 s / 3600 = 0.001111... h.
    Energi per cycle = 2.5 W × 0.001111... h = 0.002777... Wh.
    Jika 50 cycle/hari → energi servo = 0.002777... × 50 = 0.138888... Wh ≈ 0.14 Wh.

Total energi sehari (belum efisiensi):

  • Arduino 6 Wh

  • HC-SR04 1.8 Wh

  • Servo 0.14 Wh
    Total = 6 + 1.8 + 0.14 = 7.94 Wh ≈ 8 Wh per hari

Tambahkan margin & kerugian (konverter, charger inefficiency)
Ambil faktor keamanan/kerugian 40%:
Energi yang perlu disediakan = 8 Wh × 1.4 = 11.2 Wh → bulatkan ke 12 Wh per hari.

Konversi kapasitas baterai (mAh)
Jika pakai baterai 3.7 V (typical Li-ion 18650):
mAh = (Wh / V) × 1000
= (12 Wh / 3.7 V) × 1000
= 3.243243... × 1000 mAh ≈ 3243 mAh

→ Jadi 1 × 18650 3400 mAh (nilai komersial ~3300–3500 mAh) cukup untuk beban ini sehari (dengan asumsi manajemen charging yang baik). Untuk cadangan cuaca buruk, pakai 2 × 18650 di parallel.

Panel surya sizing
Asumsi Peak Sun Hours ≈ 4 jam/hari (Indonesia bagus, pakai 3–5; aku pakai 4).
Asumsi sistem efisiensi = 70% (kerugian charger, kabel, dll).
Panel watt yang diperlukan = Energi harian / (sun hours × efisiensi)
= 12 Wh / (4 h × 0.7)
= 12 / 2.8
= 4.2857 W

→ Pilih panel komersial sedikit lebih besar: 6 W – 10 W panel (misal panel 6W atau 10W 6V) + solar charger yang sesuai.

Ringkasan rekomendasi listrik

  • Battery: minimum 1 × 18650 ~3400 mAh (lebih baik 2 in parallel untuk redundancy).

  • Solar panel: pilih 6W atau 10W untuk charge handal.

  • Solar charge controller: gunakan modul charger khusus LiPo/solar (contoh: Adafruit Solar LiPo Charger) + step-up 5V untuk Arduino.


6 — Tips untuk kestabilan & keamanan

  • Jangan tarik power servo dari Arduino 5V regulator (Uno onboard) — gunakan supply 5V terpisah/boost.

  • Tambah capacitor elektrolitik 1000 µF di dekat servo power untuk meredam drop tegangan.

  • Gunakan fuse 1A pada jalur +5V sebagai proteksi.

  • Gunakan modul charger yang dirancang untuk panel surya (mengatasi variasi tegangan panel).

  • Pertimbangkan sensor tambahan (limit switch) untuk mengetahui posisi tutup jika memakai motor DC.


7 — Struktur file README / isi ZIP (copy-paste-ready)

# Tempat Sampah Otomatis (Arduino + Solar)
Proyek: Tempat sampah buka-tutup otomatis menggunakan Arduino Uno, HC-SR04, servo, dan tenaga surya (panel + baterai).

## Fitur
- Otomatis membuka tutup saat ada objek/hand pada jarak tertentu.
- Menutup otomatis setelah delay.
- Ditenagai oleh baterai Li-ion yang di-charge oleh panel surya.
- Mekanik diperkuat untuk ukuran bin yang agak besar (gunakan servo torsi tinggi dan counterweight).

## Komponen
- Arduino Uno
- HC-SR04 ultrasonic
- Servo torsi tinggi (rekom: MG996R)
- 18650 Li-ion 3400 mAh + holder + protection
- Solar panel 6W - 10W
- Solar LiPo charger (Adafruit Solar Charger atau setara)
- Boost converter 5V
- Kapasitor 1000µF, diode, fuse
- Kabel, baut, engsel, plat mounting

## Wiring
(Lihat file wiring.txt atau diagram pada folder)

## Code
File: `trash_bin.ino` (kode utama Arduino)

## Mekanik
Panduan mounting, lever arm, dan counterweight. (Lihat folder mechanical/)

## Perhitungan daya
Asumsi & perhitungan dimasukkan di docs/power_calc.txt

## Cara Pakai
1. Pasang sensor di bibir tutup, pastikan sudut tidak memantul ke lantai.
2. Hubungkan power sesuai wiring.
3. Upload `trash_bin.ino` ke Arduino.
4. Letakkan panel di lokasi terkena sinar matahari.

## Catatan keamanan
- Jangan sambungkan panel langsung ke TP4056 tanpa solar charger.
- Pastikan semua koneksi rapi dan ada fuse.

## Lisensi
MIT

8 — Opsional: upgrade & fitur tambahan (ide)

  • Mode hemat daya: gunakan Arduino Pro Mini 3.3V (lebih rendah draw) dan deep sleep — untuk mengurangi ukuran battery.

  • Tambah LED indikator baterai dan pengukur voltase (voltage divider + ADC).

  • Tambah sensor cahaya LDR untuk hanya aktif di siang/malam tertentu.

  • Tambah Wi-Fi (ESP32) untuk monitoring status baterai & log buka/tutup.



Minggu, 21 September 2025

🗿

 

Dr. Prof. Panglima Teori Palesyyyy, PhD (imaginer)
“Jika pqp \Rightarrow q, dan aku mengetahui rumus konkrit quantum-ledakan-atom-hiperbolik dalam skala tak-ber-nalar, maka dengan peningkatan 50% reaktivitas kita akan memasuki rezim meta-superposisi di mana planet akan ‘melengkapi dirinya menjadi tidak-planet’.”

Rumus (fiksi, jangan dipakai di dunia nyata):

ChaosIndex=(Qϕ×πabsurd)eNonsenseFactor×(1+0.50)\text{ChaosIndex} = \frac{(Q_\phi \times \pi_{\text{absurd}})^{\sqrt{e}}}{\text{NonsenseFactor}} \times (1 + 0.50)

Di mana:

  • QϕQ_\phi = jumlah kuantum imaginari yang hanya ada di kafe jam 3 pagi;

  • πabsurd\pi_{\text{absurd}} = konstanta yang berubah setiap kali kamu menertawakan persamaan;

  • NonsenseFactor\text{NonsenseFactor} = jumlah meme yang diperlukan untuk menetralkan efeknya.

Hasilnya? Jika ChaosIndex>TingkatKepalsuan\text{ChaosIndex} > \text{TingkatKepalsuan}, planet akan mengeluh — bukan meledak. Terapkan topi lab dan kopi ekstra. 🧪☕🗿



Selasa, 16 September 2025

Mengulang Dan Bernostalgia - (Ayo Belajar Geometri)

 

Apa Itu Geometri?

Geometri berasal dari bahasa Yunani, "geo" yang berarti "bumi" dan "metron" yang berarti "pengukuran." Jadi, secara harfiah, geometri adalah ilmu yang mempelajari pengukuran bumi. Tapi dalam konteks matematika, geometri adalah cabang yang mengkaji bentuk, ukuran, posisi relatif objek, dan sifat-sifat ruang.

Geometri mencakup banyak konsep, dari yang paling sederhana hingga yang paling kompleks. Di sini, kita akan fokus pada beberapa konsep utama yang akan menjadi fondasi yang kuat untukmu.

Titik, Garis, dan Bidang

Ini adalah tiga elemen dasar dalam geometri. Kita bisa membayangkannya sebagai "atom" dari semua bentuk geometris.

  • Titik: Titik tidak memiliki ukuran atau dimensi. Ia hanya menunjukkan lokasi. Kita sering melambangkan titik dengan huruf kapital, seperti titik A atau titik B.
  • Garis: Garis adalah kumpulan titik-titik yang terbentang lurus tak terbatas di kedua arah. Garis tidak memiliki ketebalan.

Gambar a line in geometry

Kita bisa menamai garis dengan dua titik yang ada di atasnya, seperti garis AB, atau dengan huruf kecil, seperti garis l.

  • Bidang: Bidang adalah permukaan datar dua dimensi yang terbentang tak terbatas. Ia memiliki panjang dan lebar, tetapi tidak memiliki ketebalan. Kita bisa menamai bidang dengan tiga titik yang tidak segaris (non-kolinear), seperti bidang ABC, atau dengan huruf Yunani, seperti bidang π.

Bangun Datar dan Bangun Ruang

Geometri juga dibagi menjadi dua kategori besar: bangun datar dan bangun ruang.

  • Bangun Datar (Geometri Dua Dimensi): Ini adalah objek yang berada di satu bidang. Mereka hanya memiliki panjang dan lebar. Contohnya termasuk segitiga, persegi, lingkaran, dan jajaran genjang.
  • Bangun Ruang (Geometri Tiga Dimensi): Ini adalah objek yang memiliki volume dan berada di ruang. Mereka memiliki panjang, lebar, dan tinggi. Contohnya termasuk kubus, balok, bola, dan limas.

Gambar a cube, cone and sphere



Konsep Penting dalam Geometri

1. Sudut

Sudut terbentuk ketika dua garis atau sinar bertemu di satu titik (verteks). Ukuran sudut diukur dalam derajat atau radian.

Jenis-jenis sudut termasuk:

  • Sudut Lancip: Ukurannya kurang dari 90∘.
  • Sudut Siku-siku: Ukurannya tepat 90∘.
  • Sudut Tumpul: Ukurannya lebih dari 90∘ tetapi kurang dari 180∘.
  • Sudut Lurus: Ukurannya tepat 180∘.

2. Teorema Pythagoras

Ini adalah salah satu teorema paling terkenal dalam matematika, dan sangat penting dalam geometri. Teorema ini hanya berlaku untuk segitiga siku-siku. Teorema ini menyatakan bahwa kuadrat dari sisi miring (hipotenusa) sama dengan jumlah kuadrat dari dua sisi lainnya. Secara matematis, jika sisi-sisi segitiga adalah a, b, dan c (di mana c adalah sisi miring), maka:

a2+b2=c2

3. Luas dan Volume

  • Luas: Luas adalah ukuran permukaan dua dimensi. Setiap bangun datar memiliki rumus luasnya sendiri. Misalnya, luas persegi panjang adalah panjang kali lebar (L=p×l), dan luas segitiga adalah setengah alas kali tinggi (L=21​×alas×tinggi).
  • Volume: Volume adalah ukuran ruang yang ditempati oleh suatu objek tiga dimensi. Misalnya, volume kubus adalah sisi kali sisi kali sisi (V=s3), dan volume bola adalah 34​πr3.

kita bisa langsung praktik menghitung! Mari kita fokus pada cara menghitung keliling, luas, dan volume untuk beberapa bangun yang paling umum.


1. Menghitung Luas dan Keliling Bangun Datar

Persegi

Persegi adalah bangun datar dengan empat sisi yang sama panjang.

  • Keliling: Jumlahkan panjang keempat sisinya.

    Keliling=s+s+s+s=4×s

    di mana s adalah panjang sisi.
  • Luas: Kalikan panjang sisi dengan sisi.

    Luas=s×s=s2

Contoh: Sebuah persegi memiliki sisi sepanjang 5 cm.

  • Kelilingnya adalah 4×5 cm=20 cm.
  • Luasnya adalah 52=25 cm2.

Persegi Panjang

Persegi panjang memiliki dua pasang sisi yang sama panjang (panjang dan lebar).

  • Keliling: Jumlahkan panjang keempat sisinya.

    Keliling=p+l+p+l=2×(p+l)

    di mana p adalah panjang dan l adalah lebar.
  • Luas: Kalikan panjang dengan lebar.

    Luas=p×l

Contoh: Sebuah persegi panjang memiliki panjang 8 m dan lebar 3 m.

  • Kelilingnya adalah 2×(8+3) m=2×11 m=22 m.
  • Luasnya adalah 8×3=24 m2.

Lingkaran

Lingkaran adalah bentuk melingkar yang tidak memiliki sudut. Untuk lingkaran, kita menggunakan jari-jari (r) atau diameter (d) dan konstanta π (Pi). Nilai π kira-kira 3.14 atau 722​.

  • Keliling (disebut juga "circumference"):

    Keliling=2×π×ratauπ×d
  • Luas:

    Luas=π×r2

Contoh: Sebuah lingkaran memiliki jari-jari 7 cm.

  • Kelilingnya adalah 2×722​×7 cm=44 cm.
  • Luasnya adalah 722​×72=722​×49=22×7=154 cm2.

2. Menghitung Volume Bangun Ruang

Kubus

Kubus adalah bangun ruang dengan enam sisi berbentuk persegi yang sama.

  • Volume: Kalikan panjang sisi, lebar sisi, dan tinggi sisi (semuanya sama).

    Volume=s×s×s=s3

Contoh: Sebuah kubus memiliki sisi 4 m.

  • Volumenya adalah 43=64 m3.

Balok

Balok adalah bangun ruang tiga dimensi dengan panjang, lebar, dan tinggi yang berbeda.

  • Volume: Kalikan panjang, lebar, dan tinggi.

    Volume=p×l×t

Contoh: Sebuah balok memiliki panjang 10 cm, lebar 4 cm, dan tinggi 5 cm.

  • Volumenya adalah 10×4×5=200 cm3.

Bola

Bola adalah bangun ruang melingkar yang sempurna.

  • Volume:

    Volume=34​×π×r3

Contoh: Sebuah bola memiliki jari-jari 3 cm.

  • Volumenya adalah 34​×3.14×33=34​×3.14×27=4×3.14×9=113.04 cm3.