voor alle liefhebbers van arduino heb ik ( Codey Online ) gevonden ,zijn er al forum leden die hier ervaring mee hebben.

Ik heb er zojuist heel even mee gespeeld; zoals de meeste dergelijke "tools" genereert het code die ongeveer doet wat je wilt, bruikbaar voor beginners, maar zeker niet wat een ervaren programmeur zou kunnen schrijven.

Als voorbeeld: ADC triggers vanaf een hardware timer snapt hij niet, en als je vraagt om een pulse output met een variabele frequentie, stelt hij een timer in, maar zet de uitgang in de interrupt routine, in plaats van de output compare module naar de uitgang te zetten. Ik had ook om puls/richting signalen gevraagd, en daarbij werd het richting signaal onafhankelijk geschreven, waarbij de timing ten opzichte van het puls signaal dus onbepaald is.

Op zich best knap, maar het resultaat is middelmatig. Wellicht goed genoeg voor de meeste gebruikers. Ik zie al wel gebeuren dat mensen die code gaan gebruiken zonder het te begrijpen, en op die manier ook nooit verder komen dan wat zo'n tool voor ze kan genereren, omdat ze zelf de basis nooit hebben geleerd.

[Bericht gewijzigd door SparkyGSX op (10%)]

misschien is er in embedded architecturen nog teveel onderling verschil op register niveau, maar ik kan me indenken dat voor micro's met een vrij generieke HAL zoals STM of NXP heeft dit soort AI tools al een stuk betere voorstellen doen.
Tuurlijk is het een hulpmiddel, om je een goede voorzet te geven en is degelijke controle nog wel nodig.
Maar als je kijkt naar een tool als co pilot, wat die voor code genereerd voor iets in python of C#, dan is dat toch echt verrassend goed.
Klakkeloos voor waar en werkend aannemen moet je natuurlijk nooit doen

Dit kan wel nuttig zijn om lieden met een hardwareachtergrond te helpen om die grote stap te zetten naar een klein controllertje.

Leren doe je er niet van: als het programma werkt heb je nog steeds geen idee van wat er gebeurt... :+
(kleine of grote controller maakt trouwens weinig uit...)

ik vind het vooral mezelf helpen als je wel weet hoe te programmeren, om soms ook andere inzichten van een oplossing te krijgen. Of het mensen helpt die er geen snars van snappen denk ik ook niet

Als je het al wel zelf kan, zou het handig kunnen zijn om iets te genereren wat je vervolgens zelf gaat verbouwen om er iets van te maken. De vraag is of het dan netto sneller is dan het gewoon helemaal zelf schrijven.

Het enige voordeel lijkt me dat je gelijk de registernamen, naam van de ISR, etc. hebt, waardoor je wat sneller kunt zoeken in de datasheet.

ja zowieso voor dom repeterend werk is een ai achtige integratie in een ide echt wel productiviteits verhogend. Gebruik ik het dagelijks zelf? Nee eigenlijk niet :)

Ik schrijf best veel software, maar heb heel weinig dom repeterend werk wat ik een AI hulpje zou kunnen overlaten. Wie heeft dat wel? Is dat een webdev ding?

Op woensdag 8 mei 2024 14:24:55 schreef Arco:
Leren doe je er niet van: als het programma werkt heb je nog steeds geen idee van wat er gebeurt... :+

Ben ik het niet helemaal met je eens en dat hangt ook erg af van de persoon die ermee werkt.

Ik ben zelf een middelmaat qua programmeren en soms heb je wel een idee in je hoofd maar nog niet echt een idee hoe je dat moet vertalen naar code. zo een tool zou me dan prima een zetje in de goed richting kunnen geven.

In MS excel zit op de achtergrond VBA en daar zit dan een tool in die macro opnemen heet. Die tool genereert ook niet de beste code maar van de week had ik die macro opnemer toch even nodig zodat dat ik kon zien hoe ik dat moest doen.
Ik had nu binnen een paar minuten het juiste commando gevonden, dat zou ik via Google ook wel gevonden hebben maar dat had langer geduurd.

De vraag is of het dan netto sneller is dan het gewoon helemaal zelf schrijven.

