*** UNDER CONSTRUCTION ***
Telescope position sensing
Much of the information below was found here
The first step to controlling the direction of the telescope (actually, the direction of the OTA - Optical Tube Assembly) using a computer is to provide a means for the computer to determin the 'start' position
Telescopes with GoTo's have to be setup. Older systems even had to be 'told' the date/time and latitude and whilst more modern units now have a built in GPS they still have to 'start off' with the mount and OTA 'pointing' North. In order to detect (and thus compensate for) a not-totally-flat mount, most GoTo's perform a 2 or 3 star initial alignment. With obstacles (such as your house) 'getting in the way' of commonly selected stars, alignment can be such a long and complicated process that you are discouraged from taking the telescope out at all, especially on partially cloudy nights when the GoTo chooses a succession of non-visible stars to align on. Of course those with Dobsonian mounts have no 'set up' to do, but then they have no GoTo either
Once the computer discovers (otr is told) the 'start position' most motorised systems just 'assume' the current position by 'adding up all the motor moves' - and so long as there is no 'slippage' (and the actual motor move (rather than the command) is measured) this method works fine. Where it doesn't work, of cousre, is when any movement is made manually - i.e. on a Dobsonian 'push to' system. For a Dobsonian, 'detect the start position' becomes 'detect the current'
As a Dobsonian user, what I would really like is some sort of computer assisted 'push to' .. and here is where the Raspberry Pi comes in !
So first I need some method of identifying the 'target' to the Pi. Next, before the Pi can 'guide' me to the target star / planet etc. it has to 'know' where the OTA (Optical Tube Assembly) is (currently) 'pointed'. The finally the Pi must have some way of insructing me, the user' of where to 'push' the OTA i.e. move the tube up/down and left/right, whilst measuring the direction it's pointed, until the desired target object is (or should be) in the field of view.
Detecting the direction breaks down into twp parts = detecting the Azimuth (Compass direction) and the Altitude (elevation) of the OTA.
The compass 'heading' (NSEW) can be taken directly from the base of the mount, whilst the 'angle of elevation' has to be taken from the OTA itself. A GPS chip will give you the Compass 'heading', as well as your current location (to within a few hundred meters) andf the exact time of day - all thigs the Pi needs to know if it's to calculate where the 'target' is positioned in the sky, however a GPS chip can be costly. The cheaper option is a Digital Compass Note that many 'direction determination systems' are based on 'gyro compass' principle - i.e. they measure the acceleration, multiply by time to get velocity and integrate the velocity to get position. Whilst such systems can 'work' almost all suffer from gradual drift over time (especially when small abrupt changes are made). The only really accurate systems are those based on measuring the Earths magnetic field - which doesn't drift (but can be influenced by nearby metal (especially iron (steel)) objects = like telescope tubes and tipod legs :-) )
A Digital Compass
A common magnetometer (digital compass) used with the Raspberry Pi is the I2C interfaced HMC5883L module. Note that for true accuracy it does need calibrating = see here) - and that true north is varies from magnetic north in most areas of the world.
In fact, to determine the absolute direction can be a real pain - any metallic objects (such as telescope tube, tripod legs etc) would also have to be 'calibrated out'. However, all we have is some way of 'telling' the Pi when the OTA is pointed at Polaris and then it's 'calibration done' On second and subsequent use, so long as nothing 'magnetic' has chnaged, the Pi can just reuse the settings from the first 'calibration'
HMC5883L module details
The HMC5883L incorporates a 12bit ADC that delivers between 1 and 2 degrees compass heading accuracy "even within a strong magnetic field". The HMC5883L can be found on the 'GY-80' board (about £2.50 on eBaqy)
Pi pin HMC5883L 1 3V3 VCC 6 Ground GND 3 SDA SDA 5 SCL SCL
Like 'heading' most 'inclination' systems are based on adding up changes, which are discovered by using the output of a gyro / accelerometer aka Inertial Measurement Unit or IMU. Whilst various techniques are used, the most comon is to 'sense' gravity. This means they can 'double up' as inclinometers
Measuring the angle of the Earths magnetic field is also possible, but somewhat harder to do (with any accuracy) than measuring the direction (which makes sensors based on this technique absurdly expensive) - sensor units (such as Murata/VTI SCA103t-D04 Inclinometer sensor) cost upwatds of £30 on AliExpress ! Howewver we don't need some fancy dual/3 axis system == all we want is simple single axis inclunationIt seems that to measure vertical angle we will have to build our own 'lnclinometer'. A 'gravity inclinometer' (plumb-bob) could be built using a rotary encoder / potentiometer, however the mechanics put me off (from example, getting the damping righ to minimise overshoot whlst ensuring a fast response would be a matter of trial and error) A rather simpler alternative to attach a potentiometer to the axis of the OTA (a physical wheel connection can be avoid by using a 'MagnetoPot' - which works with a magnet attached to the axis) If a phyiscal 'wheel' is used, it can be geared to a 5 (or, better, 10) turn potentiometer to improve the accuracy. All we then need is a 'simple' A-D converter (at the Pi) to measure the 'absolute' resistance. To calibrate the measurement system, the OTA has to be moved through some 'absolute angle' whilst the resistance is measured (for example, from 'upright' to 'flat', using a spirit level, to get 90 degrees) Alignment 'calibration' is taken care of by 'pointing at Polaris' (the 'Polaris resistance value' will always be the same on subsequent use, assuming the Dodsonian base is then always 'flat')
For more on attaching sensors to a Dobsonian OTA, see my PIC Push-To project page
Plate-solving - or Astrometry - is the art of identifying the stars (i.e. 'where the telescope is pointed') from the image.
The goal is, of course, to allow (or command) the telescope to a new (wanted) position based on it's current arbitrary (unknown) position. To do this, it's necessary to work out where the OTA is currently 'pointing'Whilst 'in theory' plate solving 'does away with' the need for any initial calibration or 'finding North', unless the RA (Polar) axis of an EQ mount is actually North aligned you will get field rotation. Of course this is not a problem for visual observing, however it does complicate things for DSO imaging You can find lots of information on the Farnham AS site Astrometry on the Raspberry Pi using the astrometry.net software. For some alternative software see :- Unimap (pre alpha) Elbrus (beta - 10 May 2005) Note that 'real time' plate solving is still a long way off - it seems the 'best' you can expect is some 30-90 seconds on the Pi B2. The B3 might be almost twice as fast (especially for software able to use all 4 cores), however until plate solving software able to use the GPU is developed the best we can hope for is 'less than a minute'. However a minute of two 'set up' time would not be unacceptable - after which some other means of 'detecting' where the OTA has been moved to point will be needed
Plate solving is thus a good way to 'set up' a Dobsonian, after which other means will be needed to 'track' it's new position.
Position sensing (movement)
Simple movement sensors only get you so far, as all suffer from some degree of 'backlash' which will impair accuracyThe 'problem' is that once the 'target' star appears in the field of view, the suer will move the OTA back and forth in small increments in an effort to keep the target in the center of the field. Any backlash at all means that errors start to accumulate as the 'back and forth' movement goes on.
One 'solution' to the backlash problem is to provide the user with a push button (or other means) of telling the system when the 'target star' is 'spot on' (thus allowing the system to 'reset' the position co-ordinates and eliminate accumulated backlash)
An alternative approach is 'absolute' position sensing
Absolute position sensing
Here we fit the Pi, mounted on the of the OTA, with a magnetic sensor (Magnetometer). Tis not only senses 'North' but can also give some indication of the 'inclination'The problem is, of course, that 'most accurate' North is when the sensor is 'flat' and that's when you get least accurate inclination. Whilst most sensors (such as the LSM9DS0) incorporate accelerometers (so can sense when they are being tilted), for best accuracy (indeed, any accuracty), these typess of sensor must be mounted totally flat on the base of the Donsonian (a second sensor can be used for inclination) If yoiu are prepared to write some code, 'raw' Earth magnetic field detection modules (such as the 'GY-271 HMC5883L Module Compass Module 3-Axis Sensor' at £2.70 each) provide decent 'absolute' direction acuracy (via an I2C interface). Dedicated inclinometers exist (such as the NS-45/P), however these can go from expensive to insanely overpriced (such as the LCH-A-S-90-10)
Next subject :- Stellarium on the Pi