Instappen in de wereld van Robotica

Ik ben me aan het verdiepen om in de wereld van robotica te stappen.
Ik vind het leuk om met elektronica bezig te zijn, besteed veel tijd aan computers en verzin en maak van alles met mijn handen voor hobby en in en rond het huis.

Ik zie in het bouwen en programmeren van een robot een mooie hobby voor aan tafel voor de komende winter (en natuurlijk verder). Het lijkt me een fantastische combinatie van (mechanische) techniek, elektronica en programmeren.

Hoewel robotica nog wel nieuw voor me is, heb ik ervaring met solderen, modelbouw (modelvliegen), eenvoudige elektronica en een brede technische kennis.
Ik heb voor vele uiteenlopende toepassingen wat scriptjes gemaakt en geprogrammeerd. Ik ben daar zeker geen expert in maar heb onder andere ervaring met C#, vba, java, android en powershell, Arduino (esp8266).

Beroepsmatig ben ik al ruim 20 jaar 3D cad tekenaar en consultant, wat eventueel ook handig is, zeker ook combinatie met een 3D printer.

Ik heb me al wel wat ingelezen en een beetje een beeld gevormd van wat ik zou willen.

Ik heb niet echt een functioneel doel voor ogen, naar wil leren en kennis opdoen op het gebied van robotica.
Als het me bevalt, begrijp ik dat de doelen steeds groter worden en de daarbij komende investeringen wellicht ook.

Ik wil er in eerste instantie nog niet veel geld aan uitgeven, maar de mogelijkheid hebben om steeds verder uit te bouwen.

Ik zag dat er voor rond de €20 robot-chassis kitjes te koop zijn met drie of vier wielen en met daarin ook nog een Arduino Uno R2 printje (clone?).

Zelf heb ik nog een oude Raspberry pi 1b+ en een pi zero, plus nog wat losse esp8266 printjes.

Ik heb ook gelezen wat de verschillen zijn tussen Raspberry en Arduino bij toepassing voor robotica, maar ben er nog niet uit.

Dit is wat ik vooralsnog zou willen doen en maken:

  • Een low budget voertuig/chassis
  • Bestuurbaar en autonoom/zelfrijdend
  • Naar de toekomst steeds verder uitbreiden met sensoren (obstakel
  • detectie, volg-modus, lijn volgen, enz)
  • detectie, volg-modus, lijn volgen, enz)
  • Misschien nog eens uitbreiden met camera
  • Doel: steeds meer leren over sensoren en aansturen
  • Doel: steeds meer leren op gebied van programmeren

Is zo’n eenvoudige robot chassis met Arduino of Raspberry hier geschikt voor? Ik begrijp dat je het met hardware zo gek kunt maken als je wilt, maar ik wil eenvoudig en low budget beginnen om vooral eerst ervaring en kennis op te doen en de kennis op een goede manier opbouwen.

Is bovenstaande te doen met mijn Raspberry pi 1b+, pi Zero of een Arduino Uno?
Ik weet dat daar misschien geen eenduidig antwoord op te geven is, maar welke van deze drie zou voor dit doel het beste geschikt zijn en waarom?

Ik begrijp dat een Raspberry 3 of 4 en heel stuk krachtiger is, en wil daar ooit best nog wel eens in investeren, maar zou graag met één van de printjes beginnen die ik al heb of wordt mee geleverd.

Wat zijn de voor- en nadelen van een chassis met 3 wielen (2 + zwenkwieltje/kogel) en van een versie met 4 wielen (4 WD) of rubsbandjes?

Heeft iemand nog andere ideeën om bovenstaande doelen te bereiken en zijn er nog interessanter websites die je goed op weg kunnen helpen?

