GithubHelp home page GithubHelp logo

scriptorron / hubblepi Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 83 KB

Turns a Raspeberry Pi camera in a remote controlled camera for astrophotography.

License: MIT License

Python 99.16% Batchfile 0.84%

hubblepi's Introduction

HubblePi

This software turns a Raspeberry Pi camera in a remote controlled camera for astrophotography. The typical application is to have a Raspberry Pi with HQ camera mounted on a telescope while the user controls the camera over the network. All controlls of the camera are available but the main focus is on long term exposures with full control of low level parameters (analog gain, shutter time) and getting raw image data. Other applications could be:

  • low light photography (for instance light emission microscopy),
  • time laps photography,
  • ...

The software package consists of:

  • A server script running on a Raspberry Pi (which has a camera). This script receives commands to control the camera. The Raspberry Pi can run headless.
  • A client software with GUI allowing the user to control the camera over TCP/IP.
  • A preview GUI for the captured raw images.
  • A command line tool to convert the raw images to FITS.

Raspberry Pi cameras V1 and HQ are supported, but the HQ camera is highly recommended because of its much better performance (higher sensitivity, lower noise, larger dynamic range, longer exposure times, higher resolution).

ATTENTION:

The camera server script does not use any authentication to protect against intruders. Use the server script behind a firewall or in an isolated network!

Installation

On Raspberry Pi

  1. enable camera interface sudo raspi-config goto "Interface Options" and enable "Legacy Camera", reboot
  2. install python3, python3-numpy and python3-pip on your Raspberry Pi:
    sudo apt-get install python3 python3-numpy python3-pip
    
  3. copy folder HubblePi_Camera to your raspberry Pi
  4. install required Python libraries on your Raspberry Pi:
    cd HubblePi_Camera
    pip install -r requirements.txt
    

On Client Computer

Development Environment

You will need this setup when you want to

  • change the source code or
  • compile the code by yourself or
  • execute the latest Python source code.

I use the Miniconda distribution on 64bit Windows (https://docs.conda.io/en/latest/miniconda.html) because it makes less trouble with incompatible packages. Any other Python3 installation will likely also work but needs installation commands to be modified.

Do the following steps:

  1. Install Miniconda.
  2. Setup an isolated environment HubblePi and install required libraries:
    conda env create -f environment.yml
    
    (Conda will ask if you want to proceed installation. Answer with "y".)
  3. Change to HubblePi environment (if not already done) with conda activate HubblePi and install HubblePi library:
    pip install -e .
    

After that you have will have the HubblePi_Capture, HubblePi_Viewer and HubblePi_RPi2Fits commands available in the HubblePi environment.

Precompiled Software

TODO

Usage

  1. Remote login on your Raspberry Pi and start the camera server:
cd HubblePi
python3 HubblePi_Camera.py -v debug
  1. Start HubblePi_Capture on your client computer, connect to your Raspberry Pi (you will need its network name for that), adjust camera settings and take pictures.

Please see Wiki for further documentation.

hubblepi's People

Contributors

scriptorron avatar

Stargazers

Karl von Muller avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.