Building a Touchscreen Smart Robot Remote

Ғылым және технология

Opla IoT Kit - €99.00 : promo.arduino.cc/usa/opla-iot...
It's time to build a touchscreen smart remote to replace my original 'everything remote'. The new version is based on a Raspberry Pi and is ROS enabled so I can publish and subscribe to ROS topics. The touchscreen interface will get populated as I do more robotics development.
You can support me on Patreon or buy my Merchandise:
***************************
Patreon: / xrobots
Merchandise: teespring.com/stores/james-br...
***************************
Affiliate links - I will get some money of you use them to sign up or buy something:
***************************
Matterhackers 3D printing supplies: www.matterhackers.com?aff=7500
Music for your KZread videos: share.epidemicsound.com/xrobots
***************************
Other socials:
***************************
Instagram: / xrobotsuk
Facebook: / xrobotsuk
Twitter: / xrobotsuk
***************************
CAD and Code for my projects: github.com/XRobots/ROSremote
Huge thanks to my Patrons, without whom my standard of living would drastically decline. Like, inside out-Farm Foods bag decline. Plus a very special shoutout to Lulzbot, Inc who keep me in LulzBot 3D printers and support me via Patreon.
HARDWARE/SOFTWARE
Below you can also find a lot of the typical tools, equipment and supplies used in my projects:
Filament from: www.3dfuel.com/
Lulzbot 3D Printers: bit.ly/2Sj6nil
Lincoln Electric Welder: bit.ly/2Rqhqos
CNC Router: bit.ly/2QdsNjt
Ryobi Tools: bit.ly/2RhArcD
Axminster Micro Lathe: bit.ly/2Sj6eeN
3D Printer Filament: bit.ly/2PdcdUu
Soldering Iron: bit.ly/2DrNWDR
Vectric CNC Software: bit.ly/2zxpZqv
Why not join my community, who are mostly made up of actual geniuses. There’s a Facebook group and everything: / 287089964833488
XROBOTS
Former toy designer, current KZread maker and general robotics, electrical and mechanical engineer, I’m a fan of doing it yourself and innovation by trial and error. My channel is where I share some of my useful and not-so-useful inventions, designs and maker advice. Iron Man is my go-to cosplay, and 3D printing can solve most issues - broken bolts, missing parts, world hunger, you name it.
XRobots is the community around my content where you can get in touch, share tips and advice, and more build FAQs, schematics and designs are also available.

