Grafisk programmering

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
ojz0r
Inlägg: 244
Blev medlem: 14 september 2007, 19:38:04
Ort: Växjö

Grafisk programmering

Inlägg av ojz0r »

TL;DR: Finns det någon bra IDE för programmering av MCU och liknande som är gratis för hobbybruk och som är grafiskt baserad?

Jag kommer från PLC/DCS sidan och gillar att göra program grafiskt i funktionsblock (FBD) men där man skriver koden i blocken själv i strukturerad text (likt Pascal) och jag känner att steget till helt textbaserat är större än vad jag eventuellt har tid att lägga ned på det.

Jag hobbyprogrammerade förr FPGA/CPLD i Alteras (nu Intels) IDE Quartus II och där kunde man göra block eller moduler i Verilog/VHDL kod och sedan använda Schematic (FBD liknande) för att enkelt visuellt bygga ihop blocken som instanser till ett program som sedan kompilerades.
Bild där koden i clock blocket syns:
clock.jpg
Bild på program där jag gjorde SPI bitbang block för MCP23S17 GPIO extender:
bitbang.jpg
Jag antar, kanske felaktigt, att det är header filen (?) som i så fall skulle vara den grafiska delen som sedan kallar på instanser av individuella subprogram?

Jag har en Raspberry Pi Zero W som jag gärna skulle vilja programmera hårdvaran i (GPIO, SPI, I2C) men göra det grafiskt enligt ovan beskrivning. Det finns Codesys som implementerar en softPLC på Raspberry PI men den är i vissa fall lite begränsande i licensen.

Jag satsar på att detta här hör mer hemma i forumdelen för programmering snarare än Inbäddade system men mod får gärna flytta om den senare är mer lämplig.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
janno
Inlägg: 403
Blev medlem: 11 oktober 2009, 07:34:45
Ort: Västerås

Re: Grafisk programmering

Inlägg av janno »

På en raspberry pi kan du använda exempelvis https://nodered.org/ för att styra GPIO och funktioner.
Du programerar i princip javascript grafiskt och har möjlighet att redigera kod i vissa moduler.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
ojz0r
Inlägg: 244
Blev medlem: 14 september 2007, 19:38:04
Ort: Växjö

Re: Grafisk programmering

Inlägg av ojz0r »

Tack för svaret.
Jag kollade lite på den men den känns mer anpassad för iot och kanske inte så låg nivå jag vill nå.

Just mitt fall med raspberry är mer sekundärt i frågeställningen. Jag tänkte om det fanns någon "allmän" IDE för ARM/AVR/Microchip?
Jag kan tänka mig att LabView är lite åt det hållet men den ser ut att vara kommersiell.
H.O
Inlägg: 5685
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Grafisk programmering

Inlägg av H.O »

Har du sett Flowcode?
Användarvisningsbild
ojz0r
Inlägg: 244
Blev medlem: 14 september 2007, 19:38:04
Ort: Växjö

Re: Grafisk programmering

Inlägg av ojz0r »

Nej den har jag inte heller sett innan. Tyvärr känns det inte riktigt he,ler som det jag letar efter.
Jag känner att jag kan uppfattas som otacksam men det är jag absolut inte, stort tack för hjälpen.

Det kanske är så att det jag är ute efter inte finns i någon större utstreckning inom microprocessorer, är man van från början att skriva allt i text så är det väl det naturliga för programmerare av denna typen av hårdvara.

Jag får nog grotta ned mig rejält i detta om jag skall lyckas finna något. Jag frågade här för att se om det fanns någon de facto standard för detta men det verkar det alltså inte göra utanför HDL sfären då.
Användarvisningsbild
4kTRB
Inlägg: 18290
Blev medlem: 16 augusti 2009, 19:04:48

Re: Grafisk programmering

Inlägg av 4kTRB »

Det är en på klubben som hela tiden vurmar för RedNode, tror jag det stavas.
bobobo
Inlägg: 677
Blev medlem: 10 november 2007, 22:18:30
Ort: Kungsbacka

Re: Grafisk programmering

Inlägg av bobobo »

Till RPi finns Codesys, så är du tillbaka i plc-värden...
janno
Inlägg: 403
Blev medlem: 11 oktober 2009, 07:34:45
Ort: Västerås

Re: Grafisk programmering

Inlägg av janno »

