Building a Programmable Robotics Controller With XBee, Arduino, 3D Printing and PCBs Part 1
Вставка
- Опубліковано 6 чер 2024
- Here's a fully programmable, battery powered, arduino controller which uses XBee to communicate wirelessly with any project you can think of! It's a work in progress, check back for the final thing!
PCBs for this project made with JLCPCB: $2 for 1-8 Layer PCBs, get JLCPCB $54 new user coupons jlcpcb.com/?from=will
Support me on Patreon! / nilheimmechatronics
Discord Server: / discord
Contact: enquiries@willcogley.com
GitHub: github.com/ikkalebob/NM-bioni...
MatterHackers site: www.matterhackers.com?aff=7517
MatterHackers Silver PETG: www.matterhackers.com/store/l...
MatterHackers Tough PLA White: www.matterhackers.com/store/l...
Chapters:
00:00 Building a Programmable Robotics Controller With XBee, Arduino, 3D Printing and PCBs Part 1
01:23 Motivation
02:17 Electronics
03:26 PCB Design
05:44 CAD Design
07:07 XBee
10:06 Next Steps - Наука та технологія
I love the idea of using a 3D printer for rapid prototyping the controller body (large layer size for fast printing) and then once it's dialed in nicely, creating a final version with really fine layer height (long-ass print but incredibly smooth) and then resin-dipping it for that ultimate surface smoothness... just my thought from seeing the thumbnail, anyway, time to watch and see what happens :D
More on surface mount. When a manufacture shows the pad size for a part they are assuming the solder will be paste applied through a stencil.
JLC does offer a stencil service at a great price. But a stencil is not required for low density boards that don't use fine pitched components.
(back to the pad size) The suggested pad size is often the minimum. It is assumed you want to cram as much together as possible. But if you are hand soldering a board it really helps if the pads are made oversized. I extend the pads where the soldering iron will be used to contact the pad. It helps to have an extra mm or two. It is more work modifying the footprints but it is really worth it when it comes to assembly. Even more so if you need to do any rework later. Maybe replacing a faulty switch. (more on this below)
The soldering iron tip you used was ok but a finer tip would be desirable if you have difficulty soldering the parts. Smaller diameter solder also helps. I forget if I mentioned it in the last video but lead free solder sucks. 63/37 tin/lead solder has a lower melting point. It is what was normally used in industry before the EU put restrictions on imports of commercial products that used it. Lead free solder needs a higher temperature to work and even when it does the results look crappy in comparison to the leaded solder.
I think you did a pretty good job in the design. It is always difficult getting multiple layered parts to fit properly together the first time. The 3D printed housing looks like crap. That's just the way it is with the layer lines. When you get the parts fitting the way you want then it would be worthwhile to put some effort into improving the surface before paint. Sanding, filler, repeat, sand then paint, the sand, then paint. I love the ability 3D printing gives us but it takes more effort into making it look good. Here is a video for inspiration. ua-cam.com/video/u0eKCRtysro/v-deo.html
Cheap surface mount tactile switches. At one point we changed to some cheap switches. They were less than half the cost of the mane brand switches we used for more than a decade. We were buying 10,000 at a time so there was a significant saving, at first. The problem was the plating on the internal contacts. We found that after a while they were becoming intermittent. High humidity environments were part of the problem. We ended up switching to another brand (still cheaper than the first one we originally used) and we haven't had the problems since. Odds are you will probably not have the same issue but if you do you want to be able to replace them. (easier to do with leaded solder and larger pcb pads)
As far as a smaller CPU board. I am a hardware designer. While I have done some programming for microcontrollers for products I am not a programmer. At one point I wanted to get back to doing home projects I decided to use the Arduino IDE because it was so easy to get started with it. The hardware was dirt cheap. There were tons of libraries, some good, some less so. I mainly use the ESP8266 and ESP32 modules because of the wifi capability. But I have also looked at the STMicroelectronics STM32F103C8T6 CPU used on a hobbyist board generally called the "Blue Pill". It has 32 IO pins available and I think it would be a good replacement for the large ATmega board. It is a 3.3 volt processor rather than 5 volts of the AVR parts.
There are clones of the STM32F103C8T6 par being used on some versions of the Blue Pill boards. I have read they are ok, but have some differences compared to the original part. I don't have any experience with them. The "Black Pill" boards use a more advanced processor, STM32F411. The black pill boards only have the original part as far as I have read. I have some of these boards but have not had the time to use them in anything yet. They are higher performance than the STM32F103C8T6. Both are faster CPUs than the old microcontroller used in the ATmega board. If you were to use one of these the slower blue pill board would be better for you as it would use less power. Keep these in mind when you come to the point where you want to change to a smaller CPU board.
This is awesome I'm a hand amputee & I've been wantingvto get into building my own 1 handed controller
I just so happened to be fiddling with an esp32 and ps5 dualsense controller to control my robot right this very moment and just seen you uploaded this video. Brilliant!
I think the vision for this project is perfect and so commendable
Thanks for sharing such inspirational projects on UA-cam. I created a new Robot (Bubo-2T) based on the eye mechanism you shared how to build. I'm based in the North West too, probably a bit further west of Leeds than you! Thanks again @WillCogley
Mr.Cogley really enjoy learning from your videos. Once again thank you for disseminating knowledge.
I've wanted to make a controller like this for a long time, but never actually had anything to use it for. This looks great!
Welcome back???? It's been years!!!!!
EDIT: I'm so hecking happy for news
So happy this guy started uploading again
I would highly recommend using a teesny 4.0. they have essentially the same function as the mega 2560 but a lot smaller
For making your 3D printed part smooth I suggest using woodfiller and sandpaper, then apply some paint to finish it
I love it colour and design........ Specially these print layers are more beautiful than the smooth cad design..
just never stop uploading please
Will, thank you so much for coming back!! We’ve all been waiting for your videos so much!🫡🤙🤙
to improve the soldering a little bit you can use flux (it can be done really easily)
You can use a Teensy 4.1 instead of an Arduino. It's way smaller, it has incredibly greater processing performance, and has more analog pins than even the largest arduino that I'm aware of.
Very nice project! I love when people explane their thougt process insted of just showing the final desing.
For Analogue trigger buttons i strongly recommend using Hall Effect sensosrs and a magnets, Its much simplier and robust design then using pots. Ben Heck constantly rants about it in his vodeos and he have designed built and hacked hundreeds of controllers.
sooo glad youre back
I am loving the Mega 2560 Pro Mini, that might be another thing to consider.
Using one to drive a head with your eyes and mouth, some cat ears, and neck motors currently. Same number of pins but much more compact.
For the trigger you can use a linear potentiometer instead of a rotary one
this looks neat
As a cosplay builder i can say that you should print parts standing up so all the details are in walls and not as top latest. That way it's way cleaner and its easier to sand and paint for a clean finish. Hope that helps
edit: see madcatandrew's comment, mine has been made obsolete.
The Arduino Mega is a lot bigger than it needs to be, I think you've demonstrated the skills to take a whack at taking the design files and adapt them into a different form. Especially if you used some internal layers, I think you could eliminate almost all of the empty surface area, potentially compacting the Mega by half. You could save some area by replacing the large sockets and the reset button with headers, which would also let you use remote sockets, placed wherever in the housing is externally appropriate, say on the side so you can have it plugged in while sitting normally on a surface. It might even be practical to fit all of these components onto the PCB that carries your joysticks; but I think you would find more uses for a compact mega in your projects
Another good alternative would be something like a teensy 4.1 or an esp-32... They're already very small so you would not need to deal with the hassle of designing a µC by yourself. And a nice bonus is that they are a LOT more powerful :D
@@standegrande3330 Smaller and more powerful but the Teensy has far fewer pins exposed compared to the mega, which seems to be a concern. There is the Adafruit Grand Central, a Cortex based Mega formfactor board, but it has a lot more components, and because the Cortex M4 operates at a higher frequencies, 120MHz instead of 16MHz, the trace layout has to be better to avoid noise problems.
I think you could just take the public design files for the mega and make a compacted mega one step above trivially; but making a compacted M4 microcontroller board with 50ish pins, that is also any smaller than the mega, is going to be a challenge for most people, and a significant amount of labor for experts.
That said, I very loosely remember certain M4 chips being capable of nearly 100 pins, 80~ GPIO. The sky's your oyster or whatever. I just think these are two very different endeavors.
@@Ziraya0 A Teensy 4.1 has plenty of pins: 55 digital input/output pins, 35 PWM output pins
18 analog input pins
@@laupetre slight correction, but that's the total number of IO for the chip used on the Teensy 4.1
The board itself only breaks out 41 GPIO to the edge of the board. A further 10 pins or so are available if you jumper wires directly to some SMD pads on the board.
This is probably enough IO though for what Will is doing.
there are hall sensors that are 3pin and emulate a potentiometer. Because of their great sensitivity, you could mount magnets directly on your shoulder triggers. Cheers
I’ll be watching the progress on this one like a hawk. Had nothing but issues with nrfs. I just have to make one small enough to hide in my hand. Luckily it won’t need as many outputs.
wow new sega dreamcast controller looks so awesome :3
Yes! He still uploads!!
For smd soldering use flux, it makes it a lot easier and by a lot I mean the difference between soldering something in 30 secs and breaking the board.
Get yourself some decent magnification and your soldering will become a lot better. Also, SMD soldering has a steeper learning curve, but once you get it, it’s actually easier than through hole soldering
Great content
Xbee looks simple but it's crying out for a wrapper library API where you can just send floats, strings, int arrays etc asynchronously and it just works and updates local variables or fires event handlers at the other end!
Incredible
I would suggest switching from the arduino mega to the teensy 4.1 , it's way faster, and has plenty of pins
Yeahhhhhhhhh dammmmmm ......... something fresh to watch......
Awesome!
BTW, the acronym "ASCII" is pronounced as a word, not an initialism. It rhymes with "pass key".
Maybe it's easyer to use a hall effekt sensor for the triggers on the back. It woud reduce to only one movig part with a magnet and the sensor on the pcb. Maybe thats also the reason they dont sell it anymore.
You could have the atmega2560 soldered onto the io board and potentially add a rp2040 on the side and replace the 1.2 oled display with a colored variant, if not replace the rp2040 would have a much better time processing data over the atmega
Can you show use how to make a spring lock suit
Interesting use of start/finish chars. I've done work with tcp level coms which make use of STX hex 02 (Start of test) ETX hex 03(End of Text) and EOT hex 04 (End of transmission). For avoiding conflicts with visible chars maybe have a look? Pros? Avoid the logic you use in managing . The control chars are there for the reasons you need.
If he wants to send a full range of 256 possible values, then it just changes which characters he needs to escape.
You can easily do smd soldering by just replacing the tip of solder iron. Believe me it makes huge difference
Reminds me of a n64 controller. That's a slick design, might give James Bruton some new ideas compared to his boxy controllers.
Those triggers look identical to the trigger assemblies found in the (original) Xbox S/Duke controllers
Take a look at teensy's they use the same Arduino ecosystem, is much more powerful, more compact while still hawing access to loads of I/O's.
i was just wondering, there is a market on controller thats still vacant. a competitive FPS controller, basically solving double claw problem.
if you are able to design such thing with off the shelf parts, that should be a great start. since it is actually a market gets overlooked by all the companys.
Yo…….. !!!!!!! Ahh I need this !
I’m trying to make something like the gmk keyboard joystick or the maxxstick (just look it up). Any idea what i should start with?
have you not seen the "mega2560 pro" boards? all the pins, much smaller footprint.
I enjoy the lack submarine jokes
I recognized the 128x64 SSD1306 display straight away. Recently I've been hacking away at the Adafruit library for it, removing unnecessary library functions I don't need for my current project to save space for other libraries (SPI.h references for instance).
Have you thought about using an ESP8266 or an ESP32. Small, powerful, WiFi/Bluetooth/ESPNow wireless interface, lots of GPIO (even more if you use an I2C or SPI adapter) and in the case of the ESP32, non volatile memory and two cores for two separate threads.
Before I forget, look into the pcf8574 for expanding IO using I2C. Even if you're using an Arduino nano or an AIthinker ESP32 Cam board, you can massively expand your available IO using a few of those chips and they come in either tht or smd packages.
Solidworks would make your life a lot easier.
Have you used a Xbox Elite controller before? You've got so much space on the back I almost wonder if you could put in some paddles. How the it stands on the battery means you're not laying it down and accidentally clicking them either.
Oh and what did you use for your battery contacts? I used some steel for a similar project but I'm worried about corrosion.
Smooth trigger => hall effect sensor?
hello! where did you guet the xbox cad drawing?
What colege did you studiu?
@willcogley hi will it be possible to get the heart files , thank you
are there any updates on this project?
But with four dualsticks and no action buttons and no dpad, I would miss something and not use it for videogaming. By the way, it looks much heavier than common controler.
How can I write to you, my friend, to report someone stealing your content?
When will you get interested into doing for five nights at Freddy’s animatronics?
wow this was 3 days ago most youtubers i know of has stopped making videos since the flu went viral
just get cracked version of nx or catia, why even bother paying if its not commercial
Why aren’t you doing five nights at Freddy’s animatronics?
no no. How you solder is problematic and wrong. You move the tip and move it. Don't do this. Heat, melt, keep heating, then move avai. that's it.
i hate console controllers