PIC, Arduino, Atmel, AVR, Adafruit.... i am lost!!!!

Ik heb de indruk dat het voor huis en tuin gebruik gaat worden.Dat gaat geweldig met arduino en alles wat er om heen hangt, zoals de esp8266 familie voor draadloze wifi sensoren, de sonoffs, voorzien van tasmota en nog veel veel meer. Allemaal toegankelijk via de Arduino IDE. Je brein wordt dan gebruikt om toepassingen te bedenken en die zijn er dan legio.
PS: vele jaren geleden is mij geadviseerd om C te leren door omstandigheden niet gedaan, en daar heb ik nog steeds spijt van.

PE9SMS

Special Member

Nooit te oud om te leren toch? Zo heel moeilijk is C nou ook weer niet.

This signature is intentionally left blank.

Op 5 november 2020 21:32:29 schreef EgbertG:
Het voordeel van die PIC's is dat t een los IC is met interne klok en dat je inderdaad geen Arduino bouwblok hoeft te integreren.

Die PIC's waar jij het over hebt zijn gewoon losse chips. De basis-chip van het arduino-platform (Een Atmel AVR) is ook gewoon als losse chip te krijgen.

Als je de controller op een Arduino UNO bordje met arduino geprogrammeerd hebt kun je hem gewoon los gebruiken (oke, moet je wel een klok-resonator aansluiten).

Maar je kunt ook AVR chippies krijgen met een ingebouwde klok.

Belangrijkste is: Leer C. Als je moeilijkere dingen gaat doen dan een LED laten knipperen besteed je de meeste tijd aan code die niet chip afhankelijk is (zou moeten zijn). En dan maaakt het niet uit of je voor een PIC, een AVR of een STM32 aan het programmeren bent.

EgbertG

Golden Member

Ik ben blij met alle reacties ... ik kan e.e.a weer wat beter plaatsen en denk dan dat ik inderdaad blijf bij PIC en Arduino.

Hoewel ik de PIC nu weer interessanter ga vinden omdat die blijkbaar ook met C te programmeren is.

Aansturen van een SAA1057 met een kleine 8 pins PIC lijkt me leuk om te gaan proberen

Arco

Special Member

De PIC12F1571/72 zijn goedkope controllertjes die veel kunnen...

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

Golden Member

0,57 ct zag ik ergens staan ... toch echt ongelooflijk!!!!!
Betaalde ik vroeger voor een BC149 .....

Lambiek

Special Member

Op 5 november 2020 21:38:44 schreef flipflop:
..., klopt, daarom is het ook zo geschikt voor beginners en hobbyisten. En een library kun je ook prima zelf maken natuurlijk, maar meestal is dat niet nodig.

Het stapt makkelijk op, maar je leert weinig over de controller zelf. En dat is nu net iets wat toch wel verdraait handig is. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Egbert, kijk eens bij www.knutselaar.eu . gratis proton basic compiler voor een aantal pic Ic’s ook compacte 18 en 28 poots pic moederboardjes voor weinig.

buckfast_beekeeper

Golden Member

Als TS al geprogrammeerd heeft in C, waarom zou hij dan basic gaan gebruiken? Een arduino als opstap. Dan zit je ook snel bij een esp8266, esp32, ....

Van Lambiek wordt goede geuze gemaakt.
bprosman

Golden Member

Hoewel ik de PIC nu weer interessanter ga vinden omdat die blijkbaar ook met C te programmeren is.

Een AVR ook, en beiden ook in Basic :
http://gcbasic.sourceforge.net/Typesetter/index.php/Home

De jongere generatie loopt veel te vaak zijn PIC achterna.
EgbertG

Golden Member

Ik kende de site knutselaar.eu nog niet ... toch ook wel weer de moeite waard! Staan leuke dingen te koop...

Basic zou een reden kunnen zijn als het om wat grotere programma's gaat, want ik las dat de C compiler beperkt is tot 4K. Dus ik download m ;-)

Herinner me opeens dat ik bij een van die Arduino's ook altijd gedoe had
met die USB TTL uart interface ellende.

bprosman

Golden Member

