Raspberry Pi Pico: Inputs & Servo Control

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 มิ.ย. 2024
  • Raspberry Pi Pico MicroPython tutorial using a switch, a potentiometer, some LEDs, and an SG90 servo. This video is a direct continuation of my earlier Pi Pico episode: • Raspberry Pi Pico
    All of the code and wiring diagrams included in this video can be accessed from: www.explainingcomputers.com/p...
    You may also be interested in my other project videos, such as the Raspberry Pi Anemometer: • Raspberry Pi Anemomete...
    More videos on SBCs and wider computing and related topics can be found at:
    / explainingcomputers
    You may also like my ExplainingTheFuture channel at: / explainingthefuture
    Chapters:
    00:00 Introduction
    00:42 Back in Action (recap)
    04:15 Switched On (using switches)
    07:20 Great Potential (potentiometer)
    10:19 Servo Control
    13:54 Servo & Pot
    16:33 The Future
    #PiPico #RaspberryPi #Servo #ExplainingComputers
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 434

  • @Ratchet_effect
    @Ratchet_effect 3 ปีที่แล้ว +68

    Ah Chris the Pico has a lot of potential for young ones & us older humans. I like how you mix the practical/coding into an episode & make it enjoyable for all ages.

    • @dang48
      @dang48 ปีที่แล้ว +1

      Exactly. These videos have been a big help in my classes and I'm still tinkering with my Pi and the Tiny2040 (little cousin to the Pico).

  • @PS_Tube
    @PS_Tube 3 ปีที่แล้ว +30

    Pi Pico in action with our old friend servo from the hamster feeder... Another amazing EC Sunday !

  • @laurieinjapan
    @laurieinjapan 2 ปีที่แล้ว +3

    I spotted a Raspberry Pi pico at my local electronics shop. I'm going to use one to make a puzzle box. Thank you for your excellent explanation.

  • @pixadordelterrat2725
    @pixadordelterrat2725 3 ปีที่แล้ว +68

    Zebras and giraffes, virtual puppeteering... This video is both hilarious and educational at the same time. I can't believe it's 17 minutes long, it felt so short!

    • @snoopstp4189
      @snoopstp4189 3 ปีที่แล้ว +2

      Chris only has 3/4 of a million subs, his channel is basically the best kept secret on the interwebs.

  • @paullandry6573
    @paullandry6573 3 ปีที่แล้ว +38

    17 minutes has gone by in a flash an I still want more! Thank you for another fun and educational video (as always)

  • @perrymcclusky4695
    @perrymcclusky4695 3 ปีที่แล้ว +16

    The Raspberry Pi Pico is more interesting then I first thought. Looking forward to your next video!

    • @ExplainingComputers
      @ExplainingComputers  3 ปีที่แล้ว +4

      Hi Perry, there is a lot of potential in this tiny and low-cost little Pi.

    • @hidden_vault
      @hidden_vault 3 ปีที่แล้ว

      There so cheap and affordable which makes them very worthy too

  • @lesliedeana5142
    @lesliedeana5142 3 ปีที่แล้ว +17

    I've been waiting for this. I've bought 2 already!

    • @ExplainingComputers
      @ExplainingComputers  3 ปีที่แล้ว +8

      I think Pi Picos are kind of an addiction!

    • @EcoHamletsUK
      @EcoHamletsUK 3 ปีที่แล้ว +9

      I've got 7 so far! Plus a couple of Pimoroni Tiny 2040. Along with loads of Arduino Unos, Nanos, Megas and Pro Minis, and a few ESP32s, ESP8266s and Seeeduino Xaios. Buying one microcontroller is the start of a very slippery slope!!!!

  • @antoniuskelvinkurniawan
    @antoniuskelvinkurniawan 3 ปีที่แล้ว +10

    I like how you programmed the raspberry pi pico on a raspberry pi 400. Free from x86 system!

  • @iHawke
    @iHawke 3 ปีที่แล้ว +5

    Coincidentally enough, this is something I have been looking for a while now

  • @computerchaot9891
    @computerchaot9891 3 ปีที่แล้ว +12

    I would love to see some experiments with
    FreeRTOS and the Pi Pico

  • @insanemainstream3633
    @insanemainstream3633 3 ปีที่แล้ว +1

    Happy Sunday everyone!!

  • @TradieTrev
    @TradieTrev 3 ปีที่แล้ว +7

    MicroPython is awesome! It brings back the ease of coding similar to the likes of Basic with an interaction of the real world!

  • @fred.chapman
    @fred.chapman 2 ปีที่แล้ว

    Very nicely done, Chris! I like how you explain both hardware and software so we get a complete understanding of the whole system. Enabling the internal pull-down resister for the open switch is a particularly nice touch! Managing the LED pin assignments with a list simplifies the `while` loop in your Python code dramatically.

  • @MicrobyteAlan
    @MicrobyteAlan 3 ปีที่แล้ว +6

    More information for my garden railroad. Interesting and well presented, Thanks

    • @Reziac
      @Reziac 3 ปีที่แล้ว +2

      Ooooh. I like that idea!!

  • @loginregional
    @loginregional 3 ปีที่แล้ว +8

    I hope Mr Scissors and Stanley are fine and aren't jealous of Pico & Servo (the dynamic duo)

  • @chrismorgan441
    @chrismorgan441 3 ปีที่แล้ว

    Another great video for those of us who are not truly computer savvy. You make the coding seem so simple and enjoyable. This inspires me to tear down old electronics, raid the parts store of its switch inventory, pull out a soldering iron, and buy a herd of Picos for the different joints of a few intended puppeteering projects. Nice work. Thanks!

  • @MicroProjects
    @MicroProjects 3 ปีที่แล้ว +2

    This is the thing that i have been looking for a while

  • @PU7MZD
    @PU7MZD 3 ปีที่แล้ว +17

    The dithering can be fixed using a simple closed loop controlling approach. That would be a very good introductory example to Control Theory using the Pico.

    • @marksterling8286
      @marksterling8286 3 ปีที่แล้ว +3

      I wondered if you did some rounding on the pot results say nearest 10 would take out the dithering but without loosing any accuracy

    • @adymode
      @adymode 3 ปีที่แล้ว +5

      simple_smoothed_value = simple_smoothed_value * 0.9 + lastest_value * 0.1

    • @llpBR
      @llpBR 3 ปีที่แล้ว +3

      I would try to divide it by 100 and truncate the result.

    • @neilhughes3823
      @neilhughes3823 3 ปีที่แล้ว

      @@marksterling8286 losing.......loosing...........we know by now how autocorrect sometimes makes our text somewhat inaccurate, so it is worth checking before posting. You may be very experienced in giving commands to computers , so will appreciate accuracy in coding.

    • @robertbox5399
      @robertbox5399 2 ปีที่แล้ว

      You should always place a small (10nF) capacitor on ADC inputs to micros to give something to charge up and dominate the internal sample and hold circuit capacitance. What you get is the result seen here if you don't.

  • @georgenadar9977
    @georgenadar9977 2 ปีที่แล้ว +1

    pls make more of such videos on raspberry pi pico.. All the videos from your channel are awesome

  • @thoughtful_criticiser
    @thoughtful_criticiser 3 ปีที่แล้ว

    Simple and clear, makes programming accessible to everyone. Brilliant channel.

  • @edwardjoyner9344
    @edwardjoyner9344 3 ปีที่แล้ว +1

    Chris I'm so happy you did this video. I think you're the only person I know who has done a demo without just flashing the LED. My mind immediately went to, how supplement the code to stop the jittering...😊...I was totally enthralled. Maybe round the value before passing it to the servo. 😉 Love the videos as always.

  • @Techmagus76
    @Techmagus76 3 ปีที่แล้ว +3

    What i liked the most are the sounds that supports the visual effects of the LEDs after pressing the switch, even if my limited python abilities prevented me from identifying it in the code base.

  • @paulmilligan3007
    @paulmilligan3007 3 ปีที่แล้ว +1

    Excellent work. Pixador’s comment had me fast forwarding to spot the Zebra! Anyway you showed all the basics of input and output - both digital and analog(ue). My Pico starter kit arrived on Friday so tomorrow I’m off to the shed. It was also useful showing how you connect up to the Pi 400 as it helps to get started.

  • @retireeelectronics2649
    @retireeelectronics2649 3 ปีที่แล้ว +1

    Nice Video, picked up a couple picos and now waiting for a few rainy days to play with these

  • @nathanisip
    @nathanisip 3 ปีที่แล้ว +1

    Brilliant introduction to micropython and programming with the Pico! Really excited for my Picos to arrive in a few weeks, it’s a far cry from my assembly code days with the 8051.

  • @hidden_vault
    @hidden_vault 3 ปีที่แล้ว +2

    This series is awesome I'm glad other ppl are loving it too. thankyou much blessings.

  • @almosh3271
    @almosh3271 3 ปีที่แล้ว +1

    your explnations are so clear and right to the point, even with your accent. Two thumbs up I just subscribed .

  • @BryanBenoit
    @BryanBenoit 3 ปีที่แล้ว +4

    Nice video explaining what we can do with those Raspberry Pi Picos and some Python code. Thanks Mr Barnatt !

  • @dang48
    @dang48 ปีที่แล้ว

    Great video as always Chris. Thank you.
    I'm currently working with the Pico's little cousin, the Tiny 2040 and am trying out the coding that you explained in this video. I played around with it as well and had some fun with it. Didn't have a servo motor handy but that's okay. Will be getting one at a later time.
    Thanks for these videos. They're a great help and hoping you get a Tiny2040 for future videos.

  • @simonbeasley989
    @simonbeasley989 3 ปีที่แล้ว +1

    Informative and very well timed, I'm learning and experimenting at the moment with controlling a matrix of LEDs with the ultimate aim of making a unique animated clock. You gave some handy programming tips, especially controlling i/o from an array.

  • @PeteVanDemark
    @PeteVanDemark 3 ปีที่แล้ว +2

    Very well done. This is my favorite EC video of 2021-so far! My RP Pico order just arrived and I can’t wait to try these myself! Bravo!

    • @ExplainingComputers
      @ExplainingComputers  3 ปีที่แล้ว +1

      Sounds like you have some experimenting to do! :) Good luck with it.

    • @PeteVanDemark
      @PeteVanDemark 3 ปีที่แล้ว +1

      @@ExplainingComputers Definitely! Thanks!

  • @WPGinfo
    @WPGinfo 3 ปีที่แล้ว +1

    Very educational! Nice change to the usual SBC-stuff! This stuff encourages me to learn & experiment a bit with the pico and RPi sbc's. Keep up the good work!
    Regards,
    Willem

  • @HKey_Root
    @HKey_Root 3 ปีที่แล้ว

    Smashing. I particularly like the pot controlling the servo, to turn a tuning capacitor in a magnetic loop antenna.

  • @erikdekoster4137
    @erikdekoster4137 3 ปีที่แล้ว +1

    Thanks again Chris, always looking forward to your videos, very informative and useful information brought to us in the usual colourful manner we like.

  • @Hulker69
    @Hulker69 3 ปีที่แล้ว +2

    Great video Chris, as always. I now use CircuitPython on any microcontroller that supports it. I moved away from raw MicroPython except on something like an ESP32 that doesn't support CircuitPython. On the Raspberry Pi RP2040 chip boards there is a great PIOASM assembler that can run out of the box via CircuitPython. The latest version of Thonny does a very good job using MicroPython and CircuitPython boards.

  • @maidbloke
    @maidbloke 3 ปีที่แล้ว +1

    4:20 Christopher dismantled radios when he was 12. Colour me surprised. 😜 Another quality video, thanks.

  • @rogerkoh1979
    @rogerkoh1979 3 ปีที่แล้ว +2

    Another nice video. Great to show basic control to people. Thank you again for sharing.

  • @timmurphy5541
    @timmurphy5541 3 ปีที่แล้ว +3

    Love this. İt's a perfect introduction to the kinds of things one imagines doing with a Pico. I did a show and tell video last week at work about the Pico but I should just have played this :)

  • @ShadowzGSD
    @ShadowzGSD 3 ปีที่แล้ว +5

    No biscuits today but at least i have coffee to watch the video of the week. ☕

  • @perseus25xd
    @perseus25xd 3 ปีที่แล้ว +6

    Thank you sir! I was eagerly waiting for more pico related content!

  • @johndeluca230
    @johndeluca230 2 ปีที่แล้ว +1

    Thanks for your videos. I have enjoyed them for a while.
    Vintage pot and vintage breadboard (like many I own) with a dignified aged cream color from the original white.

  • @neutron-au
    @neutron-au 2 ปีที่แล้ว +3

    For the Servo jittering issue, easiest fix would just be to round to nearest 100, you can clearly see in the video that the jittery-ness of the values only fluctuates 100 values or so.
    Edit, The jittering output would make a pretty cool random string generator: sha256 the string of input^input.

  • @shamroc34
    @shamroc34 3 ปีที่แล้ว +1

    I love your videos. So clearly explained.

  • @HoboVibingToMusic
    @HoboVibingToMusic 3 ปีที่แล้ว +2

    I'm getting a Pi3B+ Soon, so I can tinker around with the GPIO ports, gonna watch those GPIO /Pi vids from your channel a lot now!

  • @srtcsb
    @srtcsb 3 ปีที่แล้ว +3

    Explaining Computers... Now complete with lights, sound effects, lions, tigers and giraffes, oh my! :-) Really good fun Chris, and great code and hardware hook up examples too. Thanks for another great video.

  • @chriholt
    @chriholt 3 ปีที่แล้ว

    The Pico looks like it's so much fun. I look forward to it making another appearance in the future!

  • @spikekent
    @spikekent 3 ปีที่แล้ว

    Thanks Chris. Looking forward to PiPico projects.

  • @SirSurreal
    @SirSurreal 8 หลายเดือนก่อน

    Great video, a lot happing for such few lines of code. I'm new to the Pico so I've binged a lot of videos on the Pico! One problem I had with the SG90 was it going beyond the 180 degree mark which resulted in it shaking and heating up. After adding and displaying the 'value' variable to make it visible in the shell, I could find the value that took the servo beyond the 180 and created an if statement to limit the range of the value. It did work, although there was a region of the pot that didn't work. Will study PWM and Duty cycle for a deeper understanding of the code.

  • @richardneifeld7797
    @richardneifeld7797 ปีที่แล้ว +1

    Another option that ***might*** reduce the jitter is to heat, or cool, or change the relative humidity, near the Pot. The jitter is presumably caused by intermittent connection to various windings in the Pot. Temperature change will affect the relative dimensions, through thermal expansion, and humidity affects accumulation of static charge on insulating surfaces near the contact regions. Great video!

  • @GizmoFromPizmo
    @GizmoFromPizmo 3 ปีที่แล้ว +2

    Back in the 1990s, when I worked for an industrial controls company, I learned about servos and something called a "dead zone". Programming in a Dead Zone eliminates jitter. So it really has nothing to do with your potentiometer, instead, it is the nature of servos. It's amazing to me to see you using $200 worth of hardware that can replace a Programmable Logic Controller (PLC), that back in the '90s, cost tens of thousands of dollars.

    • @wayland7150
      @wayland7150 ปีที่แล้ว

      Those PLCs were a bit of a rip off. They were just 8 bit micro controllers with some inputs and outputs and a simplified programming language. Late '80's through the '90's we would do the same thing with a Z80 and some code written in C. The advantage of a PLC was the electrician could program it.

    • @GizmoFromPizmo
      @GizmoFromPizmo ปีที่แล้ว +1

      @@wayland7150 - Ladder Logic was cryptic as heck. PLCs were a rip off but well worth it to the companies who needed such a thing.

  • @marcsmithsonian9773
    @marcsmithsonian9773 3 ปีที่แล้ว

    Good job! You just demonstrated common problem with potentiometers... they decay with age and add noise but even new ones do that. Thats why audiophile way is to replace it with ladder resistor switch.. but for your project all you need is a small capacitor in paralell across potentiometer mid and side pin and current limiting resistor in series to the gpio pin.. that would remove high frequency noise.

  • @JediBuddhist
    @JediBuddhist 3 ปีที่แล้ว +3

    Hahahaaa.. Zebras & Giraffes.. you're mad as a box of frogs 😄👌 That's why your content is complete Gold-Dust. For me and the kids I work with. Got our Picos 2day.
    Thanks a million Christopher 🙏✨

  • @pezictusfish
    @pezictusfish 3 ปีที่แล้ว

    Thank you for making Sundays fun again!

  • @MarcelHuguenin
    @MarcelHuguenin 2 ปีที่แล้ว

    Great video, very concise explanation, great reference. I love the Pico!

  • @AFCAWorldBodybuildingArchive
    @AFCAWorldBodybuildingArchive 3 ปีที่แล้ว

    The magic of film making is so powerful, I am in awe 😍

  • @Colin_Ames
    @Colin_Ames 3 ปีที่แล้ว +3

    Very interesting and educational, as always.

  • @carlosquijano1461
    @carlosquijano1461 2 ปีที่แล้ว +2

    Very good professor. I enjoyed this so much. I like the comments and explanations of the code along with the diagrams. Superb

  • @FamilyGrob
    @FamilyGrob ปีที่แล้ว +2

    Thanks! Fantastic explanation and demonstration!

  • @bobpaugh6725
    @bobpaugh6725 3 ปีที่แล้ว +1

    Another fantastic video Sir thank you very much.

  • @fram1111
    @fram1111 3 ปีที่แล้ว

    Like your programing details, you would be a good teacher!

  • @compuzeme
    @compuzeme 3 ปีที่แล้ว +1

    Another amazing video Chris. Thank you and keep up the great work!!

  • @zetaconvex1987
    @zetaconvex1987 3 ปีที่แล้ว +4

    A welcome return of both the Pico and Blu Tack. BTW, I don't think the age of the pot is the problem. ADCs in general are a bit jittery. Put a 10uF capacitor between the wiper and ground. That should smooth things out a lot better.

    • @dang48
      @dang48 ปีที่แล้ว +2

      Like de-bouncing a push button. That can be done either with the capacitor as you mentioned, or in the coding.

    • @onjofilms
      @onjofilms ปีที่แล้ว

      A capacitor correcting the problem points to jittering voltage from the potentiometer, not the ADC.

    • @wayland7150
      @wayland7150 ปีที่แล้ว

      @@dang48 If the capacitor solves the problem then it's less work for the software.

    • @wayland7150
      @wayland7150 ปีที่แล้ว

      @@onjofilms It's the nature of the real world, there is noise. The only reason there is not noise inside computers is the efforts taken to design it out or at least design out the effects.

    • @dang48
      @dang48 ปีที่แล้ว +1

      @@wayland7150 That is true. The reason for debouncing in the coding would be to save physical space on your circuit board. Both methods have their advantages and disadvantages.

  • @PeterJasper
    @PeterJasper 3 ปีที่แล้ว +1

    Great video on the Pi Pico... love the code and applications. Your old wire wound potentiometer is potentially causing the jitter in values... maybe time for a potential upgrade.

  • @nutsnproud6932
    @nutsnproud6932 3 ปีที่แล้ว +1

    Thanks Chris. Good old school carbon potentiometers. They give free snap crackle on pop on my old valve (tube) wireless.

  • @SomeOne-rh5so
    @SomeOne-rh5so 3 ปีที่แล้ว +2

    Very very nice - I feel jealous, that already not young, It's so helpful for all who likes electronic.
    PS Chris - you are ready to make your own HVAC DDC for your home.

  • @EcoHamletsUK
    @EcoHamletsUK 3 ปีที่แล้ว +3

    Picos are an ideal companion to a Pi computer, as they are much better at connecting to physical devices than the GPIO on a Pi is. My current project uses a Pi 3B with a touch screen for controlling a Pico that will have a motor driver, servos and a stepper motor attached. I'll probably use I2C for communication, but haven't got that far yet. The Pi will give me remote control through Wi-Fi, Ethernet or Bluetooth, including the potential to stream video so I can see what I'm controlling remotely!

  • @valomestari
    @valomestari 2 ปีที่แล้ว +1

    This was exactly what I was looking for! Thank you, sir!

  • @tonyross2947
    @tonyross2947 2 ปีที่แล้ว +1

    Awesome, Chris...awesome. Thank you so much for this video.

  • @Vincent_Serpico
    @Vincent_Serpico ปีที่แล้ว

    Chris great tutorial! Just what I needed to help me get the basics down so I can complete a project that I have been working on. Once again, Thank you!!!!

  • @NoahNobody
    @NoahNobody 3 ปีที่แล้ว

    Great tutorial. I just ordered a few of these. I'm looking to do things with BLE or LoRa.

  • @johnweller5491
    @johnweller5491 3 ปีที่แล้ว +1

    As always absolutely excellent!! Many thanks.

  • @EZ_shop
    @EZ_shop 3 ปีที่แล้ว +1

    Nice video. Love micro controllers.

  • @mcconkeyb
    @mcconkeyb 3 ปีที่แล้ว +3

    Good stuff. Reminds me of learning electronics back in the 1980's. The devices were bigger and a lot less integrated, but with a couple of dozen chips we could do the same thing. :-)

  • @Kw1161
    @Kw1161 3 ปีที่แล้ว +1

    As always another great video, and thanks for the information.
    It sure beats working on the servos on my old US Navy ship.😀

  • @prvashisht
    @prvashisht 3 ปีที่แล้ว +1

    I had a pico and servo lying around. Was thinking to use an ESP32 for the motors but this is great. Thanks for the video :D

  • @horseradishpower9947
    @horseradishpower9947 3 ปีที่แล้ว +2

    This was interesting. Thanks for the video.

  • @spillanemike
    @spillanemike 3 ปีที่แล้ว +1

    Great video as always, thanks Chris

  • @mandyli3844
    @mandyli3844 3 ปีที่แล้ว +1

    Very good explanation!

  • @brooknet
    @brooknet 3 ปีที่แล้ว

    Very clearly explained - useful. To fix the jittering pot, could you average-out the readings? For example, read 5 readings into an array, add them together, divide by 5. It'd make things a little more complicated, though - perhaps better to just replace the pot - although as other comments have mentioned, the varying readings could be in the ADC, and not the pot.

  • @bsvenss2
    @bsvenss2 3 ปีที่แล้ว

    It was nice to finally meet Mr. Pot.

  • @alexhudspeth1213
    @alexhudspeth1213 3 ปีที่แล้ว

    This could headline a "demystifying servos" playlist! Also, mad props for the efficient code: I'm about to jump ship from the HMS C++ to the HMS Python. Thanks for another great video!

    • @BeefIngot
      @BeefIngot 3 ปีที่แล้ว

      It would be a very short playlist unless you started getting into more complex servos like ones with higher accuracy, force feedback etc.

  • @wansh013
    @wansh013 3 ปีที่แล้ว +1

    Awesome, loved it 👍🏻👍🏻👍🏻👍🏻👍🏻
    A few more please 🙏🏻

  • @proterotype
    @proterotype 3 ปีที่แล้ว

    Another gem of a video, sir. Keep em comin

  • @wanyman
    @wanyman 2 ปีที่แล้ว +1

    Brilliant video. Thanks!

  • @KarinaBelan
    @KarinaBelan 3 ปีที่แล้ว +2

    Very nice video, thank you

  • @TheSemtexCow
    @TheSemtexCow 3 ปีที่แล้ว +1

    Thanks Chris, love the videos on the pico.
    It’s fired up my interest in microcontroller projects again 👍.
    You did inputs and now outputs, what’s next?

  • @rohandesigns
    @rohandesigns 3 ปีที่แล้ว

    Beautifully explained sir... i have seen some of your tutorials and they are well explained. I have subscribed your channel. Teach us more..😊👍🏻👍🏻

  • @gregholloway2656
    @gregholloway2656 3 ปีที่แล้ว +1

    Brilliant video, Chris. I’ve been programming on the Pico since February. I like the simplicity of Micro Python, but I’ve been using the C SDK for maximum speed.

    • @sharonwolff1
      @sharonwolff1 3 ปีที่แล้ว

      So for some that has used both, what's the speed difference?

    • @sharonwolff1
      @sharonwolff1 3 ปีที่แล้ว

      Bad typing - "some" was supposed to be "someone".

  • @yuhani123
    @yuhani123 3 ปีที่แล้ว

    Thanks you sir for your excellent tutorial

  • @olafschermann1592
    @olafschermann1592 ปีที่แล้ว +1

    The jittering may be not the old pot but the self noise of the ADC or to be more precise it‘s reference voltage caused by the switching regulator. I have read that you can reduce adc noise in software by pulling up that pin to VCC

  • @rv6amark
    @rv6amark 3 ปีที่แล้ว +2

    Nice tutorial! I've done this type of thing in "C" using an Arduino, but I've never used Python, and have always wondered if it would be easier. This gave me a nice comparison of the two languages. Very nice, thank you.

    • @skf957
      @skf957 3 ปีที่แล้ว

      I have a project on the go to connect multiple Picos using the RFM69HCW radios (not the LoRa variants). The libraries for these radios are only available in C (they be available in CircuitPython but I believe CP doesn't support interupts, which my project needs), so I went down the C++ route a couple of months ago using the Pico SDK and Visual Studio Code. It was an absolute nightmare to setup and get working on W10 (TH-cam was my friend here), and is pretty cumbersome to use. In the last month or so RP2040 support became available on the Arduino IDE which I have briefly used just to test that it works. If the radio libraries were available to Micro Python I'd use that in a heartbeat. So much easier to use, and TBH I wouldn't miss the greater (much greater) efficiency of C++ on this project.

    • @lesliedeana5142
      @lesliedeana5142 3 ปีที่แล้ว

      @@skf957 The advantage of C is speed of execution. C is *compiled* whereas Python is *interpreted.

    • @skf957
      @skf957 3 ปีที่แล้ว +1

      @@lesliedeana5142 Yes, thanks. And I like what I’ve seen of C++. Its relative inaccessibility (on the Pico at least) appeals to my inner geek/snob, it seems to be extremely feature-rich, and as you say, is fast in execution. But, and I am no expert here, Python and Micro Python, far from being the modern day equivalent of BASIC (and that wasn’t THAT bad), are also feature-rich and really nice languages to use.

  • @lorenzo.c
    @lorenzo.c 3 ปีที่แล้ว +2

    High quality video, as you always do.
    The feature I find most interesting (and innovative) is the PIO, the set of state machine which can emulate peripherals (or make new ones).
    I hope you are looking at exploring the PIO.
    Do you know whether there is a compiler from C/C++ to the assembly language of the PIO?

  • @Anonopsmo
    @Anonopsmo 3 ปีที่แล้ว +3

    very interesting stuff, thank you for filming that, christopher. =)

  • @layton3503
    @layton3503 3 ปีที่แล้ว

    Another great video! Thank you...

  • @TheZolon
    @TheZolon 3 ปีที่แล้ว

    This is awesome. Now I just need to figure out how to use an SBUS RX with the Pico , and use an PCA9685 for the servos which will allow me to finish a couple projects I have wanted to do.

  • @NickCornaglia
    @NickCornaglia 2 ปีที่แล้ว +1

    Your sense of humor kills me!!!

  • @fredtaylor4548
    @fredtaylor4548 3 ปีที่แล้ว +1

    Another great lesson, thanks!

  • @cocusar
    @cocusar 3 ปีที่แล้ว

    So, I don't know if someone already mentioned it, but the issue with the jitter on the servo wasn't caused because your potentiometer was 40 years old, but rather on the fact that the 16 bits of the ADC are not "all useful" in this scenario. You only use the entire ADC resolution to average its value on most cases, or you can discard 1, 2 or 3 bits out of it as well. I know there are some cases where you can just use the entire range, but that's also paired with an analog front end circuitry on the ADC, with matched impedances, and not a single pot connected to it.
    What I would suggest is to add a capacitor (100nF or so) between the output of the potentiometer and ground, and also average (or directly discard 2 or 3 bits) the raw ADC samples.

  • @rogerfroud300
    @rogerfroud300 3 ปีที่แล้ว +8

    I'm sure you'd have the same problem with a new potentiometer too. It's a noise issue in my opinion. A capacitor across the wiper to ground would probably sort that out.

    • @TriAngles3D
      @TriAngles3D 2 ปีที่แล้ว +1

      ExplainingComputers is Concise and Clear as always! :)
      The servo jitter can indeed be reduced as Roger Froud pointed out using a capacitor to dampen the noise. Probably the best way. Yet, while the best software is hardware, I would still add a software value damper to the while loop which averages out the values as a fail safe.

    • @dang48
      @dang48 ปีที่แล้ว

      @@TriAngles3D Exactly. My professor was teaching us these concepts but with push buttons. Called 'Debouncing', he showed us both the hardware and software way. He insisted that we use the software way though. :-)

  • @NETWizzJbirk
    @NETWizzJbirk 2 ปีที่แล้ว +3

    You could write code to filter out the jitter, Just average the last 50 ish potentiometer inputs before the current one and average it then add maybe 5%. If the new value is not a greater difference, continue to return the same value. If it is different, write it to a variable for the current servo position .., and it keeps sending the same value to the PWM u til significant change