Ja dat weet je toch nooit ;). Ik ben ook wel eens verkeerd begonnen om later tot de conclusie te komen dat beter overnieuw kan beginnen dat is dan ervaring die ik mis. Maar ik denk dat ook een ervaren programmeur dat soms nog wel eens heeft.

[Bericht gewijzigd door benleentje op (16%)]

Iedere programmeur zal wel zijn eigen stijl hebben denk ik.

Waarschijnlijk zal het ooit wel mogelijk zijn om een eigen lokaal AI-hulpje te trainen op je eigen software en stijl.

Er komt bij een opzet voor je programma meer kijken als alleen 'het werkt!"...

- Moet het makkelijk uitbreidbaar zijn?
- Wil je snelle of compacte code? (gaan meestal niet samen)
- Wil je interrupts gebruiken of niet?

Wat dacht je van "wat als alles niet gaat zoals het hoort?"

Zowel beginnende programmeurs als die AI tools hebben de neiging alleen te kijken naar wat we de "happy flow" noemen. Detectie en correcte afhandeling van foutsituaties is veel complexer.

Zoals ik wel vaker vermeldde, zijn i2c libraries daar een goed voorbeeld van.
De meeste 'hangen' als een der i2c lijnen laag blijft door een of andere reden; je programma loopt dan (geheel onnodig) vast.

Op woensdag 8 mei 2024 18:07:46 schreef SparkyGSX:
Detectie en correcte afhandeling van foutsituaties is veel complexer.

Een waarheid als een koe. Een programma werkend krijgen is simpel. Het probleem zit 'm in het zo lang mogelijk werkend houden met vreemde gebruikersinput, 'rare' reacties van hardware, storing in de communicatie of verbreken daarvan, files die corrupt, te kort of onvindbaar zijn, etc. enz. Als het je ook nog lukt om de gebruiker te laten weten wat er mis gaat en hoe hij het eventueel kan oplossen, dan tel je pas mee.

Bedankt voor alle reacties.Die zijn op zich al leerzaam.
Gr Bert

Iets wat laat van de partij, maar even mijn 2 centen.

Ik gebruik AI inmiddels dagelijks, voor allerlei redenen.

  • Teksten aanpassen: Ik gebruik AI om teksten aan te passen. Hierdoor worden ze, afhankelijk van wat je vraagt, professioneler en beter leesbaar. Dit is erg handig als je bijvoorbeeld een e-mail moet schrijven! Zet de tekst in je eigen woorden en AI past het aan naar iets wat je direct kunt versturen. Let op, lees het altijd goed na!
  • Documentatie genereren: Gooi een stuk code erin, zoals welke commando's ons apparaat ondersteunt, en AI genereert een hele reeks documentatie. Ook hier is nalezen en eventueel aanpassen nodig, maar het scheelt echt veel werk.
  • Code structureren: Soms geef ik AI wat code en maakt hij het leesbaarder. Betere variabele namen, een logischer volgorde, en zelfs commentaar toevoegen. Het kan allemaal.
  • Code ontwerpen: Wij schrijven inmiddels C++ op onze controllers. Vaak maak ik wat classes zoals ik denk dat goed is en spiegel dit op AI. Hij komt soms met voorstellen om dingen anders te doen en kan zelfs de basisimplementatie van classes maken. Dit bespaart veel werk.
  • Voorbeeldcode genereren: Als ik de syntax of juiste functies even niet weet, vraag ik het aan AI in plaats van Google te gebruiken. Hij kan bijvoorbeeld een printf-functie maken die een struct print, of strings naar integers converteren inclusief foutafhandeling.

Tooling
ChatGPT is een van de populairste AI-tools, die gebruik ik zelf ook veel. Aangezien ik geen zin heb om met 80 abonnementen van allemaal 20 euro per maand te werken, blijf ik voorlopig bij de gratis opties. Echter, ik heb van anderen gehoord dat GPT-4 echt een stuk beter is dan de gratis versie 3.5. ChatGPT is niet de enige, verre van zelfs! Er zijn een hoop andere partijen, de meeste grote bedrijven hebben wel een AI.