In Nederland heb je de HCC Robotica groep (Hooglanderveen), in Belgie is dit RobotMC (Mechelen). Onze website : http://wiki.robotmc.be/index.php/Hoofdpagina
Hier vindt je al heel wat informatie.
In pre-corona tijden waren er regelmatig bijeenkomsten, nu is dat alleen nog maar virtueel.
Het voordeel van "differential drive" robot (2 aangedreven wielen + steunwiel) is vooral dat je via "odometrie" de positie van de robot kan meten. Dit is met rupsbanden / 4-wiel robots veel moeilijker, omdat je dan met slip van de wielen/rupsen te maken hebt.
Een pi is uitstekend geschikt om "high level"taken uit te voeren (internet, beeldverwerking ed), maar om wiel-encoders uit te lezen en PWM- motor drivers te sturen is wat lastiger. Dikwijls wordt er een combinatie gebruikt van arduino / esp en de pi. Ik heb een voorkeur voor µ-controllers STM32, dit zijn krachtige 32-bit µ. De hardware momenteel is eigenlijk erg goedkoop geworden, je vindt heel krachtige ontwikkel bordjes voor < 20€. De meeste zijn tegenwoordig met de arduino ide te programmeren.

[Bericht gewijzigd door RP6conrad op 30 oktober 2020 09:51:31 (57%)]

Dank je voor je antwoord. Daar zit al interessante informatie in.
Ik zag inderdaad ook al dat er combinaties gebruikt worden van Raspberry en Arduino.

Als ik het goed begrijp gebruik je de Arduino dan vooral voor directe uitlezing van sensoren en dergelijke en het aansturen van zaken en wordt de pi meer gebruikt voor overall zaken, verwerken en communiceren?

Dat klinkt al alsof ik kan beginnen met de pi OF de Arduino en als de leercurve beklommen wordt, ik die twee ook eens kan compbineren. Klinkt als een mooi leertraject!

Ik ga je aangedragen websites ook eens bekijken.

Nogmaals bedankt!

Lambiek

Special Member

Op 30 oktober 2020 09:02:58 schreef bnw:
Ik ben me aan het verdiepen om in de wereld van robotica te stappen.
Ik vind het leuk om met elektronica bezig te zijn, besteed veel tijd aan computers en verzin en maak van alles met mijn handen voor hobby en in en rond het huis.

Ik zie in het bouwen en programmeren van een robot een mooie hobby voor aan tafel voor de komende winter (en natuurlijk verder). Het lijkt me een fantastische combinatie van (mechanische) techniek, elektronica en programmeren.

Ten eerste welkom op de site.

Het is inderdaad luik om zoiets te maken, ik heb dit gebouwd. Het is niet echt een rijdend iets, maar misschien kun je er wat info uithalen.

https://www.circuitsonline.net/artikelen/view/58

Als je haar maar goed zit, GROETEN LAMBIEK.

Hoi Lambiek.
Dat is ook een mooi project! Robotarmen vind ik ook altijd erg interessant! Ziet er goed uit!
Ik vind met dit soort projecten vooral de combi zo mooi van verschillende vakgebieden!

Lambiek

Special Member

Op 30 oktober 2020 10:19:28 schreef bnw:
Dat is ook een mooi project! Robotarmen vind ik ook altijd erg interessant!......

Dat is het ook, maar het is wel veel werk geweest. :)

Maar er zit inderdaad veel mechanica in ook, maar dat maakt het juist leuk.

Als je haar maar goed zit, GROETEN LAMBIEK.

https://www.20sffactory.com/robot/about

volledig te 3d printen en werkt met een arduino mega en ramps bordje.
firmware is ook te verkrijgen.

ben zelf bezig de onderdelen te printen.

K.

" Assumption is the mother of all f*ckups ", toch trap ik er geregeld in.... How to kill a mosquito with an elephant? --> Surfin' on a AMD RyZen 9 5900x, 12 cores @ 3.7GHz, opgekieteld naar 4.9GHz.

Ik zag inderdaad ook al dat er combinaties gebruikt worden van Raspberry en Arduino.

Een arduino is een microcontroller. Een microcontroller is echt puur voor ingangen en uitgangen, pwm, analoge signalen inlezen zonder vertraging. Een microcontroller is wat minder goed in zware software taken uitvoeren dat kan ten koste gaan van de vertraging naar de uitgangen.

Een PI is een mini computer met naast de cpu gpu (video)een ingebouwde microcontroller. Deze CPU is heel erg sterk in het uitvoeren van allerlei software taken maar de aansturing van de microcontroller gaat indirect waardoor er meer vertraging is. De hardware aansturing is als het ware een bijzaak en geen hoofdtaak.