Пікірлер: 166

  • @ellabun
    @ellabun3 жыл бұрын

    James: **carefully designs and prints perfect fit for display** Also James: **designs and prints additional 15mm bezel around display**

  • @lazermaniac
    @lazermaniac3 жыл бұрын

    It's like a thicker, heftier version of a Switch - you've build the Nintendo Breaker!

  • @StarScapesOG

    @StarScapesOG

    3 жыл бұрын

    I would call it the Super Nintendo Switch

  • @jdmeesey

    @jdmeesey

    3 жыл бұрын

    James you j need to interface a tablet/Surface with some joy cons and build a switch-inspired chassis solution!

  • @zh9664

    @zh9664

    3 жыл бұрын

    The switch sets a very very low bar so yeah id say this thing is better

  • @bobdagamer640

    @bobdagamer640

    3 жыл бұрын

    Thicc

  • @JaredConnell

    @JaredConnell

    3 жыл бұрын

    Hopefully no joy con drift on this one

  • @AllDayBikes
    @AllDayBikes3 жыл бұрын

    The everything remote is to you what a lock is to LockPickingLawyer, or a pulse jet to Colin Furze. I can't imagine your channel without it. Love the upgrade haha

  • @thomaslowe7816
    @thomaslowe78163 жыл бұрын

    Arduino: Lets sponsor Jame Bruton! James:*Using teensy in literally every project*

  • @sendhelp3777

    @sendhelp3777

    3 жыл бұрын

    What

  • @swamihuman9395
    @swamihuman93953 жыл бұрын

    "I don't wanna be driving at 500 meters per second."!:D Delivered in perfect deadpan manner:)

  • @vrohh6310
    @vrohh63103 жыл бұрын

    1:52 nintendo switch Look at this dude

  • @marco_gallone
    @marco_gallone3 жыл бұрын

    I love the transition into the py for more industry standard robotics development! Keep up the amazing work!

  • @faeranne
    @faeranne3 жыл бұрын

    Just so you know, versions of the pi after the original b don't need those i2c wires for the touchscreen. They are already routed over the DSI cable.

  • @motbus3
    @motbus33 жыл бұрын

    so cool to see things coming like this together. congratulations and thanks!

  • @joyleencamielleg7257
    @joyleencamielleg72573 жыл бұрын

    I love the way you explain ROS, thank you so much... never thought of it was a network before :)

  • @MagnusDangerMagnus
    @MagnusDangerMagnus3 жыл бұрын

    Thank you so much for publishing the source for this.

  • @jamesbruton

    @jamesbruton

    3 жыл бұрын

    No worries, I'll update it as I go.

  • @eknut28263
    @eknut282633 жыл бұрын

    Now that's a badass remote! Endless possibilities, Nice work!

  • @cjdoesyoutube6148
    @cjdoesyoutube61483 жыл бұрын

    James every single episode: Oh yeah, it’s big brain time

  • @swamihuman9395
    @swamihuman93953 жыл бұрын

    Thx. Always over the top; and always explaining things so well. I love all the details you offer, and insight into your design thoughts.

  • @LoyvanBeek
    @LoyvanBeek3 жыл бұрын

    Instead of publishing a Twist and some separate topic for the buttons, you might want to just publish a Joy-message, specifically made for joysticks. There's a joystick_teleop node that ingests that and outputs /cmd_vel. That setup allows for remapping of the buttons and axes. Also takes care of the deadzone, scaling etc. There's a joystick node that uses in a Linux joystick device to publish Joy-messages. Then, you can make your handheld controller act as a normal joystick device via the Teensy. That way, it'll also work as a joystick if you plug it into a Windows machine, as it's then just a normal plug-and-play joystick device

  • @vihangpathak9759
    @vihangpathak97593 жыл бұрын

    In love with the amount and quality knowledge you share with us thank you❤

  • @fpvnafret
    @fpvnafret3 жыл бұрын

    thanks for sharing all this knowledge with us, you are the best! :)

  • @WistrelChianti
    @WistrelChianti3 жыл бұрын

    Such a strong Lemmings vibe from the printing music this time :D

  • @TheEngineerC
    @TheEngineerC3 жыл бұрын

    Ive been working on almost the EXACT same project, except with a pi 3 and a waveshare monitor and some pcbs similar to Nintendo joycons. I'm actually powering mine with just a cell phone battery bank that shows the percentage left on the pack.

  • @StevenIngram
    @StevenIngram3 жыл бұрын

    I like it. It reminds of the controllers they used in the movie, Real Steel. :)

  • @cad_man
    @cad_man3 жыл бұрын

    this fella deserves 1million subscribers. Surely!!!

  • @jameshamaker9321

    @jameshamaker9321

    3 жыл бұрын

    I agree. I happen to be one of the first people, to have subscribed to his channel. I'm a huge fan of his.

  • @laxmiibhele8376
    @laxmiibhele83763 жыл бұрын

    Congratulations 🎉 James now 😀 you have sponors like the great Arduino 🔥🔥🔥🔥🔥

  • @tncowboybuck
    @tncowboybuck Жыл бұрын

    I love all these projects and that you make them available open source. Just one thought though: It would be nice if you could also provide a BOM. Like what are the joy sticks? What are the buttons? Where did they come from? Keep up the awesome work!

  • @this_time_imperfect
    @this_time_imperfect3 жыл бұрын

    Nice looking JoyCons

  • @MuhammadDaudkhanTV100
    @MuhammadDaudkhanTV1003 жыл бұрын

    Very good work and cool

  • @fred-9929
    @fred-99293 жыл бұрын

    A dedicated hat with the Teensy and all I/Os and connectors (I²C, SPI...) could be nice, to avoid USB cable (by directly using the serial port on GPIOs), and allows further developpements.

  • @RingingResonance

    @RingingResonance

    3 жыл бұрын

    I don't know much about the ras-pi hardware/software, but having direct IO access might also help reduce latency.

  • @wafje
    @wafje3 жыл бұрын

    I would publish values from 0-1 from the remote. The subscriber (in this case the robot) should then map these to speed values.

  • @legender576
    @legender5763 жыл бұрын

    Love your work!

  • @AlanPieroway
    @AlanPieroway3 жыл бұрын

    i like the way the background is being cleaned up... and looking more professional. but, that being said, i don't care what the background looks like as long as the content continues to be so highly interesting and well done.

  • @Thuliolima2008
    @Thuliolima20083 жыл бұрын

    Very Good!

  • @BenjaminK123
    @BenjaminK1233 жыл бұрын

    i love your videos but it makes me realize just how simple i am lol, i have tinkered with this stuff but you are on another level

  • @aaravsamtani5499
    @aaravsamtani54992 жыл бұрын

    He is very talented.

  • @postualin6551
    @postualin65513 жыл бұрын

    Thats how world makes beter and beter ! This wil be useful for my other robots

  • @jdwg5
    @jdwg53 жыл бұрын

    Hey James! There's a ROS topic called sensor_msgs/Joy that has an array of floats for the axes and an array of ints for buttons/switches/states. Might be something that could be pretty useful for this application!

  • @4.0.4
    @4.0.43 жыл бұрын

    Never heard of ROS Serial before. Sounds neat! Also you could use the power of 3D printing to make it more ergonomic than that shoebox shape lol

  • @starblastershooter2444
    @starblastershooter24443 жыл бұрын

    Need to make one of these myself

  • @SavageSmithy
    @SavageSmithy3 жыл бұрын

    ROS sounds like it could be a pretty good base for a home automation project, cheap easy touch screen control panel in every room which can all share data and then you can either pass that data to other services or set up "robots" to control appliances/lighting.

  • @jamesbruton

    @jamesbruton

    3 жыл бұрын

    Yes it's pretty much just a framework, so you could control anything with it.

  • @hsmptg
    @hsmptg3 жыл бұрын

    Great Controller!!!

  • @hsmptg

    @hsmptg

    3 жыл бұрын

    Can you share the link of the joysticks?

  • @jakekeip
    @jakekeip2 жыл бұрын

    I love this idea and would like to reproduce it for my own projects. Is there a parts list for the components that are used in this build?

  • @atticuscorbitt8199
    @atticuscorbitt81993 жыл бұрын

    Something like this would also be great for making a portable RPI emulation console, just swap out the joysticks for ones from a regular game controller and maybe tweak the design a bit to accommodate a dpad.

  • @muhammedcoskun8697
    @muhammedcoskun86973 жыл бұрын

    Amazing

  • @bizzehdee
    @bizzehdee3 жыл бұрын

    Another advantage of 1, 2, 4 and 8 being bits on an int, is that you can press multiple buttons at the same time, and would send something like 3, which would be 1 and 2 being pressed together. Where if you sent 1,2,3,4 for each button, you would never know if 3 is button 3, or 1 and 2 at the same time, so you could never combine buttons.

  • @rikschaaf
    @rikschaaf3 жыл бұрын

    You should add a d-pad, one extra button and shoulder buttons. Then it'd be a good retro pi handheld :D

  • @thomasre8073
    @thomasre80733 жыл бұрын

    Awesome.

  • @maalonszuman491
    @maalonszuman491 Жыл бұрын

    hey first of all thank you for your video i realy like them, juste wanted to know what os run on the raspberry pi in the remote

  • @cgirishvarma2466
    @cgirishvarma24663 жыл бұрын

    Quality 🤩🤩🤩

  • @roedyhellyeah
    @roedyhellyeah3 жыл бұрын

    i've worked with Tkinter for some things and that worked great. i also saw some nice things made in Dear PyGui

  • @antonwinter630
    @antonwinter6303 жыл бұрын

    great upgrade to the remote. what are the details on that touch screen? do you have a link

  • @roseroserose588
    @roseroserose5883 жыл бұрын

    This ROS stuff is looking amazing! I'd never have imagined that a distributed OS would be fast enough for real time controls but apparently not! One thing I'd be a little concerned about is if the remote runs out of battery while controlling a robot, in case the robot disappears off into the distance with no way to stop it. Implementing a heartbeat/watchdog timer from the remote to say "hey, i'm still here!" that the robot subscribes to, and automatically shuts down if it doesn't receive the message after a timeout?

  • @jamesbruton

    @jamesbruton

    3 жыл бұрын

    Yes that's a good point. That could just be another ROS message on repeat.

  • @Morphexe
    @Morphexe3 жыл бұрын

    Omg you made a nintendo switch :D This is looking sleek :) Cant wait what you do with it.

  • @svenbeukema
    @svenbeukema3 жыл бұрын

    I was thinking how great it would be if you would make a Puzzle Box. Like the ones on the channel of Chris Ramsey. That would be so fricking awesome. To see your mechanical skills in a Puzzle. Maybe you could do a collaboration!

  • @lolous-studio
    @lolous-studio3 жыл бұрын

    Ho, A new video ! Bam, Instant like !

  • @TheRealFrankWizza
    @TheRealFrankWizza3 жыл бұрын

    Do you have any code showing how to move motors on a client requesting servo angles from a server via tcp or udp? for example, I am trying to use a pi as a webcam, do some color tracking on the jetson nano, and send the angles back to the same pi with the camera, which is attached to the servos. A remote tracking cam. I have the video working, and the servo angles outputting. I can bind the socket, but my while True loop locks up when I try to create a data connection. I should know this, but I should also learn ros. This looks very practical.

  • @slacksthegreat
    @slacksthegreat Жыл бұрын

    Nice clean prints compared to when i started watching your videos. I spend way too much time aiming for perfect quality for final prints.

  • @GmanBB
    @GmanBB3 жыл бұрын

    You can use ESP32 with micropython firmware. It has analog and digital pins, which can be assigned as inputs or outputs. Check also M5 stack core 2 or other ESP32 boards.

  • @googlyeyes3237
    @googlyeyes32373 жыл бұрын

    **comes to comments*, *sees people typing numbers**

  • @vallisparmentier9764

    @vallisparmentier9764

    3 жыл бұрын

    > sees people typing Are you sure those aren't *bots* typing?

  • @googlyeyes3237

    @googlyeyes3237

    3 жыл бұрын

    @@vallisparmentier9764 are u sure ur not a bot ?

  • @maximepolydor6446
    @maximepolydor64462 жыл бұрын

    you could also put a microphone and do vocal instruction trough the pie

  • @bbogdanmircea
    @bbogdanmircea3 жыл бұрын

    Amazing idea for a controller! I have a suggestion, it would be really nice if you could make some diagrams to show how the RPi interfaces versus the Teensy over serial with the rosserial as protocol and so on, it would make the understanding much more easier. Looking forward for you to push the designs!!!

  • @jamesbruton

    @jamesbruton

    3 жыл бұрын

    The Rosserial Node runs on the Pi, it talks to the Arduino/Teensy over serial using the Rosserial Arduino library

  • @bbogdanmircea

    @bbogdanmircea

    3 жыл бұрын

    @@jamesbruton Some nice diagram with devices and protocols would help, you can take some tips from Andreas Spies, he is a master of concise and simple explanations.

  • @zihagamers4073
    @zihagamers40733 жыл бұрын

    So cool

  • @jameshamaker9321
    @jameshamaker93213 жыл бұрын

    This is really good stuff. I'm curious as to wether or not this controller could be used, for driving a small, electric vehicle. Like a remote control, go kart. 😊

  • @mihumono
    @mihumono3 жыл бұрын

    You do not need the sda and scl wires. I2C goes over the DSI cable. You just need 5V, GND and DSI ribbon connected. EDIT: only pi 1a and 1b required separate I2C connection.

  • @CyberSyntek
    @CyberSyntek3 жыл бұрын

    Looking good. Man I should have used those joysticks on my robot controller. Any idea on how easy they are to mod into throttle style sticks by extracting the tension springs? Needed throttle sticks on my 34 analog input controller but would have been nice to have a bit larger sticks like what you are using.

  • @michaelmbutler
    @michaelmbutler2 жыл бұрын

    @james: What was your source for the three-axis joysticks?

  • @dans-designs
    @dans-designs3 жыл бұрын

    Hey James, great video! Have you heard of RemoteXY? its an app based remote control for bluetooth arduino devices with a customizable gui..

  • @Flynn3778
    @Flynn3778 Жыл бұрын

    Hey @jamesbruton have you any plans to update the remote?

  • @wilgarcia1
    @wilgarcia13 жыл бұрын

    awesome =D

  • @deemaagog
    @deemaagog Жыл бұрын

    What type of wireless connection do you use? wifi? bluetooth? Is it possible to use nrf24l01 or LoRa?

  • @me1ne
    @me1ne2 жыл бұрын

    Where can I find those sticks, or what do I search for?

  • @hansdietrich83
    @hansdietrich833 жыл бұрын

    Aragafar everything is so chunky! My brain is crying everytime

  • @InSsSaNe1337
    @InSsSaNe13373 жыл бұрын

    How is the information from the joystick, computer and robot transferred? Is the ROS system "conversing" over WiFi? Or Bluetooth? Or something else? I'm relatively new to ROS and I've only sent information over USB and Ethernet cables.

  • @simonvandenbossche9804
    @simonvandenbossche98043 жыл бұрын

    What joysticks do you use?

  • @OleZZ222
    @OleZZ2223 жыл бұрын

    Ob my first projects I used PyGame as well. PyQT with QT Designer could be a better option for you programming an GUI instead.

  • @mpovid
    @mpovid3 жыл бұрын

    I probably would've stuck with a dedicated radio link like the nrf chip so that when you pipe lidar or image or tf data to the pi screen it doesn't delay your control inputs

  • @RingingResonance

    @RingingResonance

    3 жыл бұрын

    Or have the option for both.

  • @elden4267
    @elden42673 жыл бұрын

    do you ever hear about i/o expander ic you can even make a controller with attiny85 and a I2C io expander

  • @mertcapkin7263
    @mertcapkin72633 жыл бұрын

    Where can I get those joysticks?

  • @SeerOfVoid
    @SeerOfVoid3 жыл бұрын

    Why not use HID to send the joystick and button values over USB natively?

  • @akshaypadmanabuni2075
    @akshaypadmanabuni207517 күн бұрын

    I want to build something like but have the device function both as a game emulator and a controller any leads on it?

  • @ConspiraGoose
    @ConspiraGoose3 жыл бұрын

    Why not hinge the keyboard and or trackpad/mouse off of the workstation?

  • @manoi2010
    @manoi20103 жыл бұрын

    How much cost your robot dog RTR with controller and preprogrammed? Please let me know thanks have a good day

  • @danielfernandezgarcia4159
    @danielfernandezgarcia41593 жыл бұрын

    How do you power raspberry pi?

  • @balazsszegedi5524
    @balazsszegedi55243 жыл бұрын

    Hi! How can I learn to program things like that?

  • @pd.dataframe2833
    @pd.dataframe28333 жыл бұрын

    Hi James, Can we use arduino ros library directly on teensy boards?. or is there a separate fork for that?

  • @jamesbruton

    @jamesbruton

    3 жыл бұрын

    Yes, but by default it only works up to Teensy 3.2. Use the one I hacked for the RUR which goes up to Teensy 4.1: github.com/XRobots/ReallyUsefulRobot/blob/main/arduino/ros_lib_modified.zip

  • @pd.dataframe2833

    @pd.dataframe2833

    3 жыл бұрын

    @@jamesbruton Thanks a lot james! what is the main issue for 3.2 + above boards that needs library upgrade.

  • @viswadeepkopalli6160
    @viswadeepkopalli61603 жыл бұрын

    So im assuming that you are using ros melodic on the workstation are you having any problems if you use kinetic packages in melodic ?

  • @jamesbruton

    @jamesbruton

    3 жыл бұрын

    I can't say I've specifically tried it, Melodic support is pretty good.

  • @viswadeepkopalli6160

    @viswadeepkopalli6160

    3 жыл бұрын

    @@jamesbruton thank you so much for replying pls do more amazing videos like this 🥺.

  • @mohitarora1701
    @mohitarora17013 жыл бұрын

    I think you are one who didn't believe in small size is great projects or to look cool, large projects are also look cool 🤟🏻

  • @thorley1983
    @thorley19833 жыл бұрын

    Which joysticks are those. they look like really good quality kit. have you got a link to them online?

  • @jamesbruton

    @jamesbruton

    3 жыл бұрын

    Just look for '3 axis joystick' on eBay - they cost about £10 from China

  • @thorley1983

    @thorley1983

    3 жыл бұрын

    thanks bud i found them. im think theyll make a great thruster controller for elite dangerous. sort of NASA style

  • @santosvella
    @santosvella3 жыл бұрын

    You can get a 3/4G and SIM hat for the PI.

  • @poseidon8526
    @poseidon85263 жыл бұрын

    would you ever consider building D-0 from star wars ep. 9?

  • @DylanMatthewTurner
    @DylanMatthewTurner3 жыл бұрын

    Maybe I missed it, but why did you use the teensy to connect to the buttons and joysticks instead of just using the GPIO already on the Raspberry Pi?

  • @danielh.8836

    @danielh.8836

    3 жыл бұрын

    The raspberry pi has no analog inputs. The joysticks need them so he needs some kind of "converter"

  • @richardlincoln886
    @richardlincoln8863 жыл бұрын

    The generalisation ROS appears to provide seems to make everything else overly complex.

  • @ei23de
    @ei23de3 жыл бұрын

    Hi James, if you connect the Teensy directly to the Pi GPIO Pins you could use one of the internal UARTs for serial connection. The Pi 4 has enough of them ( www.raspberrypi.org/documentation/configuration/uart.md ) and you could save space and a usb cable ;-)

  • @Nordseeluft
    @Nordseeluft3 жыл бұрын

    Is there a video about the everything remote? i cant find one unfortunately.

  • @jamesbruton

    @jamesbruton

    3 жыл бұрын

    Somewhere in the start of the openDog (original) series

  • @Nordseeluft

    @Nordseeluft

    3 жыл бұрын

    @@jamesbruton Thank you!

  • @CShand
    @CShand3 жыл бұрын

    Where did you get the joysticks from eBay on returns gaming joysticks or PS2 ect

  • @mrwhiskers8951
    @mrwhiskers89513 жыл бұрын

    Could you recommend to me a 3d printer?

  • @KylePapili
    @KylePapili3 жыл бұрын

    When do we get an update on ROS robot butler!?!?!?

  • @jamesbruton

    @jamesbruton

    3 жыл бұрын

    Next week!

  • @mikenelson1624
    @mikenelson16243 жыл бұрын

    👍✨

  • @mehulsahu3683
    @mehulsahu36832 ай бұрын

    i want a circuit diagram of remote

  • @clementferry6122
    @clementferry61223 жыл бұрын

    Do you have a like for the joystick 🕹?

  • @albertolr98
    @albertolr983 жыл бұрын

    Where could I buy the 3DOF joystick??

  • @Scott_C

    @Scott_C

    3 жыл бұрын

    I just put "3 DOF joystick" into Amazon and there are tons of them.

  • @albertolr98

    @albertolr98

    3 жыл бұрын

    @@Scott_C thank u 😁

  • @Scott_C

    @Scott_C

    3 жыл бұрын

    @@albertolr98 also eBay may be a good source www.ebay.com/i/302526181730?chn=ps&norover=1&mkevt=1&mkrid=711-117182-37290-0&mkcid=2&itemid=302526181730&targetid=934793862176&device=m&mktype=pla&googleloc=9008143&poi=&campaignid=10460106669&mkgroupid=106723175187&rlsatarget=pla-934793862176&abcId=2146001&merchantid=118841012&gclid=EAIaIQobChMIqvqTtsW-7QIVDYrICh1fBAe3EAQYASABEgJ14PD_BwE

  • @g0935260205
    @g09352602053 жыл бұрын

    why don't use the teesy serial to rpi serial、this sol may be more reliable

  • @asandal1598
    @asandal15983 жыл бұрын

    Seems way cheaper than the 250k $ one