Voor de liefhebbers van VS Code, kijk hier eens naar: https://cursor.sh/
Voor ontwikkelaars die veel kopiëren en plakken: https://pieces.app/ (welke dev doet dat niet)
Zin om eens rond te klikken en wat te spelen: https://huggingface.co/spaces

LET WEL OP
Ik raad je aan om je in te lezen over hoe AI werkt. Bedenk dat AI niet kan denken of redeneren. Alles is gebaseerd op statistieken. Dus de opdracht "Can you make xxx for me?" is niet goed, statistisch gezien is 'No' een prima antwoord. Dit betekent ook dat AI foute antwoorden kan geven of bepaalde feiten fout kan hebben.

Ook goed om te weten, de tools die je gebruikt om AI toe te passen, zoals een teksteditor of een specifieke softwareapplicatie, staan los van de AI zelf. De AI is op zijn beurt weer een aparte entiteit van de modellen waarop het is gebaseerd.

  • Tooling: Dit zijn de applicaties en platforms waarmee je werkt, zoals VS Code, Cursor, of Pieces. Ze bieden de interface en de middelen om met AI te communiceren en deze te gebruiken in je workflow.
  • AI (Kunstmatige Intelligentie): Dit is de technologie die door de tools wordt gebruikt om taken uit te voeren, zoals tekst genereren, code schrijven of documenten maken. ChatGPT is een voorbeeld van zo'n AI.
  • Modellen: Dit zijn de onderliggende wiskundige en statistische structuren die de AI aandrijven. Modellen zoals GPT-3.5 of GPT-4 zijn getraind op enorme datasets om taal te begrijpen en te genereren. Ze vormen de kern van hoe de AI functioneert en beslissingen neemt.

Kortom, de tools zijn de gebruiksvriendelijke schil waarmee je werkt, de AI is de intelligente motor die de taken uitvoert, en de modellen zijn de fundamentele bouwstenen waarop de AI is gebouwd.

Bonus
Ik heb deze post uitgeschreven met allerlei fouten en lelijke zinnen. Vervolgens heb ik alles in GPT gegooid, en jullie lezen nu het resultaat. :)

De prompt die ik gebruikt heb, inclusief alle spelfouten: "I want to post this on a dutch forum. Make this more readable, use UBB code for the layout and factcheck this. Also expand my anwser if things are missing."

---
Trouwens, ik zie dit niet als een vervanger voor de artiest, maar meer als een fancy nieuwe kwast.
Met andere woorden, de programmeur is zeker nog essentieel voor het ontwerpen van de structuur in de code. Maar de AI is wel een hele handige tool die je voor van alles kan inzetten. (Een soort stagiaire die niet klaagt :+) Het grootste gebrek wat ik nu heb met AI is dat hij niet de hele codebase ziet. Al heb ik er alle vertrouwen in dat dit een kwestie van tijd is.

Voor zij die bang zijn dat AI hun baan in neemt, ik zou me meer zorgen maken over zij die AI weten te gebruiken in hun dagelijkse werkzaamheden.

Wat AI betreft betreft ben ik een absolute doemdenker! Ik wil er niets mee te maken hebben. Ik vind het vooral de volgende stap om de luiheid van de mens nog verder te ondersteunen (om niet te zeggen: stimuleren).

Bij AI denk ik aan Cyberdyne Systems... :+

https://i.ytimg.com/vi/nlGGt1TVe44/sddefault.jpg

Ik denk/voel mee met @MNM: een volgende stap in het stimuleren van de intellectuele luiheid. Let wel, daar is niets nieuws aan: godsdiensten, de monotheistische in de eerste plaats, zijn al vele eeuwen aan het prediken dat ZIJ de waarheid in pacht hebbben, zodat niemand zich nog zelf vragen hoeft te stellen.

Daarbovenop wordt de kreet "AI" vaak misbruikt om bestaande technieken wat hipper te doen lijken. Spellingcheckers en code-generators bestaan al decennialang, maar heten nu plotseling "AI". Dat is platte commercie, daar is altijd een publiek voor.

Mits verstandig en kritisch gebruikt valt er uit sommige van die tools wel practisch nut te halen, ja, dat valt niet te ontkennen. Het belang van persoonlijk welonderbouwd inzicht wordt er enkel groter mee.