Herinner me opeens dat ik bij een van die Arduino's ook altijd gedoe had
met die USB TTL uart interface ellende.

Met een beetje Googlen en de juiste drivers is dat meestal prima op te lossen.

De jongere generatie loopt veel te vaak zijn PIC achterna.

Omdat de I/O van 99% van de toepassingen zeer basaal is vind ik de programeertaal niet zo relevant.

Het is met 4 druktoetsen een display en wat sensors nou niet zo dat je zwetend zit te kloppen aan linked lists, bubble sorts op multidimensionale arrays en recursion.

Op 6 november 2020 11:53:23 schreef EgbertG:
Basic zou een reden kunnen zijn als het om wat grotere programma's gaat, want ik las dat de C compiler beperkt is tot 4K. Dus ik download m ;-)

En das precies de reden waarom ik nooit aan PIC begonnen ben. Iedere serieuze microcontroller heeft een goede, gratis C compiler zonder beperkingen. Behalve PIC.

Er zijn hobbyisten die hele mooie dingen maken in Basic, maar er zijn er veel meer die in C werken. Dus meer voorbeelden, meer fora, meer mensen die je kunnen helpen.

Arco

Special Member

En das precies de reden waarom ik nooit aan PIC begonnen ben. Iedere serieuze microcontroller heeft een goede, gratis C compiler zonder beperkingen. Behalve PIC.

???
De XC compilers zijn onbeperkt en gratis. (alleen de zwaarste optimalisatiestap ontbreekt)

Er zijn hobbyisten die hele mooie dingen maken in Basic, maar er zijn er veel meer die in C werken. Dus meer voorbeelden, meer fora, meer mensen die je kunnen helpen.

