Grafisk programmering
Grafisk programmering
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: Bild på program där jag gjorde SPI bitbang block för MCP23S17 GPIO extender: 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.
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: Bild på program där jag gjorde SPI bitbang block för MCP23S17 GPIO extender: 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.
Re: Grafisk programmering
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 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.
Re: Grafisk programmering
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.
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.
Re: Grafisk programmering
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å.
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å.
Re: Grafisk programmering
Det är en på klubben som hela tiden vurmar för RedNode, tror jag det stavas.
Re: Grafisk programmering
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.
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.
Re: Grafisk programmering
Varför ska man programmera grafiskt?
Grafiker sysslar med sånt. Konstnärer?
Grafiker sysslar med sånt. Konstnärer?
Re: Grafisk programmering
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.
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.
Re: Grafisk programmering
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.
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.
Re: Grafisk programmering
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.
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.
Re: Grafisk programmering
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.
För vissa projekt är det bra, för andra är det bättre med mer hårdvarunära ren C-kod.
Re: Grafisk programmering
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?
Re: Grafisk programmering
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.
https://www.mikroe.com/mikropascal
Jag länkar in det här efter som du ( ojz0r ) skrev om Pascal själv.