We are working on controlling a toy car mounted with a camera with a android mobile. We would like to make it look like a video game with speed meter and battery information displayed in the corner of the screen with the video stream to make it look like a First Person View.
I was wondering how to achieve that with a good range, indoor or outdoor, good fps.
I found out some video transmitter that use UHF but I have no idea how to send that to an android device. Could it be possible to pass by a computer and wi-fi connection.
Maybe sacrifice range and only use wi-fi and a wi-fi extender.
It's hard to find information on not made out-of-the-box solutions.
I was thinking about encoding the video myself and sending it somehow but it's all new to me.
thanks
Related
I have been working on a research project which involves making audio recordings to perform some digital signal processing analysis.
To aid me in my recording, my research supervisor has provided me with an i436 microphone. It looks like this. However, before making the recording he has asked me to calibrate the device.
I have a rather blurry idea of what calibration means. Since different microphones may have different intensities / recording conditions, they will generate different results for the same recording. A calibration of the microphone device will generate a result in an acceptable range of 1 dB.
I searched through the internet and after digesting the seemingly indigestible concepts of using a hardware device to calibrate a microphone, I have come back here to ask for experts views on this.
If someone could explain in detail what calibrating a microphone means and how it can be achieved using a software on either an android device or a windows laptop, I would be grateful.
I don't want to purchase a new hardware device to calibrate a microphone but would rather appreciate software that do the same.
Currently I have the following equipment: An android device (Moto g3), Windows 10 laptop, iPhone 5S (not mine but I can borrow it).
Hi everbody!
I would build a drone with a ip camera to stream video to an android app with (if possible) http protocol (as in webpage) and the camera should be must small (and light) is possible . So, which ip camera you advice me?
Thank you guys!
If it was up to me to decide, (keeping in mind that I don't know the exact size of the drone),
I would say that you can't go wrong with a Raspberry Pi and the Pi Face camera. It offers HD quality with is vital if you want to see clearly while the wind is blowing it side to side.
It is soon available in infrared so there is an add on to look forward to!!!
It is lightweight and can be mounted anywhere because it isn't restricted to a housing.
I have used the cam for many projects from motion detection to security cams.
It is a Must Have, it is inexpensive and great for these projects, plus they can be programmed to do so much more.
The project objective is something like this:
We would have a locomotive robot having on-board GPS on it.
Now using that GPS we want to track the position of robot and trace it on android cellphone.
(as they provide best interface with Google services)
Not only that
We even want to control the robot from android cellphone.
Is it possible to send control signal from android cellphone to that robot so that robot can make a move according to control signal.
How can we make a connection between android cellphone and on-board GPS of robot.
(We are somewhat newbie to robotics)
Any better ideas, suggestions are most welcome.
Check out Dension Wirc module:
WiRC module by Dension
It works for RC controlled platforms by sending a pulse width modulated train, allowing you to control servos and electronic speed controllers. There are 8 channels. I'm using it to control 2 tracks and a pan/tilt turret, it works great. I emailed the support team, and they sent me an iPhone project, which got me running in a matter of hours. The WiRC kit comes with a camera, so I can drive my robot remotely via wifi.
In terms of GPS, I did a test on iPhone, under clear sky, and the GPS signal drifts badly. The accuracy is indeed somewhere between 30-50 feet, it is not enough to track position of a small robot precisely. I will post a screenshot of my experiment.
Check out this screenshot: I'm walking along the white paths on the map with the phone in my shirt pocket. Every second it places a pin on the map. You can see how badly the red pins deviate from the white path. This is 30-50 feet off path. For a 2 feet long robot, this is a major trouble. If it tries to correct it's path with such resolution of GPS, it is likely to become very confused.
I've seen a differential drive equation on wikipedia (a motor with slit encoders), counting the number of slits that passed past encoder in a certain interval of time. This may help correct the GPS, but requires additional hardware
I am working on something same like this
I am trying to make an autonomous robot capable of moving itself based on some extensive robotics algorithms but certainly you don't need that.
But I think it will be better for you to mount the Android phone on the Robot and then control it with your laptop via WiFi or any other medium.
Mounting an android phone will have many advantages like:
Having a nice GPS and where there is no need to do extra work to integrate it with other hardware and software.
And you can have other hardware like accelerometer, proximity sensor, gravity sensor etc. which can be useful in many ways.
Now there is a lot of data for making Robots based on Android. Here is the Cellbots
they work on making robots from android and control them remotely from laptops or Android.
If someone wants to write a android application that interacts with a physical device, specifically a reader using mobiles audio jack
(e.g. Like how Square Inc is doing ) how is this done?
Is there a api's to interact with the reader and get the cards data?
When a company creates a reader (physical device) does it provide relevant apis?
Are the physical details abstracted from the application programmer?
I have found the AudioRecord class which can record magnetic stripe data from audio jack
But I can't fiqure out how to capture the actual card swipe event and
to extract the meaningful data from RAW DATA
Can any one help me with this
Any input is highly welcome!
The way this usually works is by encoding the data signal sent out by the device, like the card reader, in such a way that is can be decoded on the other end. Sound is a wave, and different amplitudes correspond to different loudness, and different frequencies correspond to different pitches. Imagine you have a sine wave, that varies between a high and a low frequency that are sufficiently different from each other so as to be easily distinguishable. The device sending out binary data (0's and 1's) can translate this data into an audio signal that varies by frequency (an alternative is varying amplitude). The receiver, in this case the mobile device, decodes the signal back into 0's and 1's. This is called "Frequency-shift-keying" (check out more here: http://en.wikipedia.org/wiki/Frequency-shift_keying).
The simplest way to implement this is to try and find an open library that already does it. The device sending the data will also need to contain some kind of microcontroller that can perform the initial modulation. If you come across any good libraries, let me know, because I'm currently
looking.
To answer your question, companies do not generally provide APIs etc to perform this.
This may seem like a lot of extra work to convert a digital signal, into an audio signal, and back, and you're right. However, every mobile device has essentially the same headphone jack, whereas the USB port on an Android is drastically different from an iPhone's lighting connector, or the connector in previous iPhones. Sending wirelessly through a network or Bluetooth is also an option, but they have their disadvantages as well.
Now the mobile device must be using a special headphone jack that supports microphones, otherwise it cannot receive input, it can only output sound. Most smartphones can do this.
Radios work on this principle (FM = Frequency modulation, AM = amplitude modulation).
Old dial up modems used FSK, which is why you heard those weird noises each time it connected.
Hope that helps!
I'm looking for a way to interface with an external camera from an Android device. The reason it needs to be an external camera is because I need to be able to modify the camera (remove IR filter) and I have no desire to break an on-board phone camera.
It doesn't matter how the camera connects whether it is through USB, bluetooth, WiFi, or some other communication protocol, the two devices just need to be able to talk without having a middleman server/router.
I'm looking for a solution that:
Doesn't require rooting or rebuilding Android/the Linux Kernel (absolute must)
Allows me to overlay items over the image/video (good)
Access the video stream to do image analysis (best)
The last requirement isn't required but would be nice.
Options I have explored:
USB camera: rebuilt Linux Kernel as per http://brain.cc.kogakuin.ac.jp/research/usb-e.html and tried using provided code using camera: http://www.amazon.com/gp/product/B002X3VEIE/ref=oh_o02_s00_i00_details. Did not work in the slightest bit. I later learned that the author used the CM9 mod however this really isn't an option given that it isn't practical for an app in the market.
Bluetooth camera: Looxcie and CountourGPS look like the best options however the feed is streamed to their app and they have no API or SDK so how can one overlay on their video feed?
IP camera: to me this looks like the most promising option but how can one access an IP cameras video feed without a middleman server/router? GoPro HD Hero2 with WiFi BacPac looks potentially promising but it isn't out yet and from what I can tell requires you to use their app similar to the bluetooth camera options. What cameras exist that allow me to connect to them and receive a direct video feed and how do I go about this programmatically?
If connection to an IP camera without the middleman is possible the code at Android and MJPEG and Getting IP Cam video stream on Android (MJEPG) looks promising.
Can I overlay on top of another apps video feed? Is it possible to connect directly to an IP camera? Any suggested options greatly appreciated.
I ended up opting for the IP camera option as it seemed to be the only viable option.
I was able to purchase this camera and remove the IR filter by removing the glue at the base of the lens and then breaking the IR filter out.
I was able to connect the camera to ICS using the AndroidAP hotspot and to older Android devices using an ad-hoc network setup on the camera (you have to manually set IP addresses, etc for ad-hoc and it's a pain).
As for getting MJPEG working in an app on ICS I made these modifications to the code I found on SO.
Lastly the app needs to be able to turn the AP on and off which I have not finished yet but here is some code to start with.
In answer to your options..
Looxcie has a onboard buffer that could potentially be tapped into, ContourGPS does not have a buffer to the best of my knowledge. Unfortunately bluetooth isn't very viable for live video/recording. They also don't publicize their bluetooth stack or communications. There are methods to "decrypt" or find out how they communicate but it would be time consuming.
Your best option is to use an IP Camera. You can use WiFi Direct, or you can use the phones tethering app. (Android is probably best). Then connect the IP Camera to the tethering app and you're all settled. Contour has a new camera that does HDMI. Then they also have a livestreamer. http://contour.com/products/live-streaming-cerevo-liveshell
The IP Method is expensive but it is a decent way to get the result that you want.