Op 30 oktober 2020 18:09:00 schreef benleentje:
[...]Een arduino is een microcontroller. Een microcontroller is echt puur voor ingangen en uitgangen, pwm, analoge signalen inlezen zonder vertraging. Een microcontroller is wat minder goed in zware software taken uitvoeren dat kan ten koste gaan van de vertraging naar de uitgangen.

Een PI is een mini computer met naast de cpu gpu (video)een ingebouwde microcontroller. Deze CPU is heel erg sterk in het uitvoeren van allerlei software taken maar de aansturing van de microcontroller gaat indirect waardoor er meer vertraging is. De hardware aansturing is als het ware een bijzaak en geen hoofdtaak.

Dank je voor je uitleg.
Begrijp ik het dan goed dat je dus de Arduino zou kunnen inzetten om sensoren uit te lezen en de waardes daarvan terug te koppelen aan de pi, welke deze dan verwerkt en daarop actie onderneemt?

Dat hangt er weer vanaf wat voor sensoren je wilt uitlezen. Als je een encoder wilt uitlezen gebruik je een microcontroller omdat je anders van je encoder pulsen gaat missen. Moet je direct op een trigger signaal reageren neem je ook een microcontroller.
Ben je met domotica bezig er komt van een drukknop een puls dat het licht aan moet dan maakt het niet uit wat je neemt daar maakt het niet uit dat er bv 100mS tussen zit.

Over het algemeen is het handiger om de microcontroller de sensor uit te lezen en die simpele acties te laten doen daar zijn ze goed, voor de complexere handelingen neem je dan de PI.
Hoewel er ook microcontroller zijn die al op 600Mhz werken wordt dat gat ook steeds kleiner.

[Bericht gewijzigd door benleentje op 30 oktober 2020 23:58:10 (25%)]

Lambiek

Special Member

Op 30 oktober 2020 23:54:28 schreef benleentje:
Over het algemeen is het handiger om de microcontroller de sensor uit te lezen en die simpele acties te laten doen daar zijn ze goed, voor de complexere handelingen neem je dan de PI.

En wat zijn nu complexe handelingen, mijn ervaring is dat een micro controller dat ook best aan kan.

In de robotarm "uit het artikel" gebruik ik twee controllers, één doet de communicatie tussen de PC en de IR afstandsbediening. En de ander stuurt de stappenmotoren, de hand en het display aan. En dat alles gaat razend snel.

Met de PC en de afstandsbediening geef ik eigenlijk alleen maar commando's wat er gebeuren moet.

Maar als er bijv. veel rekenwerk nodig is of je wil het net op "om wat voor reden dan ook", dan is een PI wel handig. Maar in de meeste gevallen is een controller snel genoeg.

Als je haar maar goed zit, GROETEN LAMBIEK.

Als een simpele microcontroller het niet meer aan kan moet het wel een heel ingewikkeld probleem zijn... ;)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com
Lambiek

Special Member

Op 31 oktober 2020 10:50:57 schreef Arco:
Als een simpele microcontroller het niet meer aan kan moet het wel een heel ingewikkeld probleem zijn... ;)

Precies. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 31 oktober 2020 10:50:57 schreef Arco:
Als een simpele microcontroller het niet meer aan kan moet het wel een heel ingewikkeld probleem zijn... ;)

Inderdaad, mensen grijpen onnodig snel naar een rPi. En hoewel zo'n ding natuurlijk voor een habbekrats te krijgen is, heeft de overhead van alles wat je erbij krijgt (een OS bijvoorbeeld) ook nadelen. Bijvoorbeeld het realtime (dat is niet hetzelfde als "heel snel") verwerken van sensor-data.

Maar er bestaan zeker robotica toepassingen waar je met een simpele microcontroller niet meer wegkomt. Ik noem maar even een webcam met objectdetectie/beeldherkenning.

If you want to succeed, double your failure rate.

Op 30 oktober 2020 09:02:58 schreef bnw:
Ik heb niet echt een functioneel doel voor ogen....

