Тёмный

Arduino Joystick 2.0 Library - Beginners Guide 

Dan's Tech Box
Подписаться 720
Просмотров 81 тыс.
50% 1

A beginners guide to using the Arduino Joystick 2.0 Library, by MHeironimus
Github for Library
github.com/MHeironimus/Arduin...
Files mentioned in video (Sketch + AVR Board Folder)
drive.google.com/drive/folder...
The Library will only work on MEGA32u4 boards, such as the Arduino Pro Micro or Leonardo, or a AT91SAM board like the Arduino Due.

Кино

Опубликовано:

 

3 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 204   
@manch.gamingrodri8089
@manch.gamingrodri8089 3 года назад
Enormous thanks for the tutorial and amazing work explaining it, I really didn’t understood the examples of the library and this helped me a ton
@ZachJackson-ri6lf
@ZachJackson-ri6lf 15 дней назад
Thank you so much for this video, I have now successfully built my own flight sim Hotas complete with rudder pedals, a handbrake for racing, 2 joysticks for Farm / Construction Sim, and now a one handed controller / keyboard hybrid, and NONE of them would've worked if i hadn't found your video.
@SynisterGatess07
@SynisterGatess07 4 месяца назад
i ve been looking the whole day for an in depth tutorial and finally found exactly what i needed. thanks
@spencer.h561
@spencer.h561 Год назад
I’ve been looking for this for so long, this is exactly what I need. I am trying to start making and selling flight simulator equipment and this knowledge is going to be extremely helpful!
@colins2
@colins2 3 года назад
Excellent, thanks for posting. I've just built a set of rudder pedals and now need to connect then up, so this tutorial was perfect.
@nocloo6829
@nocloo6829 4 месяца назад
Thanks for this very straightforward tutorial! I am new to Arduino and programming and was looking for exactly what you explained. I had been able to read out a potentiometer with arduino and I played around with Hieronymus' examples, but I could not figure out how to merge the two. Thanks to you, I am so much closer to creating my own flight sim peripherals!
@avm263
@avm263 Год назад
Thankyou so much my dude! I just bought my leonardo after realising I wasn't able to do this with an uno, but didn't know where to go from there. I have some basic coding with arduino but felt really helpless after finding out about this library, your video helped me so much!!! Have a great day sir.
@CRJ700
@CRJ700 Год назад
I have decided that YOU are one of my favorite people in the entire world! Not just because you've got that cool accent thing going on, but because you posted something useful that went straight to the point. Thank you for saving me TONS time by posting this tutorial. It is VERY appreciated!
@tonipaskalin6973
@tonipaskalin6973 3 года назад
You made my life so much easier, thank you so much for making this video.
@Chef_PC
@Chef_PC 11 месяцев назад
Just this one video has helped me immensely to get my button box going. Thanks!
@nigelb5370
@nigelb5370 3 года назад
Many, many, thanks for this tutorial and example code. It was precisely what I needed for my simple DIY button box/potentiometer throttle. I would have been trying to figure out the 'right' code for months if I hadn't found your excellent video. As it was, I was able to program my Arduino in less than ten minutes and it worked perfectly first time.
@mirochlebovec6586
@mirochlebovec6586 Месяц назад
This probably the most comprehensive guide for this library.
@garethbarry3825
@garethbarry3825 7 месяцев назад
Incredibly useful and clear - thank you so much for this.
@Johan-ex5yj
@Johan-ex5yj 2 года назад
This is an excellent tutorial, thank you. 👍 One possible improvement is to add the following in the setup section >> Joystick.setXAxisRange(0, 255); Joystick.setYAxisRange(0, 255); Joystick.setRzAxisRange(0, 255); Joystick.setThrottleRange(0, 255); That ensures that you get full range output, with no need to calibrate.
@CapungPlastik
@CapungPlastik 2 года назад
what's the different using "range" and map?
@Johan-ex5yj
@Johan-ex5yj 2 года назад
@@CapungPlastik In this example the guy is mapping the normal 10 bit analog range of 0 to 1023 to 0 to 255, because he wants the resolution to be bigger (less sensitive). The Joystick library, expects (by default) that the numbers will be 0 to 1023, so you will end up with a Joystick that has only 25% of if it’s full travel. That is why you need to specify that your range is 0 to 255. If however, you use the full 0 to 1023 resolution, you don’t need set the range, and you also do not need to do any mapping. In this case the range command is still useful if you need to invert an axis, then you go: …Range(1023, 0) instead of …Range(0, 1023) .
@vanusy
@vanusy 2 года назад
Thank you sooooo much. I don't know c++ at all and get my first leonardo, but with your guide i sucsessfully make my own sketch for my purpose. Thank you very much
@SkyriderOfficial
@SkyriderOfficial 8 месяцев назад
Most valuable tutorial on the topic. Thanks!!!🎉🎉
@jeffonquest1001
@jeffonquest1001 3 года назад
Finally someone that explains it all!
@triodit
@triodit Год назад
Thank you so much! Your a legend and I'm SOOOOO referancing this in my design documentation!
@abirmahato648
@abirmahato648 Месяц назад
best one out there. hats off man, this is amazing. I have been trying to do this myself for so long. thanks for the help man.
@BokeFlyingSimulations
@BokeFlyingSimulations Год назад
this is an A MA ZING tutorial man. Congratulations, it is VERY helpful!
@NortheastLance
@NortheastLance 3 года назад
Dude this was great. It got me started and taught me a bit. Now i gotta figure out how to make a toggle switch act like a button
@BushidoShishido
@BushidoShishido 3 года назад
Please let me know if you ever figure that out!
@mheironimus
@mheironimus 3 года назад
Thanks for posting this video.
@Sacred_l0g1x
@Sacred_l0g1x 3 года назад
8 data is dat mean it just have 0 to 255 step/precision n how could it has 16bit precision without have latency so much sir?
@hakanviajando
@hakanviajando 3 года назад
Thank you very much for the greatly detailed video.
@the_arrgyle9086
@the_arrgyle9086 3 года назад
THANK YOU! Made my first DIY Throttle yesterday. Out of an Arduino, Lego, some Wires, Hotglue, Rubber Bands, Hockey Tape and Ziplocks ;-)
@SantaGamerYoutube
@SantaGamerYoutube 3 года назад
Legos! Haha great
@davekelly4322
@davekelly4322 Год назад
Just what I needed. Thanks a lot
@astonishing-a
@astonishing-a 2 месяца назад
Legend, Thanks for this!
@cosmicp.o.m.e3460
@cosmicp.o.m.e3460 3 года назад
Thanks for confirming what I was afraid of misunderstanding :Thumbs UP: :)
@jmsian3505
@jmsian3505 Год назад
20:01 changing Arduino Name. Thanks for this!
@sirnewhill
@sirnewhill 3 года назад
Thanks, this video was very helpful!
@ChainsawDNA
@ChainsawDNA 2 года назад
Excellent tutorial!
@garytaylor5646
@garytaylor5646 3 года назад
I just have to say "" Thank you"", I have spent weeks searching RU-vid for your video :) After many headaches of going through Arduino courses etc., I can now do this for my flight sim, totally enjoyed your no waisted info talk, please do more for us old simmers that are not electronics guys but really want to build our sims that work,
@danstechbox7077
@danstechbox7077 3 года назад
Thanks Gary! I plan on doing some vidoes on the basic concepts of arduino and sim controls, but just started a new job so squeezing it in when I can :)
@SwoodyCraft
@SwoodyCraft Год назад
Excellent tut. Thank you
@Joejoe-vd2do
@Joejoe-vd2do 3 года назад
I wish I could've liked this video more than once!
@sudipthapa9877
@sudipthapa9877 2 года назад
You are my god bro wow ❤️❤️❤️ ,thank you very very much dude much appreciated.
@requiem4adreamc
@requiem4adreamc Год назад
Very detailed and informative video. Thank you very much :) I am gonna make an button box and diy analog handbrake. I hope i can manage to do them :)
@stueyanderton
@stueyanderton 3 года назад
Eagerly awaiting Arduino Due video
@danstechbox7077
@danstechbox7077 3 года назад
It will be coming soon! Will be doing a video on propper button coding and debouncing next, along with probably a tour of the Due, and my experiences with it so far.
@stueyanderton
@stueyanderton 3 года назад
@@danstechbox7077 Looking forward to it, and thanks for engaging!
@casperhxr6018
@casperhxr6018 2 года назад
Very helpful, thank you!
@eugenebrown9803
@eugenebrown9803 3 года назад
waiting on your more complex teachings
@danw5996
@danw5996 Год назад
Thanks for this!
@Marcin79W
@Marcin79W 3 года назад
Thank you, big help!
@ProgramAndNectar
@ProgramAndNectar 2 года назад
this works! thank you!
@tbryson2
@tbryson2 3 года назад
Thank you for taking the time to present this! It's exactly what I've been looking for! One question though, when you were calibrating the axis, the visual indication was jumping all over the place! Obviously it didn't affect the outcome, but is that normal and / or something to "worry" about? Will that same jumping around be evident while using the Arduino as a joystick controller?
@chethy7353
@chethy7353 3 года назад
very helpful bro
@dmmuller
@dmmuller Год назад
Thanks for taking the time to make this video and explain the steps thoroughly. Did you ever complete the button matrix version at all?
@felipeyoshino6951
@felipeyoshino6951 2 года назад
Easiest like I've ever gave in a video
@PuuTV
@PuuTV 3 года назад
Amazing video, shame you only have 55 subscribers.
@Nikolas_A
@Nikolas_A Год назад
I run the multiple joystick example. It enumerates four joysticks (all named Arduino Micro). Is there a way to name each separately? E.g. Joystick1, Joystick2 etc
@naveenDEAS
@naveenDEAS 3 года назад
First of all I would like to thank you for providing such an informative and useful video. Really!! Actually I was planning to make a arcade joystick using a keyboard encoder taken out of a usb keyboard. But using a Arduino Leonardo looks much efficient and better. I have some questions!! I am planning to make a Mame arcade encoder with 4 direction keys + around 14 other keys to play and control the settings of Mame. As you know, in arcade fighting games, we press multiple keys simultaneously ( for example, up+right+ button 1 etc), will it be possible to do so without any delays? In computer keyboards, when we press multiple keys, we have problems such as keyboard ghosting and masking. So Arduino leonardo keyboard encoder will have the same problems?
@toyoboi
@toyoboi 3 года назад
you should make another video. I'm working on my first project (a 6 DOF joystick using a stewart platform) and I'm struggling with quite a bit.
@agenchicken
@agenchicken 3 года назад
Nice video man good job and ty for helping us! If I can ask you if you can explain how the steering and brake work and how we can use this library for making a steering wheel and if I can. Ty for everything and also you have a really nice voice!
@danstechbox7077
@danstechbox7077 3 года назад
Thanks for the complement! I do actually do some voice work at times! As for your question, thats fairly straight forward. Instead of defining the Axis as X,Y, Rz, and Throttle as I did in the video, you can define the axis as any of the avalible in Windows HID, as shown in the avalible axis when you define your joystick (I have them listed out in the example code in the description). In your case, you could make a pedal set using Accelerator and Brake as Axis, with possibly a Digital Button for a Clutch (depending on your use case), and then using the Steering Axis for the steering wheel - really depends on how complicated you want your setup to be. The reason you would use the Steering, Brake, and Accelerator axis as opposed to just using an X and Y axis on seperate physical units (such as two potentiometers) is that Windows joins these two together - the Steering, Brake, and Accelerator axis are reserved axis, and are seperated in the HID system so they dont have any dependancies on eachother. While most games can seperate them, there is no guaruntee as different generational implementations of the HID system can get veeeery messy, so it is better to approach it correctly from the HID controller end to avoid any overlaps in the HID software and game decoding. You can pretty much use any potentiometer, or even magnets and Hall-Effect sensors (Will be doing another video on that now my 3D printer is working again), to give you an analog input, however you will need to add a hardware return device (such as a spring or something) to make sure it goes back to reading the middle of the axis, however there are some deadzone tools in both the Windows HID setup and the Joystick 2.0 library (I think) to enable a wider middle section if you cant get an exact centre and find your wheels/rudder/other steering device is slightly leaning when it should be central. This is something I would like to approach in another video with my own Joystick and Flight Control system, but I'm still designing that so in the meantime that should give you a good idea of what to consider when designing/building your own steering wheel and possibly pedal set. You can also make digital buttons work as analog axis at 100% using some clever coding, which I will do in another video shortly, if you want to have a button on the steering wheel for brake but dont want to use a digital button, and would rather use the Brake Axis - but that depends more on how you're building your steering wheel and what games/software you want to use it on. Hope that answers your question well enough, but let me know if you have any more specific questions or would like me to clarify anything.
@agenchicken
@agenchicken 3 года назад
@@danstechbox7077 Yeah ty for all of the information is really helpful but I have 1 more question I have no problem with the steering wheel and pedals with an optical encoder and potentiometers but the strange thing is in the game f1 2020. I have a very hard time setting the controls and sometimes it does not even detect it. but in the game Asseto corsa I have no such problems and it's working wonderfully. If you have any idea why it's doing that its going to be amazing ty again for the help. Also, I want to have force feedback and I have found a joystick library similar to that one but I am not sure how the schematics go and what should I do if you can help me it will be amazing. This is the library github.com/YukMingLaw/ArduinoJoystickWithFFBLibrary
@paulb36utube
@paulb36utube 3 года назад
This is a nice simple explanation. I’ve had to figure out through trial and error ( and a few tears) wish I saw this way earlier. One question I have been able to do a twin joystick with that library. I’ve gotten a twin gimbal (used in RC drones) that run off 3.3v that I’ve hooked up but just can’t get them working together (and the sensitivity is outrages -thinking I need either hardware or software debugging ) [Frsky M9-Gimbal M9 High Sensitivity Hall Sensor Gimbal For Taranis X9D & X9D Plus RC Parts] Any chance of giving it a crack? The software that is.
@gkps2363
@gkps2363 3 года назад
Can you make a video of the matrix buttons? I think what you said very well helped me a lot
@battlebros7075
@battlebros7075 3 года назад
Nice Video!!! It resolved a lot of my problems. Is it possible to connect the arduino with a shift register and use the Joystick Library for having more buttons?
@tannimkyraxx
@tannimkyraxx 3 года назад
The Mega and Uno can be flashed to report as HID, but it takes a bit of extra steps and the unojoy library is a little more limited
@fernank017
@fernank017 2 года назад
i've been trying to figure this out, how would I go about it?
@amrosero
@amrosero 2 года назад
Hi, I can get a Unojoy device with Mega and Uno, but can you personalize the setup, (Name of HID in PC)?
@arias80rp10
@arias80rp10 6 месяцев назад
Fernan, u should save all that effort and hours u will spend on that, and just buy any board tih atmega32u4 like leonardo or yue @@fernank017
@LockDCS
@LockDCS 3 года назад
Awesome video. Once you program the board, can you still reprogram it with the IDE if the USB controller still thinks it is a Joystick?
@RedPixels_
@RedPixels_ 2 года назад
Thanks so much for the tutorial, so useful! I just have one problem: in the Arduino folder there is no "hardware" folder, what could be the reason of this issue?
@JoePCP
@JoePCP 2 года назад
I would also like to commend you on such an informative and interesting video. I have used your sketch quite sucessfully for my flight deck but have come up against the issue you mentioned, where more than onbe board is used. I.E. they both addess the same buttons. I've followed your description at the end of the video and for the most part undertand what should be done. However the boards.txt file in my system already includes descriptions of a number of diferent boards, should I add the data to my existing boads file or replace it with the one you provided? Also should I just change the product ID or both the vendor and product ID? Sorry to burden you with this but my 77 year old brain is not as quick as it used to be. Regards Joe.
@rabajter2746
@rabajter2746 2 года назад
I really like your tutorial, but i have one question. How do you make it work in games ? Even tho the game controllers tab in control panel registers the joystick, games do not want to work with it. Do you know what may be possible fix for it ?
@shaggyprimetime8813
@shaggyprimetime8813 2 года назад
Hi I need some advice pls when you spoke about card selection I have a uno and the joystick library isn't supported by that card bit is the joystick library essentially designating the card so the computer understands its a joystick or can I still use the understands as a joystick without using the library as I want to make a dual throttle controller for a flight sim using 10k pots any advice is appreciated im new to this thanx
@techie2337
@techie2337 3 года назад
Greetings. Thank you for the video. I just found the joystick library and I have been trying to figure out how to use it. I created my own circuit board that hold a Leonardo. One of many questions I have is how would you assign analog inputs coming in from shift registers to individual variables to be called later as buttons? I'm waiting to see how you created an array for multiple buttons as well. I'm very much new to this so watching you explain your code has helped. Still so much I don't understand. Thanks for the videos.
@danstechbox7077
@danstechbox7077 3 года назад
Will be doing one on button arrays (both binary and row-column) soon. I will also be doing input/output multiplexing using muxing boards (might also be called shift registers but that’s the name I know them under). I am currently writing a series called: “How to (Properly) Arduino to cover the basics of wiring and coding inputs and outputs in an appropriate and board-safe manner, so keep tuned! Waiting on some parts but will be recording soon!
@BooktownBoy
@BooktownBoy 3 года назад
This is an excellent video, thank you. Just a question about giving the pro micro's a unique name...would I need to rename, change PID (do I make up PID?) upload to board, then change it again to another unique name before uploading the next sketch to the next pro micro? ie, "joystick" PID x for first pro micro and "throttle" PID y for second one... I couldn't quite follow that part of the vid.
@BooktownBoy
@BooktownBoy 3 года назад
EDIT: Don't worry, I've sussed it after going over the end of the vid a few times. ^ThumbsUp^
@johnpeters5906
@johnpeters5906 2 года назад
Thank you very much, I'am so glad ;) that I have found this video. You did a very good job. I'am going to look for other tutorials. Question; why is it "Up to 2 Hat Switches", has this to do with the number of pins ?.
@simtcr
@simtcr 2 года назад
Will this work with a esp8266 nodemcu?
@alessandromarrone5355
@alessandromarrone5355 2 года назад
thanks for this video that's was very helpful.....can you use distance from ultrasonic sensors as button imput?
@gobdav
@gobdav 2 года назад
Thank you. Finally got my switches to work as button. How would I wire/program a 3 position switch (on/off/on) using this code?
@OvaisDIYGarage
@OvaisDIYGarage 2 года назад
how did you have it to work in fs2020? i tried connecting mine it is being recognized by windows and works on dcs as well, but on fs202 i see the controller but cant assign anythng to it , fs220 doesn't allow me to map anything on my attached board
@joaolancha8824
@joaolancha8824 3 года назад
Hey dude, Amazing video, helped me so much. Im running into a little bit of an issue, i dont know if maybe you can help me. Im currently making a button box for xplane, and to do a test i just connected a toggle switch to the arduino micro and made a joystick (exactly like you did) but with only one button, uploaded the code and tested on the windows manager for usb game devices, everything was working.However, when i connect the arduino micro and go into Xplane the game freezes, do you have any idea what can be causing this issue? Thanks in advance
@danstechbox7077
@danstechbox7077 3 года назад
Glad it helped you! It could be a number of things. I know XPlane has a few reserved USB device ID's, so you might need to change the device ID as I outline in the video to something further along, just to ensure that it's not clashing with anything. With Toggle Switches, it could be the continous signal - in a few of my games I know i've seen this issue. I am currently working on a function module to take a toggle switch and get the code/windows to treat it as two discrete button presses, but I'll need a bit of fiddling to make sure it works, and likewise will also require some input on the user end to make sure that the switch position matches up with the simulation position. For now, try removing the toggle switches and using push buttons instead - see if that get's XPlane to play nice. Otherwise, try shifting the USB device ID along a bit in case you've hit a reserved value. Hope that helps.
@assamita81
@assamita81 Год назад
Hey there. I'm working on a device using this library. I need to know the status for a specific button at all times. So you set a button by using Joystick.setButton(buttonID, status). Is there any formula that gives you the status of that button? for instance Joystick.readButton(buttonID), and it returns 1 or 0? Important to mention that I'm not using individual pins for buttons, but a Keypad matrix of buttons.
@MegaBrettlee
@MegaBrettlee 2 года назад
hey there great vid one question i had i need two throttles do i just label them as throttle 1 and throttle 2
@HansVGinkel
@HansVGinkel 3 года назад
Hi, is it possible with this Joystick.h 2.0 library to make a XBOX 360 or XBOX ONE PC controller? I have a PC game that only accepts that type of controller. Or do I need the XInput.h library instead? (I'm breaking my head on this)
@danstechbox7077
@danstechbox7077 3 года назад
Joystick 2.0 take inputs in and spits them out to the OS as a dedicated HID input device, which is recognisable by most kinds of OS. The XInput library emulates control input by pretending to be a Xbox 360 controller, and triggering command presses on that virtual controller. XInput is limited to 10 + 1 Buttons, 2 Two-Axis joysticks, Two analog triggers, and a single D-Pad hat switch. Joystick 2.0 gives you 32 buttons, 10 Axis, and 2 Hat switches depending on your configuration. In theory, it should be able to work with both Joystick.h and Xinput.h as they both produce controllers using the HID interface, but I'd test it on your system as they both use the same family of boards. From there, depending on your use case, choose which library fits your purpose.
@HansVGinkel
@HansVGinkel 3 года назад
@@danstechbox7077 Thanks for your answer. In the meantime I've tried both libraries. It's only recognised as a XBOX controller with the XInput.h library. It's not being recognised as a XBOX controller with the Joystick.h 2.0 library.
@user-fy3xh7oj7c
@user-fy3xh7oj7c Год назад
Hello, thanks you, but can you help me with rotation x and rotation y, I can't to turn on them
@Magoo277
@Magoo277 2 года назад
Would this work if I used it for the nintendo switch or do I need a whole different library to work with that?
@malejvelkej_
@malejvelkej_ Год назад
Hi, i have maybe an issue, when i'm in the game controler properties and i have for exmaple throttle and z rotaion set in the code and when i turn the potentiometr it moves with both of the values please help
@johanns.rivera3480
@johanns.rivera3480 Год назад
it says that I have downloaded the library and it shows in my library folders but i get an error message saying there is so such file as joystick .h
@jasongoldenberg973
@jasongoldenberg973 3 года назад
I am having trouble getting two leonardos to work together. When i connected the second one, it started to have issues. Now when i try to start from scratch with only one board, it never gets detected in usb game controllers, and in device manager shows with an ! next to that device. I can upload new sketch fine. tried changing vid and pid, as well as id in the sketch. Any thoughts?
@danstechbox7077
@danstechbox7077 3 года назад
I've seen a few issues with the Leonardos, particularly between different revisions - not sure if its a USB handover issue or what. If you can, try a different MEGA32u4 board to see if that resolves the issue. I'm personally looking into the Arduino Micro based on the 32u4 (not the Pro-Micro. This one has 6 Analog Pins) as it's similar to a Leonardo but is smaller form factor and doesnt have the USB Handover issues. Have you tried removing the drivers in Device Manager and re-installing them? Could be a COM issue too. That's all that springs to mind at the moment. I will be doin another video soon on some revisions I've made to my parts of the code, along with some more testing on using two controllers at once in the same game/HID instance.
@FERNANDOPENAS
@FERNANDOPENAS 3 года назад
How do I declare multiple buttons in a single input in this code? I understand the wiring but do not know the code.
@erfansn869
@erfansn869 2 года назад
Thanks What is R1 on board joystick?
@ourlifeofpoint3519
@ourlifeofpoint3519 Год назад
Very good tutorial, but 1 question. In the Set up USB game controllers the joystick recognized for calibration and use only hen the arduino ide sodtware runs. If the IDE close the controller stop working. Maybe stupid question, but why this happend? Need also software for communication? Thanks!!!
@andrewjamez
@andrewjamez 3 года назад
hi there thanks for your tutorial, Are you able to name your device? for example I am building flight sim controllers and want the name of the controller to show in the joystick calibration menu and not just "arduino Leonardo"...
@lalljp
@lalljp 2 года назад
Thanks, this is great. I've just set up an analog stick so far. I had to use 0 to 255 instead of 0 to 1023 for the read values. But I can't figure out how to reverse an axis. I thought I could just do Joystick.setYAxis(255 - y); but apparently not
@lewild
@lewild 2 года назад
Hi, i was looking here for same reason but i've found by myself. You should intervert 0 and 255 value like this exemple : (xAxis_,0,1023,255,0). i hope it can help you and other people as us :) PS: i'm french so apologize if it's not very clear.
@Johan-ex5yj
@Johan-ex5yj 2 года назад
@@lewild Or in the setup section >> Joystick.setXAxisRange(0, 255); // for normal direction Joystick.setYAxisRange(255, 0); // for reverse direction
@theshawnmccown
@theshawnmccown 2 года назад
What would I need to add to set a deadzone?
@Vintage_USA_Tech
@Vintage_USA_Tech 3 года назад
Man that was a great video.... That really helped me understand how this library works and how easy it is to use, 2 question's have you had the time to get the hat switch video done yet? and 2nd you have a folder called hardware in your Arduino folder where you changed the name of the board in the board text file.... I do not have that folder I'm running IDE version 1.8.13 and it is a fresh install.... how do you get that folder with the board information?
@Vintage_USA_Tech
@Vintage_USA_Tech 3 года назад
Ok scratch that 2nd question I installed the Arduino IDE from the App store and that comes with its own can of worms when it comes to permission's I have a feeling the board.txt file is in there I just need to figure out how to get access to it. Windows is such a turd... cant wait until I can use Linux as a game box.
@BooktownBoy
@BooktownBoy 3 года назад
@@Vintage_USA_Tech Just create the hardware folder in Documents>Arduino alongside your libraries and sketches folders, then create a named folder inside that, copy the avr folder from the google drive link (unzipped) into that named folder and edit the boads.txt as required. Profit??? Just learned myself so thought I'd chime in :)
@manamdigeable
@manamdigeable Год назад
hi, Thx for the tutorial. can I use this program for using rotary encoders in flight simulators ??
@jason6344
@jason6344 3 года назад
I am very new to this and trying to make a joystick that emulates a controllers left analog stick. I have a joystick module and am soon to get a leonardo board . I am not so sure what to do past this.
@danstechbox7077
@danstechbox7077 3 года назад
If you watch the video and follow along with the way I've wired up the joystick, and when you're defining the code you only need to have the X and Y axis included (along with a button press if you want that in there too), that should do the job.
@robertaltekruse9403
@robertaltekruse9403 3 года назад
@DCFreelanceAudio I have been racking my brain trying to figure out why I can't get my Arduino Due detected as a GamePad. Everything compiles and flashes over fine, but will not come up as a USB Controller. You use a Leonardo in your video, but you mention the Duo should work given its chip. Any advice to get my sketch(which is basically the same as yours) to work?
@danstechbox7077
@danstechbox7077 3 года назад
Make sure you're using the right USB port - the Due has a Native USB port and a Programming USB Port. While you can program through both (providing you make sure the correct port is selected in the Arduino IDE), the Due will only work as an HID using the Native USB port as a connection.
@robertaltekruse9403
@robertaltekruse9403 3 года назад
@@danstechbox7077 Wow, I'm totally overlooked that. Since it was registering as connected I didn't think to use the Native port for testing, I just assumed the Programing port would be fine. Thanks!!!
@dylans4776
@dylans4776 2 года назад
Would you happen to know how to hookup a 3 position switch (mainly the coding for that) I’d like to use it as a flaps switch
@Johan-ex5yj
@Johan-ex5yj 2 года назад
Assuming a centre- off- 3 position switch and using A2 input and RzAxis. Connect a 10kΩ resistor from A2 to Vcc Connect a 30kΩ resistor from A2 to Gnd Connect top terminal of switch to Gnd Connect middle terminal of switch to A2 Connect bottom terminal of switch to Vcc In your Sketch: In the setup section use: Joystick.setRzAxisRange(0, 1023); In the loop section use: Joystick.setRzAxis(analogRead(A2) - 512); This should give you (in your flight sim) a control surface that is centralized when the 3 position switch is in up position, half way down when switch is in middle position, and all the way down when switch is in down position. If your control surface is moving in the wrong direction, simply use Joystick.setRzAxisRange(1023, 0); instead.
@DarkWoodProductions
@DarkWoodProductions 3 года назад
Is there a way to connect 2 arduinos as the same controller. In my hardware configuration I would like to connect 2 analog controllers with their individual arduino as one, since de AM2 Emulator crashes when having more than 3 analog devices connected. I've already tried giving both arduinos the same Hex value but they still appear as different devices. Do you have any insight on how it could be done. Your help would be inmensely appreciated! Geo.
@mattivirta
@mattivirta 3 года назад
add how many you need arduino board to usb port, usb can working many board sametime.
@brianpaavo8192
@brianpaavo8192 2 года назад
Thank you very much. This was a great video for the first steps, I've successfully created two arduino leonardos each with several buttons and potentiometers. I'm clearly missing something at the end (as I see other commenters have)...I have created an alternate boards.txt file, altered the name, pid, and vid, then uploaded the sketch to one of the leonardos. When I open USB controllers to calibrate I only see one leonardo even though both are plugged in. There's something seeming skipped quickly past on creating a ?second? hardware directory? Went through several times...can you expand on that step please?
@brianpaavo8192
@brianpaavo8192 2 года назад
Renaming a second Leonardo is much more complex now. On Windows10 the ACTUAL boards.txt file is in the WindowsApps folder which is one of the most heavily protected locations and uneditable without complex permissions changes which are dangerous for other windows apps. The intermediate solutions seems to either use a Linux system OR us an earlier non-admin installation of the IDE. Working on that now.
@Johan-ex5yj
@Johan-ex5yj 2 года назад
@@brianpaavo8192 My Arduino Pro Micro can be programmed as a Board: “Arduino Leonardo” ; or as a Board: “Arduino Micro”. Both works fine as a Joystick. This gives you 2 different names in Devices. *(and that is just using the standard installation, without adding a boards.txt of your own)* I do not have 2 Arduino Pro Micro boards so can’t test if both will work at the same time. But this is something you can try, and please report back to say if this is a good alternative method.
@tnpotomacrr4792
@tnpotomacrr4792 2 года назад
It seems I was able to change an Arduino Micro name by finding the boards.txt in the Hardware folder that resides in the Arduino IDE program files. When I added my own boards.txt under the documents/Arduino/Hardware, the boards.txt there was ignored and uploading the sketch would revert back to the boards.txt in the IDE’s program folders.
@86poulin
@86poulin 2 года назад
Please someone help me. i try and upload the sketch exactly as he wrote it, then i even try and do an example from the uploaded sketch example and i keep getting 'Joystick_' does not name a type; did you mean 'Joystick'? What am i doing wrong?
@Sanchez9241
@Sanchez9241 8 месяцев назад
how to add vibrations to this joystick library?
@xaviercaju
@xaviercaju 11 месяцев назад
Hello! Could be possible to use this for a PlayStation controller?
@alecont6488
@alecont6488 3 года назад
Hello, very good tutorial, it served me a lot since I am a novice in this. But I want to ask you a question. How do I achieve as many resolution bits as possible ?? Since I want to make 3 pedals for my driving simulator. Accelerator, brake and clutch and I want you to have the highest possible resolution. I'm a rookie and I don't quite understand MHeironimus' drivingcontroller example. I'd appreciate it if you could help me. Greetings and sorry for my English.
@danstechbox7077
@danstechbox7077 3 года назад
There's a difference between highest resolution possible and a useable resolution. The max possible resolution on an Arduino based Analog pin is 10 bit, returning a value between 0 and 1023 - this is done as a function of a referance voltage (ideally from the VCC/Vref pin on the arduino board) and a common ground, done via a voltage divider using a potentiometer or a resistor array. The problem with using that resolution of value is jitter, where the returned function voltage is not stable, due to interferance along the wires, manufacturing tollerances on the potentiometer, dust in the contacts, etc... As a result, you get a continually moving input, which can cause a lot of issues with calibration, phantom data values, or inconsistent data. To solve this, we re-map the data to give a smoothed average (otherwise known as debouncing), from the 0-1023 range to another subset. This can be done easily using the map() function, and then taking this value into the Joystick input. As for the value to use, the best way to imagine it is how many "steps" of data you want to be sending. The default would be 1024 different data steps, which at the tollerence as a pedal would be way too much, however you may want different ranges for different pedals. For example, the accelerator and brake would probably be good to start at a 64-value step range, whereas the clutch might be better with a lower resolution range of 32, or maybe even 16. Start with values like that, and then test from there - if it feels too "stepped", use a higher step range. If it feels too "jumpy" or "slippery", use a lower step range. I would suggest working in base 2 for these ranges (4, 8, 16, 32, 64, etc), but you can slip down to intervals of 5 or 10 if you really need to. I hope that explains the general concept, I am working on a small series of videos introducing basic concepts of arduino and microcontroller coding, but just started a new job so will be fitting it in when I have time. Any other questions, just ask.
@lironkalfa5479
@lironkalfa5479 2 года назад
I can use a 3 analog joystick?
@chiragjeram
@chiragjeram 3 года назад
thank you sir for nice video, can you guide how can i use yours' beginner guide sketch to make 1 joystick and 20 push buttons on arduino leonardo?
@danstechbox7077
@danstechbox7077 3 года назад
Hi Chirag Jeram! Thanks for the comment. Hope i can answer your question properly. To use the arduino leonardo, you literally just need to change the board - the only difference between the two in regards to this project are the number of pins and the pin numbering. Nothing in the code would change apart from adding in the extra buttons and removing your unused axis. HOWEVER, although the technical spec says that the board has 20 Digital Pins and 6 Analog pins, a number of these pins are shared due to the nature of the chipset, and as a result you can have a maximum of 20 Digital Pins, 14 Digital Pins and 6 Analog Pins, OR Any variation of the above. For this kind of setup, you would be limited to 18 Digital Pins for buttons, and 2 Analog pins for the X/Y of the joystick. If you reeeally need 20 buttons, you could either go for a button matrix (more complicated option) or swapy the board out for the Arduino Due, which has significantly more Digital Pins, but that may be overkill depending on your project. Below I'll go into the changes for the code, regardless of your board choice (I wont go into button matrixing as that is a video unto itself) In the Joystick Initialisation section, reduce your axis to just including X and Y, everything else for false, and change the number of buttons to 20 (or however many you want). For the Joystick - In the beginner Guide Sketch, you would use the X/Y axis of the Joystick as A0 and A1, set up with the hardware how I wired the joystick up in the video - Just comment out or delete the "#define joy####" lines with whichever axis you dont wish to use, and likewise the Axis Initialization and Axis Reading sections for the axis you are not using. For the Buttons - Duplicate the "#define joyButton####" lines, changing the button number and pin inputs for your buttons to the button number (in this case 1-20) and the pin you are putting it in to in the Arduino board. Likewise, set up the "pinmode" of the extra buttons as demonstrated for button 1-3 in the code, and make sure to do the same for the "LastButton#State" section per button, or none of them will work. You will then need to copy the "Current Button State" IF loop per button in the "Button Reading During Runtime", changing the button Number for every copy. If you want to, rather than copying them individually, you could subnest the IF loop and do a for loop to cycle the test between buttons 1 and 20, but only if you feel confident doing that. Otherwise, everything else should be as it is in the video. Let me know if you have any more questions.
@chiragjeram
@chiragjeram 3 года назад
@@danstechbox7077 thank you very much for detailed reply....i will make it practically and then let you know how it goes........have a good day !
@lancelot4915
@lancelot4915 3 года назад
Excelent tutorial, the best i found to get and idea of how to have a HID joystick with an Arduino. My question would be, is it possible to wire 32 buttons and four axis to the Leonardo? How?. The library allows it, but don´t know if it is possible with the board.
@danstechbox7077
@danstechbox7077 3 года назад
The Four Axis wouldnt be an issue with the Leonardo, however with the buttons you'd hit the pin limit pretty quickly. The way I see it, you have three options: 1) Get a board that has the right number of pins AND is USB HID complient and do a One-to-One pinmapping approach - in this case you'd be limited to the Arduino Due 2) Do a Row-Column approach for the buttons using standard keyboard matrixing - there are several guides on how to do this online. 3) Use a Button library, such as AceButton, which has compatibility for Binary button mapping (using base 2 binary as pin inputs) - you'd only need 6 pins for 32 Buttons, in this case. There are approaches using resistor ladders and analog inputs, however depending on your board and other circuitry, this could just complicate things, especially if there's any noise on the wiring or switches. I personally would consider looking at the AceButton library for this, as it has excellent de-bouncing support for button presses too - however, if you want to keep your wiring and code simple, get an Arduino Due. They're avalible on Ebay for about £10-£15 a board. I will be doing a video at some point soon about Binary Button Mapping as I think it's a very valid approach in comparison to Row-Column matrixing.
@tom_gtom6580
@tom_gtom6580 3 года назад
I think this should work for your issue. www.instructables.com/How-to-access-5-buttons-through-1-Arduino-input/
@lancelot4915
@lancelot4915 3 года назад
@@tom_gtom6580 Thanks Tom for the link. Reading it now.
@lancelot4915
@lancelot4915 3 года назад
@@danstechbox7077 Thanks for the answer, after some reading, i finally decided to go with the matrix. The third option is completely new for me, but i will start to research about it now,. At first glance it seems the best solution.
@thoufeekbaber8597
@thoufeekbaber8597 Год назад
this is gem..but can i do same procedures in uno??
@UzairAli001
@UzairAli001 Год назад
I can't find boards.txt there is no hardware folder. I'm using Arduino IDE 2.0
@IronManhood
@IronManhood Год назад
Anybody know why my pro micro doesn't register as a game controller? I tested it in game and it seemed to work properly but I'm not able to calibrate it. Pretty annoying honestly. I must admit I'm a beginner and didn't understand the proper procedure for uploading to the board and went through a whole series of suggestions from different threads that I found with google. One suggesting that I uninstall the drivers and reinstall them. I did several times and eventually the board stopped showing as an arduino leonardo. I managed to figure out how to install the drivers located in the arduino ide installation but that didn't seem to fix it. -Should the board be using HID driver from 2006?- Edit: I managed to figure out the issue. It was my goal to include an ADS1115 in my project for higher precision and that was the problem. Specifically, calling the "Adafruit_ADS1X15.h" constructor before the "Joystick.h" constructor. So now I setup the joystick first and then the ads.
@lucares92
@lucares92 Месяц назад
Can't find the avr folder in arduino 2.3.2
@CapungPlastik
@CapungPlastik 2 года назад
Great tutorial! Btw, I've read some other examples. they have different values for the "set Axis" like (-127,127), (0,255), (-512, 512), (0,1023).. any info on this and what value should we choose? regards
@Johan-ex5yj
@Johan-ex5yj 2 года назад
That is probably related to the mechanical limitations of the setup. Example: You have built your own rudder- pedals. The travel in the potentiometer you are using is limited, only giving a voltage output from 1 to 4 volts (not 0 to 5 volts). If you put this into your sketch (without any range or map) and print out the values you are getting, it will be something like 204 to 818. The rudder in your Simulator (expecting 0 to 1023) will not turn its full range. So what you do to fix that, is set the range like this: Joystick.setRudderRange(204,818). Then everything will work fine.
@CapungPlastik
@CapungPlastik 2 года назад
@@Johan-ex5yj Hi, sorry if discussing this within the comment section. So I build a wireless drone simulator dongle using this library for the input. Its recepting values within 0-1023 for AETR input. While other simulator accepting the input as like in the game controller tab (after calibrated), some other simulator only works on certain values of input. like 0 to 127 or 180 to 360.. eventually I could manage this using Range and mapping, but when I connect the module to Android, it needs 0-1023 input. So using a mapped values will limit the stick movements. So, is there a way to recognize or manage the input for different device or OS (computer and mobile phone/Windows and Android)? (beside adding a button to switch value based on device 😀) Regards
@Johan-ex5yj
@Johan-ex5yj 2 года назад
@@CapungPlastik Yes, if you have simulators that expect other input ranges than the standard 0- 1023, you will have to use different range settings in your Arduino sketch. If you want to use the same Arduino micro for these different simulators, I would add a DIP switch connected to some digital inputs as a way to select the range to use. If you are developing your own simulator- interface in Windows or Android, you could use the serial port that the Arduino provides to communicate to your Arduino sketch to specify what range you want to use.
@MonicaYap
@MonicaYap Год назад
@@Johan-ex5yj hello sir can you help me? i am planning to use the potentiometer as a roll and pitch for my diy yoke. It doesn't obtain the full range. I tried the original code from this video, it is 0-1023 , 0-255. In the properties of my arduino, the value is flickering/changing even after I calibrated it. What should I do about this? What value should i use then?
@Johan-ex5yj
@Johan-ex5yj Год назад
@@MonicaYap Do not calibrate, use the min/max numbers obtained from Serial.println(Val) command in your sketch, entering them into Joystick.setRyAxisRange(Min?, Max?) afterwards. If this still gives too poor resolution, you need to find pots with smaller electrical angle (90deg or less), as is used in joysticks. Another way to go is to use Hall Effect Sensors. See this video >> ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-SgqflcHBTwc.html
Далее
DIY Flight Simulator Joystick
9:10
Просмотров 1 млн
Incredible magic 🤯✨
00:53
Просмотров 2,1 млн
MAKE THIS BUTTON BOX | 32 FUNCTION w ENCODERS
7:38
Просмотров 2,1 млн
I made a VR cockpit from PVC pipe
16:14
Просмотров 91 тыс.
Arduino 56 Button Joystick 737 Gear Control
16:43
Просмотров 43 тыс.
27 июня 2024 г.
0:10
Просмотров 2,2 млн