I would like some thoughts and guidance about how to approach an Arduino/Bluetooth/iOS project.
I am building a new panorama head for photography. In essence, a panorama photo is a very wide image. It is accomplished by taking a number of overlapping photos and then stitching them together into one photo with software.
An automatic pano head will calculate the amount the camera moves from one image to another (based on the focal length of the lens used) and how many images are required for the desired width of the panorama. I have already designed and built a successful pano head using an Arduino Nano and servo motors. However, the input buttons and display require an enclosure larger than I would like. Ergo, my desire to redesign it with a bluetooth connection to my iPhone.
My question is this: Would it be better to use the phone simply as an input and display device and the Arduino to do all the calculations, OR would it be better to have the iPhone do all the calculations and simply send inputs to the Arduino to control the servos?
In Which environment are you more comfortable to code? Both are possible.
Having all the business logic on the arduino side would let you build easily different interfaces or support clients with different OS without lots of programming.
A simple WiFi adhoc captive portal interface could also be a good solution if you use an ESP32 or similar for driving the shots and would work from any client device with a browser and WiFi stack
I already do code (a bit; enough to code my Arduinos) in C++ and have no experience with iOS. However, I am retired and have plenty of time to mess with a new environment.
Your point about ease of programming for different interfaces is well-taken. Since I was only thinking of myself, I did not give this consideration. However I know some others have built my current design, I should give this thought.
Could you please explain the WIFI adhoc interface? Is this a local, closed network thing? If so, how does this work? Most panorama photos are landscapes taken in rural areas where WIFI is not available.
basically the ESP32 creates its own WiFi network and advertises it.
If you join that network from your phone or your Mac or PC, a connection popup can appear where you can provide some parameters that are received by the ESP.
the ESP could advertise also a web page where you can monitor progress and control the ESP. because you don't depend on any existing network (your phone just needs to be in range of the ESP WiFi network - that can easily be up to 10/20m if you have line of sight) you can take this outside easily
--
side note: iOS programming is fun (learn Swift, it's rewarding) but there is still quite a learning curve.
The iPhone Camera app has a built-in "Pano" mode where it will continuously stitch images together. All you really need is a way to turn the camera smoothly. Adjust the zoom to get the vertical coverage you want.
It's nice, but a pro photographer would often require raw images from the camera, to greatly enhance the range of control during editing. But yeah, iPhone. My Android app also has a pano setting available.