Using websockets and android to control robots in realtime

11,881
-1

Published on

Talk about using WebSockets in Android to control robots in real-time. More details at http://sudarmuthu.com/blog/using-websockets-with-android-to-control-arduino-robots

Published in: Technology
1 Comment
5 Likes
Statistics
Notes
No Downloads
Views
Total Views
11,881
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
143
Comments
1
Likes
5
Embeds 0
No embeds

No notes for slide

Using websockets and android to control robots in realtime

  1. 1. Using WebSockets and Android to control robots in real-time Sudar Muthu (@sudarmuthu) http://hardwarefun.com http://github.com/sudar
  2. 2. Who am I? Research Engineer by profession Create robots as hobby Uses an Android phone Why not combine both of them? Has spoken in 6+ hasgeek events http://hardwarefun.com
  3. 3. Android and Arduino There are at least half dozen ways to do it and I am not going to talk about each of them. http://sudarmuthu.com/blog/building-robots-using- arduino-and-android-at-droidconhttp://hardwarefun.com
  4. 4. So today… WebSockets in Android How to use it to control robotshttp://hardwarefun.com
  5. 5. Why hardware for a software hacker? Fun!http://hardwarefun.com
  6. 6. Let’s start with a demo Demo http://hardwarefun.com/projects/asimijshttp://hardwarefun.com
  7. 7. Participate in the demo  Visit http://hardwarefun.com:3000http://hardwarefun.com
  8. 8. Control the bot at stage http://hardwarefun.com/projects/asimijs #asimijs @hardwarefunhttp://hardwarefun.com
  9. 9. Now let’s see how I built ithttp://hardwarefun.com
  10. 10. What is WebSockets? Full-duplex over a single TCP connection Provides push support Designed to work inside browsers Works on port 80http://hardwarefun.com
  11. 11. WebSockets vs HTTPhttp://hardwarefun.com
  12. 12. http://hardwarefun.com
  13. 13. HTTP (Pull) Is there an update? No Is there an update? No Is there an update? Yeshttp://hardwarefun.com
  14. 14. WebSockets (Push) Tell me when you have an update Ok Here is the updatehttp://hardwarefun.com
  15. 15. Why use WebSockets in Android Firewall friendly No need to reinvent protocol Real-time communication Easy to setup serverhttp://hardwarefun.com
  16. 16. Remember, I am not talking about using WebSockets inside an Android browserhttp://hardwarefun.com
  17. 17. WebSocket implementation for Android There are lot of options, but I choose Socket.IO implementation by Kaushik Dutta (Rom Manager fame) https://github.com/koush/android-websocketshttp://hardwarefun.com
  18. 18. Why Socket.IO? You should have attended jsFoo ;)http://hardwarefun.com
  19. 19. Why Socket.IO Additional features on top of WebSockets Node.js based server Has support for maximum no: of browsers Has clients in lot of languageshttp://hardwarefun.com
  20. 20. and …. I had the server already written http://hardwarefun.com
  21. 21. Let’s see some codehttp://hardwarefun.com
  22. 22. In Android, create a socket client = new SocketIOClient(URI.create( ”http://hardwarefun.com:3000"),new SocketIOClient.Handler() { @Override public void onConnect() { Log.d(TAG, "Connected!"); } @Override public void on(String event, JSONArray arguments) { Log.d(TAG, "Got event); } @Override public void onDisconnect(int code, String reason) { Log.d(TAG, "Disconnected!); } });http://hardwarefun.com
  23. 23. Send data through socket client.connect(); JSONArray arguments = new JSONArray(); arguments.put("first argument"); JSONObject second = new JSONObject(); second.put("dictionary", true); arguments.put(second) client.emit("hello", arguments); client.disconnect();http://hardwarefun.com
  24. 24. In node.js side var io = require(socket.io).listen(80); io.sockets.on(connection, function (socket) { socket.emit(news, { hello: world }); socket.on(’my other event, function (data) { console.log(data); }); });http://hardwarefun.com
  25. 25. Checkout the full source code at http://hardwarefun.com/projects/asimijshttp://hardwarefun.com
  26. 26. So… How the demo worked?http://hardwarefun.com
  27. 27. Node.js Server Android Client Admin page Web Socket User page Asimi (Bot) User page ADK User pagehttp://hardwarefun.com
  28. 28. Links AsimiJS – The demo that I showed initially http://hardwarefun.com/projects/asimijs Android websockets - https://github.com/koush/android- websockets Getting started with hardware programming http://hardwarefun.com/tutorials/getting-started-with-hardware- programming Getting started with Arduino http://hardwarefun.com/tutorials/getting-started-with-arduino- and-avr Android and Arduino - http://sudarmuthu.com/blog/building- robots-using-arduino-and-android-at-droidcon Arduino Workshop - http://hardwarefun.com/arduino-workshophttp://hardwarefun.com
  29. 29. Thank you Sudar Muthuhttp://hardwarefun.comhttp://github.com/sudar
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×