Dat is een heel slecht begin, zomaar iets leren programmeren werkt niet.
Je moet iets voor ogen hebben, hoe eenvoudig ook en je moet ervoor gaan tot het werkt... dat is het begin!
Al die doelen die je beschrijft zijn in mijn ogen eerder dagdromen waar zovelen van dromen maar weinigen ertoe komen.

LDmicro user.
Lambiek

Special Member

Op 31 oktober 2020 11:36:11 schreef MGP:
Dat is een heel slecht begin, zomaar iets leren programmeren werkt niet.
Je moet iets voor ogen hebben, hoe eenvoudig ook en je moet ervoor gaan tot het werkt... dat is het begin!
Al die doelen die je beschrijft zijn in mijn ogen eerder dagdromen waar zovelen van dromen maar weinigen ertoe komen.

Een waarheid als een koe. :)

Op 30 oktober 2020 09:02:58 schreef bnw:
Heeft iemand nog andere ideeën om bovenstaande doelen te bereiken en zijn er nog interessanter websites die je goed op weg kunnen helpen?

Dit is wel leuk. :)

https://www.youtube.com/watch?v=7zBrbdU_y0s&feature=youtu.be

Of deze.

https://www.youtube.com/watch?v=WcW70-6eQcY

Als je haar maar goed zit, GROETEN LAMBIEK.

Dank jullie allemaal voor de reacties, ik heb al een hoop interessante informatie dank zij jullie.

@MGP en @Lambiek:
Geen doelen is wat ongelukkig gezegd misschien.

Doelen zijn:
- bekend raken in robotica en hierover leren
- een mooi hobby project met een combinatie van mechanica, elektronica en programmeerwerk
- mijn programmeer kennis uitbreiden en vaardigheden verbeteren

Daarbij heb ik de tick dat ik gefascineerd ben door meten en meters, dus ik wil graag experimenteren met allerlei soorten sensoren!

Mede dankzij jullie heb ik een idee hoe ik ga starten:

  • Ik ga beginnen met een simpel robot chassis, twee wielen plus zwenkwieltje
  • Afgaand op jullie reacties, begin ik maar eens met de Uno microcontroller en laat ik de Raspberry's nog maar even in de lade liggen
  • Als start heb ik al een aantal mooie eerste doelen: laten rijden en aansturen (met gebruik van speed sensoren), obstakels vermijden, lijn volgen, follow me modus, tafelrand detectie,....

Volgens mij ben ik dan al heel wat uurtjes zoet en heel wat leer ervaring verder!

Nu heb ik al wel wat ervaring met het programmeren van esp8266 printjes (heb lichtschakelaars en een buiten-bewegingssensor gemaakt voor mijn Philips Hue verlichting).
Daarbij heb ik via wifi ook toegang tot de printjes om bijvoorbeeld een OTA update te doen.

Ik neem aan dat ik ook een esp8266 op de Uno kan aansluiten en die kan gebruiken voor communicatie naar een PC en voor het uitvoeren van een update?

Zo, dat klinkt al als een beter plan, toch?

En wat zijn nu complexe handelingen, mijn ervaring is dat een micro controller dat ook best aan kan.

Ik bedoelde daar taken zoals video verwerking ed

Nog een ander vraagje:

Als het aankomt op het aantal aan te sluiten sensoren, ben je dan beperkt tot de fysiek aanwezige (gpio) pennen?

En als je door de aansluitingen heen bent, kun je dan nog uitbreiden via een twee Arduino?
Of kun je sensoren ook bijvoorbeeld aansluiten via een bus-systeem over dezelfde aansluitingen uitlezen?

Dat hang helemaal af van het type sensor en de module waarop de sensor zit.
Als je een sensor hebt die je direct aan een IO pin koppelt dan ben je beperkt tot het fysiek aantal io pinnen. Echter als je de sensor dan weer koppelt aan een multiplexer IC dan kan je in principe onbeperkt uitbreiden maar wel ten koste van snelheid van het uitlezen van sensoren.