Onzin dat basic altijd met hobbyisten verbonden wordt en wordt afgeschilderd (door onwetenden) als een 'knutseltaaltje', ik kan daar kwaad om worden... :(
Wat je in C kunt maken, kun je ook in een goede Basic als Mikrobasic maken... (Picbasic is te beperkt daarvoor)

Ik maak veel professionele software voor Windows en PIC en bijna altijd in basic.
Voor mensen die er niet mee opgegroeid zijn, is C eencryptisch en moeilijk te doorgronden taaltje. (heb vroeger wel Pascal gebruikt, dat was een stuk beter)

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

Special Member

Op 6 november 2020 15:00:46 schreef blurp:
En das precies de reden waarom ik nooit aan PIC begonnen ben. Iedere serieuze microcontroller heeft een goede, gratis C compiler zonder beperkingen. Behalve PIC.

Dan moet je nog maar eens goed zoeken.

Er zijn hobbyisten die hele mooie dingen maken in Basic, maar er zijn er veel meer die in C werken. Dus meer voorbeelden, meer fora, meer mensen die je kunnen helpen.

Onzin, als ik zie wat ik allemaal al gemaakt heb met Proton "ook industrieel" wat gewoon allemaal goed werkt.

Maar het draait weer uit op nietes welles denk en het zoveelste je moet dit gebruiken of dat gebruiken.

Dus het zoveelste topic over microcontrollers en de voor en tegenstanders van allerlei merken en types.

En altijd wordt de PIC af gezeken. :(

Als je haar maar goed zit, GROETEN LAMBIEK.
Arco

Special Member

Tegenwoordig maakt de taal waarin je programmeert totaal niets meer uit: de 'engine' die 'onder de motorkap' code produceert is voor allen gelijk.
Voor wel of niet goede programma's moet je de programmeur bekijken, niet de compiler... ;) Het bekende gezegde:

"It's not the paintbrush that makes a painting, but the artist "...

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

mét CE

En altijd wordt de PIC af gezeken. :(

Zou dat een reden hebben? Ik ben ook met die dingen begonnen. In de tijd dat je ze nog met UV moest erasen. Taal was assembly. Wat een draak van een architectuur! (dat is later wel wat beter geworden hoor... maar toch...) En wat een verademing toen er wat anders kwam. (8051 en AVR).

"It's not the paintbrush that makes a painting, but the artist "...

Dat is ook maar ten dele waar. Een 8051 (derivaat) is - by design - erg beperkt in stack. Dat betekent dat wanneer je met een 'stack based' taal aan de gang gaat (ja, ook basic valt daaronder), de compiler allerlei trucen uit moet halen om te doen alsof er toch een stack is. Functioneel werkt dat doorgaans wel. Maar qua performance wordt het soms absurd 'duur' - terwijl je puur op basis van de source code denkt... dit kan toch niet zo spannend zijn (en als je dan naar de gegenereerde assembly kijkt denk je... f*ck... op deze architectuur... is het eigenlijk best spannend wat ik doe). Schoolvoorbeeld van een 'misser': void pointers in C op een 8051. Dat wordt ff gedoe om runtime te bepalen of het spul in ROM, RAM of XRAM zit - dat zijn andere opcodes!

Als je nu iets redelijk toekomst bestendigs wil hebben... STM32 in C. Ook dat zal wel weer een keer 'oud' worden. Maar dat duurt nog eventjes. En nee, het is niet de meest makkelijke combinatie om mee te beginnen.

Voor wat betreft de taal: ik denk dat je in basic ook best mooie dingen kunt maken. Ik ben er (35 jaar geleden...) in begonnen. Daarna kwam assembly (in diverse derivaten), Pascal en toen pas C (en tussen door nog andere assembly varianten). Dat laatste bleek toch een fijne combinatie te zijn van 'de mogelijkheden / efficiency van assembly' en 'het gemak van een hogere taal' zoals Pascal, Basic.
En zoals altijd... als een taal je veel 'mogelijkheden' biedt, dan heb je ook veel mogelijkheden om jezelf in je voet te schieten (been there, done it) - zeker als je kennis van assembly op die architectuur mist. In dat opzicht is Pascal veel formeler - met dus ook minder risico op dergelijke missers.

Arduino... Ik heb er wel eens naar gekeken. Vaak wel behoorlijke hardware (AVRs zijn best robuust en de originele Arduino's gebruiken ook behoorlijke componenten). Er zijn veel libraries, classes of hoe je het noemen wilt voor te krijgen. Van sterk wisselende kwaliteit - dus het is niet altijd een succes. Daardoor ben je erg snel in staat om een werkend iets te bakken - als je mazzel hebt.
Aan de andere kant: soms is het ook een beetje 'worst of all worlds'. Een taaltje wat best ver van de hardware af staat. Libraries die niet altijd doen wat je ervan zou willen - en ga het dan maar eens uit zoeken zonder behoorlijke kennis. Op wat vingeroefeningen na begrepen dat het voor mijn tak van sport het niet is.

Lambiek

Special Member

Op 6 november 2020 15:55:23 schreef EricP:
Zou dat een reden hebben? Ik ben ook met die dingen begonnen. In de tijd dat je ze nog met UV moest erasen. Taal was assembly. Wat een draak van een architectuur! (dat is later wel wat beter geworden hoor... maar toch...)

Dat was toen, over nu kun je niet oordelen.

Als je haar maar goed zit, GROETEN LAMBIEK.
Arco

Special Member

Dat betekent dat wanneer je met een 'stack based' taal aan de gang gaat (ja, ook basic valt daaronder)

Basic heeft niks met wel of niet 'stack based' te maken.
't Is gewoon een front-end dat code aanmaakt die door een linker en assembler wordt gecompileerd tot uitvoerbare code...

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

Golden Member

Voor mensen die er niet mee opgegroeid zijn, is C eencryptisch en moeilijk te doorgronden taaltje. (heb vroeger wel Pascal gebruikt, dat was een stuk beter)

Dat is inderdaad helemaal waar, toch als je er goed voor gaat zitten en je op de goede volgorde leert gaat het steeds beter. IK had voor de eenvoud alles liever gewoon in basis gezien maar C is er nu eenmaal en zal de maar moeten leren.

Maar het iscfeitelijk gewoon discussie die er niet hoort te zijn. Is de Chinese taal beter dan de Nederlandse taal? Ook een zinloze discussie het is maar net waar je geboren bent, ik ga liever voor Plutonees, daar ben ik geboren :).

Het voordeel van Arduino is tevens ook zijn grootse nadeel. Het voordeel is heel veel bibliotheken die je kan gebruiken, het nadeel is dat ze bijna nooit doen wat ik wil of ten koste van performance.

Basic heeft niks met wel of niet 'stack based' te maken.

Als je een functie aanroept dan zal er toch naar een ander adres gesprongen moeten worden en dan zal je toch al minimaal het return adres op de stack moeten zetten. Als je dus veel geneste functies hebt kan dat zeker nadelig zijn voor de ruimte op de stack.

[Bericht gewijzigd door benleentje op vrijdag 6 november 2020 16:44:42 (16%)

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.
Arco

Special Member

Bijna alle libraries zijn veel te uitgebreid (doordat iedereen wat anders wil worden functies steeds uitgebreider) en slorpen daardoor veel meer geheugen op als nodig...

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

Golden Member

Op 5 november 2020 19:37:56 schreef benleentje:
[...]Avr en Atmel zijn chip fabrikanten en hebben elk zo hun eigen platform. [...]

Op 5 november 2020 21:33:02 schreef Ex-fietser:
[...]PIC's, AVR, Atmel zijn net als intel en motorola vroeger chipbakkers. [...]

Microchip en Atmel zijn fabrikanten. PIC® en AVR® zijn microcontroller-families.

What, me worry? // Radiozendamateur - PA2HGJ // Stuff is the junk you keep -- Junk is the stuff you throw away // Tinkeo Ergo Sum
EricP

mét CE

Basic heeft niks met wel of niet 'stack based' te maken.
't Is gewoon een front-end dat code aanmaakt die door een linker en assembler wordt gecompileerd tot uitvoerbare code...

Eh... toch ff een college compilerbouw volgen :) Je ziet het iets te simpel - ik meende dat jij toch zeker ook wel de nodige assembly geschreven zou hebben en dus zou snappen wat ik bedoel.

Bijna alle libraries zijn veel te uitgebreid (doordat iedereen wat anders wil worden functies steeds uitgebreider) en slorpen daardoor veel meer geheugen op als nodig...

Dat is nog tot daar aan toe (ik bedoel... een paar k meer kost niks), maar door al die functionaliteit doorgaans ook meer bugs. En minder performance. Het eerste is altijd naar. Het 2de soms.

Maar het iscfeitelijk gewoon discussie die er niet hoort te zijn. Is de Chinese taal beter dan de Nederlandse taal? Ook een zinloze discussie het is maar net waar je geboren bent, ik ga liever voor Plutonees, daar ben ik geboren :).

Toch is dat niet helemaal waar. Alhoewel de vergelijking wat mank gaat (immers, de omvang van de source code is niet zo interessant), is de ene taal efficiënter dan de andere. Nederlands is doorgaans langer dan Engels. Duits is doorgaans langer dan Nederlands. En dan neem ik aan dat ik niet hoef uit te leggen dat het om dezelfde inhoud gaat. Zo zijn er ook talen die voor (vrijwel) hetzelfde begrip meerdere uitdrukkingen hebben, met kleine nuance verschillen. Als die nuances van belang zijn, dan is een taal die daar uitdrukkingen voor heeft waarschijnlijk beter om te gebruiken dan een taal die die uitdrukkingen niet kent en waar alles omschreven moet worden.
Als dat allemaal geen moer uit maakt... Doe het vooral in het Plutonees :). Maar zodra dat wel een rol speelt, is de taal wel degelijk van belang.

buckfast_beekeeper

Golden Member

Op 6 november 2020 17:14:12 schreef Schimanski:

[...]
Microchip en Atmel zijn fabrikanten. PIC® en AVR® zijn microcontroller-families.

En Atmel is opgeslorpt door Microchip, net als Micrel.

TS geeft aan dat hij al geprogrammeerd heeft in C. Heeft dan al zeker een basis om te starten. Als je in het Nederlands kan schrijven, wat je al beheerst, waarom zou je het dan plots in het chinees gaan doen, terwijl je die taal nog volledig moet leren.

NB: chinees is ook de gebruikelijke naam voor een Franstalige militair in het Belgische leger.

Van Lambiek wordt goede geuze gemaakt.