odd-pi

Object Detection over Discord using the Raspberry PI

See Documentation for more details

stateDiagram-v2
    [*] --> DiscordServer: "Take Pic"
    DiscordServer --> DiscordAPI: Bot Listens
    DiscordAPI --> HomeServer: Coroutine Begins
    HomeServer --> LocalNetwork: raspistill
    LocalNetwork --> Pi: raspistill
    state Pi {
        [*] --> Camera
    }
    Pi --> LocalNetwork: pic.png
    LocalNetwork --> HomeServer: pic.png
    HomeServer --> DiscordAPI: Coroutine Ends
    DiscordAPI --> DiscordServer: Image Posted
    DiscordServer --> [*]: User Notified

Quickstart

  • Setup Raspberry Pi with Camera and allow SSH
  • On a different machine:
    • git clone https://github.com/jvivian/odd-pi && cd odd-pi && pip install ./
    • Set required env variables in .env file
    • python scripts/launch_discord_bot.py run_discord_bot --help
  • Run an active camera at given interval which looks for a specified object and posts it to Discord
  • Type pi! (or given keyword) in any channel to get a picture taken
  • Type yolo! (or keyword) to have a picture with predictions overlayed

Roadmap

  • Add CLI to launch script
    • camera commands, etc,
  • Add critical CCC: Cat Camera Coroutine
    • Make extensible to any class \(C\) object, time duration, etc
  • Avoid camera conflicts by making file names unique (or just deleting)
  • Add console-script on install