I would like to propose a client <-> server model for controlling the Rover over Wifi (and eventaully BT). i have developed this for another project involving the Rasp PI and a 32x32 Led Display. The client for this is either a linux application or an Android App going over Wifi to the Rasp PI.
You can check out the code :
Android Client: https://github.com/MarcKarasek/Android_Led_Server
Rasp Pi/ Linux Code : https://github.com/MarcKarasek/rpi_rgb_ ... rneldriver
This uses UDP as a control plane for sending in commands to the Rasp PI. And TCP as a data stream for sending display frames to the 32x32 led Display.
I have started to port this over to the Rover
Android Client : https://github.com/MarcKarasek/AndroidS ... Controller
Rasp Pi Server : https://github.com/MarcKarasek/SpiritRover_PiServer
This is still a WIP and would welcome any help/feedback/testing (whern we get to a testing phase).
I envision having an app on Android to send commands to the Rover (move fwd, move bkwd, etc..). Sending these over UDP/BT. With TCP being used as a transport stream for pictures/video from the Rover.
I plan on having the baseline Android App and Rasp Pi server up in a week or so. Adding in the GPIO backend to send commands to the Arduino.
In keeping with the spirit (pun intended) of the Rover being inspired by his older brothers on Mars. I want to keep the commands such that you could also script them as they do for the Mars robots. Sending in a sequence (move 3 fwd, turn left, etc..).
Marc
Proposed Client -> Rasp Pi Control Software
-
- Posts: 23
- Joined: Sun Jan 14, 2018 1:59 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
-
- Posts: 23
- Joined: Sun Jan 14, 2018 1:59 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: Proposed Client -> Rasp Pi Control Software
I will be updating this code shortly with a demo app for android and the server code for the PI.
The initial code will be leveraging the python code for triggering the buzzer. Hope to have the app and the server with some instructions on how to install after this weekend.
The initial code will be leveraging the python code for triggering the buzzer. Hope to have the app and the server with some instructions on how to install after this weekend.
-
- Posts: 75
- Joined: Fri Jan 26, 2018 5:03 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: Proposed Client -> Rasp Pi Control Software
How feasible would it be to run a web server on the Pi, with an embedded video stream, and buttons for driving?
Then no client is required, just go to the IP address of the robot.
Then no client is required, just go to the IP address of the robot.
-
- Posts: 23
- Joined: Sun Jan 14, 2018 1:59 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: Proposed Client -> Rasp Pi Control Software
Very doable..
I am using some code from another PI project I have that was sending data/control to a 32x32 led display. One of the benefits to having a client server model is it closely follows the real Spirit that is up on Mars.
With this appraoch a separate program could be developed to send a seqence of cmds in. ie Turn left, move forward 3 units, take a picture, etc.. I think this would be a great way to reach out to kids and teach them about how the real Spirit is 'driven'. By sending it a seq of instructions to execute.
Also having a web server on the PI could also use this model. As long as the underlying code to recv cmds is generic enough how the cmds get there is not a big deal.
I am currently working on getting the Android App and Server on the PI up and running. It will send commands (move fwd, back, take a pict, pan head left/right, etc..). I have defined most of the commands and should have some code up and running in a few more days of work.
Check out my github projects and follow them for updates..
Marc
I am using some code from another PI project I have that was sending data/control to a 32x32 led display. One of the benefits to having a client server model is it closely follows the real Spirit that is up on Mars.
With this appraoch a separate program could be developed to send a seqence of cmds in. ie Turn left, move forward 3 units, take a picture, etc.. I think this would be a great way to reach out to kids and teach them about how the real Spirit is 'driven'. By sending it a seq of instructions to execute.
Also having a web server on the PI could also use this model. As long as the underlying code to recv cmds is generic enough how the cmds get there is not a big deal.
I am currently working on getting the Android App and Server on the PI up and running. It will send commands (move fwd, back, take a pict, pan head left/right, etc..). I have defined most of the commands and should have some code up and running in a few more days of work.
Check out my github projects and follow them for updates..
Marc
-
- Posts: 23
- Joined: Sun Jan 14, 2018 1:59 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: Proposed Client -> Rasp Pi Control Software
Got more of the Android App UI Done.
Will work on the PI server part and getting the two to talk with each other.
Plan to stub out on the PI the commands for each of the actions from the App (rover move fwd, move back, turn left, turn right, etc..).
These can then be tied into a linux kernel driver to handle sending the commands over the I2C to the Arduino.
Marc
Will work on the PI server part and getting the two to talk with each other.
Plan to stub out on the PI the commands for each of the actions from the App (rover move fwd, move back, turn left, turn right, etc..).
These can then be tied into a linux kernel driver to handle sending the commands over the I2C to the Arduino.
Marc
Who is online
Users browsing this forum: No registered users and 7 guests