Ik zie vooral toepassingen van AI in patroon herkenning; zo kan AI medische scans al goed beoordelen, maar daarbij moet het wel zo zijn dat de AI een gebied aanmerkt waar de radioloog extra goed moet kijken, de conclusies mogen niet zomaar overgenomen worden.

Ik zie ook steeds meer gebruik van AI om wetenschappelijke data te verwerken, vooral op plaatsen waar enorm veel data geproduceerd wordt, zoals optische en radio-astronomie, deeltjesversnellers, etc.

Ja, graag akkoord, patroonherkenning is een prima toepassing van informatica. Maar ook het analyseren van grote hoeveelheden data is nu niet bepaald nieuw, alleen kan de tegenwoordige informatica nog veel grotere datavolumes aan. Maar ten gronde is er niets veranderd, het is enkel oude wijn in nieuwe zakken.

een volgende stap in het stimuleren van de intellectuele luiheid.

Onze hele maatschappij en de ontwikkeling ervan is al deels gericht op luiheid en AI is daar zeker geen uitzondering op. Maar voor deze luiheid komt er ook wel wat voor terug en dat is zoals hardbass zegt meer productiviteit.

Ik zag laats in een film/docu hoe vrouwen boven grote ketels met lange stokken de was aan het doen waren. Dan zou je denken met de komst van de wasmachine is dat verleden tijd? Nu heb je bedrijven die voor werknemer de overals en werkkleding wassen. Het werk is wel minder zwaar geworden maar het werk is er nog steeds.

zo kan AI medische scans al goed beoordelen,

AI heeft uit zich zelf een manier gevonden om uit de iris scan het geslacht van de persoon te herleiden terwijl men daarvoor niet eens een idee had dat het geslacht eruit herkent kon worden. OK de AI wist het geslacht wel want dat stond in het dossier maar toch zit dat ook opgeslagen in de iris weet men nu dankzij AI.

AI moet dan ook gebruikt worden om grote hoeveelheden informatie door te werken waar daar zijn mensen mindergoed in en dan kunnen de mensen doen waar ze goed in zijn het beoordelen van de informatie. Dus AI verwerkt en de mens beoordeelt IK denk ook dat als de mens minder overwerkt is doordat het minder informatie hoeft te verwerken het beter kan beoordelen. Dat gaat nu nog vaak fout maar vind je dat gek als je overwerkt en moe bent.

Maar ten gronde is er niets veranderd, het is enkel oude wijn in nieuwe zakken.

Niet helemaal mee eens. De hoeveelheid informatie die doorgezocht moet worden neemt nog steeds toe. Daar waar er vroeger nog wel zelf doorheen te komen was is het nu al bijna noodzaak.

Ik ga hier mee met enige anderen; ik heb er actief geen belangstelling voor en hoop dat het snel weer verdwijnt van de plaatsen waar ik kom.
Het voegt niets toe en is nu al een bron van extra ruis en irritatie.

Zou het werkelijk het internet overnemen dan zal ik snel minder online zijn. Aan een andere kant is dat allicht helemaal niet erg :)

[edit]
Begrijp mij goed, als het voor een of andere speciale toepassing nuttig is dan is dat prima. Maar ruis genereren in mijn aandacht is niet nodig en wordt niet op prijs gesteld.

Op donderdag 16 mei 2024 17:13:19 schreef Paulinha_B:
Maar ook het analyseren van grote hoeveelheden data is nu niet bepaald nieuw, alleen kan de tegenwoordige informatica nog veel grotere datavolumes aan. Maar ten gronde is er niets veranderd, het is enkel oude wijn in nieuwe zakken.

Dat ben ik toch niet met je eens. Het gaat er in die gevallen niet om de data weg te pompen en op te slaan, daar is het simpelweg veel te veel voor. De truc is om zo lokaal mogelijk, meestal in een flinke FPGA, de schifting te maken tussen wat interessante data is, en wat weg kan. Dat is een zeer complex probleem, maar kan door een neutraal netwerk worden gedaan door het voorbeelden van interessante en oninteressante data te voeren, en het getrainde netwerk op los te laten op nieuwe data. Dat is uiteindelijk sneller en eenvoudiger dan zelf een algoritme bedenken om het verschil te bepalen.