För Raspberry Pi finns flera "grafiska" verktyg men för vanliga mikrokontrollers har jag inte sett något, några utvecklingskort typ Microbit och några Arduino finns det några blockbaserade verktyg, mera för utbildningssyfte.
För övriga rena mikrokontrollers kan det i verktygslådan från leverantören/tillverkaren finnas grafiska verktyg för att generera "standard kod" för att aktivera olika funktioner på de olika mikrokontrollerna, sedan får man programmera vidare i C, C++ eller assembler.
Användarvisningsbild
4kTRB
Inlägg: 18290
Blev medlem: 16 augusti 2009, 19:04:48

Re: Grafisk programmering

Inlägg av 4kTRB »

Varför ska man programmera grafiskt?
Grafiker sysslar med sånt. Konstnärer?
Användarvisningsbild
ojz0r
Inlägg: 244
Blev medlem: 14 september 2007, 19:38:04
Ort: Växjö

Re: Grafisk programmering

Inlägg av ojz0r »

Jag får väl se mig som en kodkonstnär då.

Förmodligen är det jag som inte har satt mig in tillräckligt djupt för att greppa hur man binder ihop olika subrutiner (block med instanser i min värld) på ett modulärt och överblickbart sätt.
Jag skulle ha otroligt svårt att se vad som händer i en stor fil med flera hundra eller tusen rader. Det förenklar för mig att se det grafiskt att från block A (med 200 rader kod) går det iväg 3 kopplingar av olika datatyper till block B (med 700 rader) som därifrån kanske går till en utgång, likt bilderna jag bifogade i första inlägget.
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Grafisk programmering

Inlägg av Icecap »

Nja, det är väl för att du inte har skrivit program på et "ordentligt" sätt innan.

Jag har skrivit rimligt stora program där allt är delat upp i blockar med vettiga namn och parameter. Detta betyder att jag kan "samla trådarna" på ett sätt som i sig är självförklarande.

Exempel:
RTC_Set_Time(int hh, int mm, int ss);
RTC_Read_Time(int* hh, int* mm, int* ss);
Osv. Jag använder dock inte pekare på detta sätt men istället variableblock-pekare till överföring av parameter, jag försökte bara att vara tydlig.

Alla funktioner som har med RTC'n att göra startar med "RTC_" för att markera detta, andra manipulerar t.ex. med datum & tid och har då prefix för detta osv.

På det vis blir ett programs huvudförlopp läsbart.
* Läs RTC data till data.
* Kontroller data för fel.
* Räkna om data till sekunder-sedan-<ett givet datum>
* Kasta in resultatet i systemklockan.

Vid att använda samma datatyper och VETTIGA NAMN på funktioner och data kommer översikten på posten.

Mina funktioner indenterar jag enl. Whitesmith med tab-storlek på 2 och om de gör något speciellt som inte är enkelt att räkna ut finns det en liten beskrivning i toppen.

Det finns alltid dubbla tomrader ovanför och under en funktion för att ge klar uppdelning och jag har aldrig tomrader i en funktion.
Användarvisningsbild
ojz0r
Inlägg: 244
Blev medlem: 14 september 2007, 19:38:04
Ort: Växjö

Re: Grafisk programmering

Inlägg av ojz0r »

Tack för alla svaren.

Efter lite djupare efterforskning hittade jag något som hette 4diac som är en plugin i eclipse som åtminstonde ser ut som det jag letade efter, återstår att se om det är användbart.

Ska nog försöka sätta mig in i Pascal och Lazarus och se om jag kan skrapa fram tiden att bemästra det. Med tanke på att jag kqn strukturerad text och verilog så borde kanske steget till Pascal bli mindre.
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14819
Blev medlem: 16 april 2006, 17:04:10

Re: Grafisk programmering

Inlägg av mrfrenzy »

Jag vill också slå ett slag för codesys. Då kan du programmera med FBD och SFC enligt IEC-standard.

För vissa projekt är det bra, för andra är det bättre med mer hårdvarunära ren C-kod.
Användarvisningsbild
AndLi
Inlägg: 17051
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Grafisk programmering

Inlägg av AndLi »

Pascal låter som att gå åt ett håll väldigt få går idag... var ser du fördelarna i att välja pascal?
Användarvisningsbild
lgrfbs
Inlägg: 6973
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Re: Grafisk programmering

Inlägg av lgrfbs »

Kan detta vara något för dig?
https://www.mikroe.com/mikropascal

Jag länkar in det här efter som du ( ojz0r ) skrev om Pascal själv.
Skriv svar