Voor het uitlezen van drukknoppen van zeg een toetsenbord kan je ook de intern IO gaan multiplexen zo kan je met 4 uitgangen en 4 ingangen al 16 toetsen inlezen door 1 voor 1 de uitgangen apart hoog te maken en dan 4 ingangen te lezen. En er zijn zelfs technieken waarbij je nog veel meer toetsen kan uitlezen door de toetsen heel slim te plaatsen.
Die werkt ook met het aansturen van leds, met 4 x 4 io pennen kan je dan 16 leds aansturen en ook daar bestaan weer variaties op de je nog veel meer leds kan aansturen. Een combinatie van toetsen en leds is ook mogelijk.

Je hebt ook sensoren met bv een I2S aansturing dan ben je beperkt tot het aantal adressen wat de betreffende sensor maximaal heeft, maar dan kan je dan wel combineren met een andere sensor die op fysiek andere adres range werkt ik dat even uit mijn hoofd dat een op een I2S bus max 128 adressen kunnen worden herkent.

Er bestaan ook IO uitbreiding IC die veelal via I2S werken, deze IC werken autonoom qua inlezen van de IO en bewaren de data totdat je ze hebt uitgelezen, de exacte werking van de IO is dan zelf in te stellen via de software.

En er zijn nog vele andere bus-systemen.

kun je dan nog uitbreiden via een twee Arduino?

Ook dat kan maar dat kan de software weer heel complex maken.

Maar tegen die tijd dat je zoveel sensoren, leds en drukknoppen hebt moet je eerst nog heel veel oefen met het schrijven van eigen software en is in eerste instantie zonder ervaring 1 led en drukknop al uitdagen genoeg.

[Bericht gewijzigd door benleentje op 1 november 2020 17:31:50 (13%)]

Zo, spulletjes zijn besteld!

  • chassis met uno print (clone), motorregelaar, servo, sensor shield, enz...
  • Diverse sensoren: ultrasoon, infrarood, speed sensor
  • Oled display
  • Esp8266 wifi board

Daar kan ik eerst wel even mee vooruit denk ik!

Op 1 november 2020 15:09:20 schreef bnw:
..
@MGP en @Lambiek:
Geen doelen is wat ongelukkig gezegd misschien...

Niet veel van aantrekken, iedereen heeft wel van die periodes waar hij/zij het gevoel heeft van alles aan te kunnen, ook wij, met de leeftijd zwakt dat wat af....of is het de ervaring? ;)

LDmicro user.

@MGP
dat zal ik niet doen hoor... :)
Hm, wat betreft de leeftijd zou het dan langzaamaan wel een beetje moeten gaan afzwakken.... :P

En dan nu maar wachten totdat alles binnen is. Aangezien het uit China komt, zal het nog wel een paar weekjes duren.

Wat betreft het vermijden zie ik vaak een ultrasoon sensor op een servo. Op het moment dat de voorkant te dicht op een obstakel komt, stopt de robot en "kijkt" dan een keer links en rechts om te kijken waar de meeste ruimte is.
Maar zoiets zou je toch ook met drie ultrasoon sensors kunnen doen zonder de servo?
Wanneer de voorkant te dicht op een obstakel komt, laat je de twee buitenste sensoren, die iets onder een hoek naar buiten staan, de afstand peilen om de nieuwe richting te bepalen?

Wat zijn redenen of voordelen om voor het ene of juist het andere systeem te kiezen?

Ben niet zo thuis in het robotgebeuren maar ik vermoed dat het esthetische ook een rol speelt, twee zogezegde ogen die rondkijken heeft altijd iets geheimzinnigs ;)

LDmicro user.
Lambiek

Special Member

Op 2 november 2020 19:09:43 schreef bnw:
Wat betreft het vermijden zie ik vaak een ultrasoon sensor op een servo.

Je kunt zoiets ook via IR doen, Sharp heeft daar mooie sensoren voor.

Maar zoiets zou je toch ook met drie ultrasoon sensors kunnen doen zonder de servo?

Dan heb je wel kans dat de ene sensor de andere kan beïnvloeden.

Wat zijn redenen of voordelen om voor het ene of juist het andere systeem te kiezen?

Dat is puur persoonlijk. De een houd van de moeder en de ander houd van de dochter. :)

Als je haar maar goed zit, GROETEN LAMBIEK.