WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A DIY autonomous home robot built on a Roomba 694, with a Raspberry Pi 4 brain, an Arduino Mega 2560 bridge, an RPLIDAR C1, a Pi camera and ROS 2 Jazzy, plus this web dashboard.
Live dashboard (demo mode for visitors): https://roomba-dashboard.vercel.app
I bought a secondhand Roomba 694 in August with one idea: turn a dumb vacuum into a robot that maps my place and cleans on its own, run from a dashboard I built myself. I named her Stella.README 전문 보기 ↗A DIY autonomous home robot built on a Roomba 694, with a Raspberry Pi 4 brain, an Arduino Mega 2560 bridge, an RPLIDAR C1, a Pi camera and ROS 2 Jazzy, plus this web dashboard.
Live dashboard (demo mode for visitors): https://roomba-dashboard.vercel.app
| Path | What it is |
|---|---|
web/ | Next.js dashboard. Install, dev, build, and tests all run here. |
data/ | Rooms, doors, cleaning sessions, learning notes, no-go zones, and saved routes the dashboard reads. |
docs/ | How the dashboard and the live link fit together. |
Raw sensor recordings and video stay out of git (data/recordings/, data/video/). Robot build notes live in ARK, not in this repo.
Read it top to bottom. You and the web are at the top, the Pi is the brain in the middle, the Roomba and its sensors are the body at the bottom. Your phone talks straight to the Pi through Tailscale, so the website is only the page you load.
When you say "Stella, play The Sandman on Netflix": the mic hears you, the voice part catches the wake word, the AI router picks the TV action, Roku control plays it, and Stella speaks back.
The detailed version, with the voice path, power chain and wake wire: docs/img/stella-system-detailed.svg.
I bought a secondhand Roomba 694 in August with one idea: turn a dumb vacuum into a robot that maps my place and cleans on its own, run from a dashboard I built myself. I named her Stella.
August to September: the cable hunt. The plan was simple. Talk to the Roomba over its serial port (iRobot's Open Interface) from an Arduino, then hand that to a Raspberry Pi running ROS 2. The first cable I bought was an 8-pin mini-DIN. It "kind of fit" the Roomba's 7-pin port, and it never lined up TX and RX. I burned a lot of evenings on wire-guessing, test sketches and fake wins before the right 7-pin cable showed up.
The board that wouldn't talk. With the right cable in hand, the original board still gave me nothing. Power and ground were fine, but its serial pins sat at 0 V. My 694 has the newer Wi-Fi board, and that board's firmware blocked the serial port (the Open Interface). So on September 23 I ordered a used 600-series mainboard off eBay for about $22.
September 29: the breakthrough. The new board arrived, and that day it all came together. I traced every wire with a multimeter, got two-way serial at 115200 baud, and drove the Roomba forward, back and in both spins from my own code. By that night it was streaming sensors, driving under ROS 2 with keyboard teleop, the RPLIDAR C1 was publishing laser scans, and the dashboard's Manual Drive pad was moving the real robot.
October 11: the Pi died. I'd been running the Pi off a laptop's USB port and then a cheap power bank. Neither could deliver the ~3 A a Pi 4 needs. It sat under-voltage and throttling at 85 °C, and after one power swap too many it stopped booting. The Mega and the lidar survived. A new Pi 4 is on order, and this time it gets proper power and a fan from day one.
Ground rule: make it work before making it pretty.
| Part | Role | Result |
|---|---|---|
| Roomba 694 + original Li-ion pack (14.4 V nominal) | Body, wheels, built-in sensors | ✅ Works |
| Original Roomba 694 mainboard (Wi-Fi model) | Roomba controller | ❌ Firmware blocked the serial port (Open Interface). Replaced |
| Used 600-series mainboard (fits 670–694) | Replacement controller | ✅ Serial works, Clean works |
| 8-pin mini-DIN cable | Serial cable (first try) | ❌ Wrong connector. TX/RX never lined up |
| 7-pin mini-DIN cable (Adafruit #2438) | Serial cable | ✅ Cut, traced and wired |
| Arduino Mega 2560 | USB serial bridge to the Roomba | ✅ Works |
| Raspberry Pi 4 4GB (first one) | Brain: Ubuntu Server 24.04, ROS 2 Jazzy | ❌ Died from weak power and heat |
| Raspberry Pi 4 4GB (replacement kit) | Brain | Ordered |
| RPLIDAR C1 + USB adapter | 2D lidar for mapping | ✅ Scans at ~10 Hz. Not mounted yet |
| Pi Camera Module | Camera | On hand, not set up yet |
| MPU6050 (GY-521 / Elegoo shield) | Gyro/accel for heading | On hand |
| LM2596 buck converters (3 A rated) | 5 V power | ⚠️ Too weak for the Pi. Small extras only |
| XH-M609 low-voltage cutoff | Battery protection (~12.8 V) | On hand |
| Cheap USB power bank / laptop USB | Pi power during testing | ❌ Under-voltage. Never again |
vcgencmd get_throttled should read 0x0. Anything else means power or heat trouble.create_robot driver + rplidar_ros → a small FastAPI service → this dashboard over a private network./map), with no-go zones and route editing./camera) feed view./history) of cleaning sessions./learning): a queue for verifying objects./settings) and owner sign-in (/login). Only the owner can control the real robot. Everyone else sees demo mode.cd web
npm install
cp .env.example .env.local
npm run dev
Scripts (run from web/):
| Command | What it does |
|---|---|
npm run dev | Dev server |
npm run build | Production build |
npm run start | Serve the production build |
npm run lint | ESLint |
npm test | Unit tests |
In web/, copy .env.example to .env.local and fill in your own values. Never commit real values.
ROBOT_URL: the robot API origin (server-only). Leave it unset for demo mode.OWNER_EMAIL: the one account allowed to control the robot.NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY: needed for owner sign-in.More detail on the data flow and the robot API contract: docs/ARCHITECTURE.md.