SparkFun Electronics Commentsurn:uuid:214d0e4e-f1b1-d287-ce26-ac5b4c9f82492024-03-29T08:53:42-06:00SparkFun ElectronicsCustomer #516622 on Enginursday: Visually Programming ArduinoCustomer #516622urn:uuid:f04d183a-cbcc-969a-f877-97d81a3bc9022014-02-03T11:36:03-07:00<p>Hi! There is another beautiful and simply software to program arduino in good and old Ladder and STL languages: http://www.autoware.com/alt
:)</p>
S&T Grad on Enginursday: Visually Programming ArduinoS&T Gradurn:uuid:f6743054-b57a-697d-a8e4-9615bd75abda2013-10-30T08:28:48-06:00<p>I despised LabVIEW when I first saw it in one of my engineering courses. After being forced to use it, I am an absolute die hard LabVIEW fanboy. I drank the KoolAid and am even CLAD certified.<p>I would love being able to program an arduino with LabVIEW. Last I checked though, you can only interface with it. (You have to remain tethered to your PC and can't actually upload your code to the arduino.) I am currently working on a way around it, but haven't had time to seriously explore it. Until then, I don't find it to really be a viable solution.</p><p>This makes me incredibly sad.</p></p>
zmink on Enginursday: Visually Programming Arduinozminkurn:uuid:e5525c3b-2603-3276-da7e-6e19341999992013-10-24T09:31:51-06:00<p>I agree, programming with PLC like languages would be quite interesting, especially to introduce people to industrial control programming at an earlier age. My question would be, can an arduino run "realtime" code like PLC's do? This difference between PLC programming and controller programming confused the heck out of me for a long time. Also, I think if you dropped arduino programming environment and went with AVR studio or some integration between the two, you could do some pretty low level and high power debugging</p>
Mike34 on Enginursday: Visually Programming ArduinoMike34urn:uuid:704b2249-ecd9-9bf8-c9af-fc6dc24d78072013-10-23T16:57:20-06:00<p>One word to all the graphical haters out there...FLOWCODE. Muahahaha. Works great. Generates code quick. Handles everything a context language does.</p>
Customer #371907 on Enginursday: Visually Programming ArduinoCustomer #371907urn:uuid:239c941d-d547-f504-1111-60e0da2978582013-10-23T16:26:16-06:00<p>If you would like 100% visual, check out LabView with National Instrument. The post is still partially text but using colored symbols instead of alphabets.</p>
Boneco on Enginursday: Visually Programming ArduinoBonecourn:uuid:d21a8a3e-68bc-5bb3-5bf3-ae4ed4c382522013-10-23T14:28:43-06:00<p>There is a way to use LabVIEW for this, and it has some pretty decent community support. I've used both and happen to prefer C, although they both have their ups and downs. http://sine.ni.com/nips/cds/view/p/lang/en/nid/209835</p>
Customer #469599 on Enginursday: Visually Programming ArduinoCustomer #469599urn:uuid:b5b70dfb-463b-29ca-9838-2b2e0ec49b4e2013-10-23T12:34:14-06:00<p>Ardublocks looks interesting, though I've never been impressed by Scratch. My daughter took a class that taught it at school, but it becomes apparent quite quickly how limited it is. What's the point of a toy language you have to throw away the second you want to do something real?<p>A component based system could work nicely on Arduinos, but it will be interesting to see how semantic limitations affect your code on such a resource limited system. Troubleshooting that could be a nightmare.</p></p>
EDP on Enginursday: Visually Programming ArduinoEDPurn:uuid:51473cfc-a91b-9eb9-ff49-67789dda00b62013-10-23T09:27:02-06:00<p>When I started getting into micros a few years ago, I couldn't have identified a line of C if you had hit me over the head with it. I tried hard to find a concise, readable guide to Arduino programming. There are a lot of sites that have command lists and snippets of "Hello world!" code, but I'll be darned if I could find a clear bottom-up tutorial for the total noob. If there is such a thing, I'd be thrilled to see it.<p>I ended up abandoning Arduino in favor of PICAXE. Their Logicator software makes program development -- at least for the relatively simple stuff I've been doing -- a relative breeze. Their whole environment is geared to education and getting kids started in physical computing, so it was perfect for a 40-something hobbyist whose last experience with programming was making an ASCII rocket scroll up the screen on a Commodore PET in ~1981.</p><p>I'm invested in PICAXE now, with a supply of chips, proto boards and programming cable, but if I were starting over, I would <em>definitely</em> try ArduBlock or Scratch. They may not have all of the flexibility that's afforded someone with a full command of C, but it sure looks like they would ease entry to the hobby for a beginner of any age,</p></p>
Greg Nuspel on Enginursday: Visually Programming ArduinoGreg Nuspelurn:uuid:7b296a4e-c774-6e9f-3f4e-95ae0ab09bb82013-10-23T08:41:03-06:00<p>Now will it run on UDOO?</p>
Customer #116381 on Enginursday: Visually Programming ArduinoCustomer #116381urn:uuid:38b4549f-2949-a7b3-cc4b-9fc7f307e9182013-10-23T08:00:51-06:00<p>one powerful item in my opinion, when using a tool such as ardublock etc one can learn from reviewing the code generated and then figure out how to modify the code to do what is needed. hopefully the generated code is such that it is easy to follow and generates the correct code for the function needed/expected. how many times have "we" borrowed code that does a similar function and modified it for our own use.... every day!! lol</p>
Customer #422740 on Enginursday: Visually Programming ArduinoCustomer #422740urn:uuid:fe55dee8-e295-0afb-bbd9-60512fe5f44f2013-10-23T07:57:41-06:00<p>LabVIEW of course. It's the next step up from Scratch for a general programming environment. It's not Freeware but you can get a student edition for $50 or the LabVIEW for LEGO MINDSTORMS which would also work for less than $200.<p>For text programmers who aren't able to handle icon based flow diagram programming there is also RobotC for education. (Just kidding) Traditional text programmers are notorious about their dislike of graphical languages.</p><p>You can do just as serious work with LabVIEW as most other languages. Yes, as you progress you need to understand software engineering like with any other program. Most people who think LabVIEW isn't a serious progam environment haven't spent much time with it.</p><p>I've been working with it for close to 25 years. I can get a n 8 year old kid to program and in the same environment I've seen large Systems at places like CERN done in LabVIEW that I can guarantee you are highly serious.</p><p>If I put 20 students in a room and can get them all doing some programming and understanding what they are doing and getting exited. If I did that with a text language MAYBE 5 would get interested, the rest wouldn't understand what is going on and decide that they want nothing to do with programming. I work a lot with students at schools since many years and in a classic text language you just won't get many of them interested.</p><p>Each language has it's advantages and disadvantages as Brian pointed out before but to say LabVIEW cannot handle "serious" Programming is incorrect. LabVIEW has been around for over 25 years but it's focus is on robotics and measurement systems not designing a new database or a website. It hasn't come and gone. It is still growing and has never stopped. I guess it depends on how you define what is "serious programming".</p></p>
Super Special Member #328782 on Enginursday: Visually Programming ArduinoSuper Special Member #328782urn:uuid:6d9cac4c-a800-d3e2-57db-83182079201c2013-10-23T07:52:51-06:00<p>great feedback, good to know thank you. i havent had issues, but i dont use it on a large scale.</p>
Customer #135878 on Enginursday: Visually Programming ArduinoCustomer #135878urn:uuid:394f28aa-c1ae-82c8-0dc5-7545ccd7c32b2013-10-22T15:05:36-06:00<p>Ladder Logic. As someone who writes long, complex PLC programs for manufacturing facilities, I've always thought of Arduino's as little toy PLCs. Naturally, I think it would be interesting to have a simple Ladder Logic editor, or Function Block, or all the IEC 61131-3 languages. I daily switch back and forth programming the same types of controls in Ladder and Structured Text and while text is much more compact, I find I can grasp a line of logic more quickly seeing it in ladder, as opposed to the exact same line in text.<p>But visual programming is only half the benefit, visual debugging by watching your code execute in real time is much nicer in ladder than in text. At least with most PLCs, this ability is available in either language. As far as I know there is no way to watch Arduino code execute. Ladder, combined with the ability to watch code execute in real time would go a long way to helping people learn to program.</p><p>Lastly, Ladder Logic is sometimes seen as simple, but more advanced editors support: arrays, structs, subroutines, functions, objects with methods & properties (private & public), pointers, interrupts, events...</p></p>
Fraze on Enginursday: Visually Programming ArduinoFrazeurn:uuid:34c7662f-c666-e41a-d1a0-fc335aee45332013-10-22T09:53:06-06:00<p>Although I do like the idea, I think they end up requiring just as much thinking as just doing it in text. I do see the application of them where they would be nice for debugging and also introducing someone to it without overwhelming them with code.
IMO though, I think Ladder Logic (PLC) editors are probably the best way to represent visual programming while still providing the user with control. I know there have been some advancements in porting Arduino over to Ladder Logic, but I think would be a good avenue to keep pushing into.</p>
Toni_K on Enginursday: Visually Programming ArduinoToni_Kurn:uuid:aad4c976-3667-ca97-c2cc-6c354f996f6c2013-10-21T13:54:58-06:00<p>You're getting ahead of us! We're doing a post about that soon ;)</p>
Toni_K on Enginursday: Visually Programming ArduinoToni_Kurn:uuid:5464704a-d892-a9b2-faf2-f16a02a5ef2f2013-10-21T13:35:58-06:00<p>We actually have taught several classes using ModKit, as it supports the LilyPad main board, but it can be rather buggy in a classroom setting. It's a useful tool, but needs some work to really become a preferred method for large classes.</p>
Super Special Member #328782 on Enginursday: Visually Programming ArduinoSuper Special Member #328782urn:uuid:afd41131-8545-d673-76e3-9c5ea860dc1a2013-10-20T14:19:16-06:00<p>Same here, modkit offers a client but even a browser based interface for visual programing.
As i recall being one of the more popular derivatives i would also surprised to not even see it mentioned.
Regardless, its more than worthy of a proper check out in this topic.
http://www.modkit.com/</p>
Dougie on Enginursday: Visually Programming ArduinoDougieurn:uuid:ddcba789-ebba-400a-e9b7-4db3429e8afc2013-10-19T09:15:48-06:00<p>I was surprised to see Modkit omitted as well. Especially considering Jeff and others were playing with/Demoing it at AVC last year... wassup ?</p>
jgrauman on Enginursday: Visually Programming Arduinojgraumanurn:uuid:0c5de4c2-a44d-9e55-27b4-494b73c178ea2013-10-18T14:57:48-06:00<p>It doesn't use firmata type protocol, so that's the big one for me...</p>
bdwyer on Enginursday: Visually Programming Arduinobdwyerurn:uuid:464354ba-6d6b-247a-819f-64f2761504502013-10-18T10:06:29-06:00<p>Visual Programming is just a higher level of programming. You may not have the low-level control you 'think' you need, but what visual programming does sometimes is optimizes your application. "There are many ways to skin a cat" comes to mind when using lower-level languages to develop applications, and there are many ways code inefficiently or even dangerously regarding resource consumption and other common pitfalls in very complex application development.<p>Visual programming will be the future in industry, because it achieves optimal and repeatable solutions with a reduced amount of development time (often termed 'rapid prototyping'). This also allows for faster software validation and modular software changes.</p><p>Applications where personal safety are concerned (vehicle power-train controllers) are moving toward this method of development. Does it make sense to 'visually' program a controller to blink an LED? - probably not... but as complexity goes up, it becomes invaluable tool.</p><p>Just my 2 cents</p></p>
PocketBrain on Enginursday: Visually Programming ArduinoPocketBrainurn:uuid:43c48f6e-58d1-9d79-9a0e-ed8543f936a22013-10-18T07:19:55-06:00<p>modkit is also a Scratch derivative (it's where I first learned of Scratch). I wonder how it compares with s4a...</p>
jgrauman on Enginursday: Visually Programming Arduinojgraumanurn:uuid:49fceea1-7629-736e-6647-291d89805e372013-10-17T23:14:28-06:00<p>Also see modkit.com for another visual way to program Arduino...</p>
Customer #36540 on Enginursday: Visually Programming ArduinoCustomer #36540urn:uuid:4bf18ced-2a4b-3fe4-b344-afd665737a8e2013-10-17T22:09:15-06:00<p>You may check www.mindplus.cc another visual programming tools.</p>
zmink on Enginursday: Visually Programming Arduinozminkurn:uuid:277828d8-b2b3-bb76-8538-949697fab6b42013-10-17T18:28:56-06:00<p>Simulink!!!!!! Seriously, programming, data recording and data analysis all in Matlab. Doesn't get much better than that</p>
wpmcnamara on Enginursday: Visually Programming Arduinowpmcnamaraurn:uuid:b46b333b-2a50-ce88-9777-34aebaeb591d2013-10-17T16:38:51-06:00<p>I'm of a couple of minds here. Anything that get people (kids or adults) interesting in programming and electronics is good in my opinion. Anything that makes it easier for someone to implement an idea they have for a widget, piece of interactive art, automatic cat herder, or whatever you have cooked up is also good. Things like visual programming and arduino certainly facilitate interactive art and such things and open up the world of custom algorithm implementation to none programmers. It does not make you a programmer. Actually, I consider a programmer to be a step below in the talent spectrum. All you need to do to "program" is learn the language syntax, whatever the language. Visual programming focusing on algorithms or program function.<p>My big beef with visual languages, and even the move to higher and higher level languages is that it makes it easy to accomplish things in a bad way and so we end up with multi-ghz processors being needed to flash a few LEDs. I'm thinking of the penchant for using Raspberry Pi's in place of arduinos because you can run in a normal Linux OS environment. That's fine for some hobbyist at home, but it works its way into the commercial environment and suddenly your toaster has to run embedded linux so a two bit java developer can write the code that lets your burn your bagel in the morning....</p></p>
brian2 on Enginursday: Visually Programming Arduinobrian2urn:uuid:ce0f36e3-3790-b1b2-2a72-df43b61983942013-10-17T14:56:51-06:00<p>I would have to disagree with the statement that everything serious is done textually. I have done quite a bit of work with Labview over the past 10 years and have seen projects with 1000+ hours of development, involving multiple developers, that when finished ran complex systems of computers and other hardware. I am not saying that a solution using a text based language could would not have been plausible, but the development of the project did not seem to be severely limited just because the language was a "visual" programming language.<p>That being said, you are correct that there are definite limitations to visual languages, including Labview. There are many things that can be done in C, C++, etc (which I use more frequently than Labview) that simply do not lend themselves to a visual programming solution. I just thought it was worth saying that some serious projects can be accomplished with a visual language without (at least in my opinion) being severely limited by the development language.</p></p>
brennen on Enginursday: Visually Programming Arduinobrennenurn:uuid:6025c556-772c-0878-b019-51c5b65614922013-10-17T14:19:15-06:00<blockquote>
<p>The ultimate easy programming environment was once thought to be natural language. Anyone who’s ever listened to the “Who’s on First” schtick should be able to see the fallacy in that. But some government software types decided to go with it anyway. They came up with a language where instead of “x = y + z” one had to type in “ADD X TO Y GIVING Z” and thus was born COBOL. Anyone who’s suffered through reading long COBOL listings knows just how unreadable the stuff usually is.</p>
<p>I did a couple of years in the early 2000s at a state college in Nebraska where the CS curriculum still focused on COBOL and IBM mainframes. I was just bumming around taking general credits and art classes, but friends of mine were on a CS track. Looking over their homework always brought on a certain amount of sympathetic despair. That said, maybe it's worth pointing out that it probably still runs a substantial fraction of the world economy in 2013. COBOL's an evolutionary dead end in a bunch of ways, but it owned a lot of the territory for a while.</p><p>I've spent time with languages that did their best to read like English prose. <a href="http://en.wikipedia.org/wiki/HyperTalk" rel="nofollow">HyperTalk</a> always comes to mind. HyperTalk was a <em>terrible</em> language, really, but HyperCard was a pretty amazing software <em>environment</em>, and it sure did a lot to draw me personally into programming. Despite being focused on a visual, point-click-drag mode of authoring that's at least theoretically the aesthetic opposite of the tools I've come to rely on in my working life. There's still nothing quite like it, though it's been influential all over the place.</p><p>I tend to doubt that "visual languages" will function as much more than toys until they're composable, easily manipulable representations of complex abstract syntax trees that can also convey rich semantics at a glance. That's a tall order for anything that wants to compete with all the cognitive and cultural advantages that written language, meaningful names, and quasi-mathematical notation already carry.</p><p>Still, it's not like I mean "toy" as a disparagement. If this stuff offers a welcoming surface for beginners, more power to it. If it points in the direction of richer tools for understanding code in the general case, so much the better. We need all the help we can get.</p></blockquote>
M-Short on Enginursday: Visually Programming ArduinoM-Shorturn:uuid:dc9fe169-f577-142a-8f4a-46cc6da56f722013-10-17T14:01:50-06:00<p>I agree, text programming is way more powerful. But after also having gotten back from the SFE tour, when you are trying to teach a room full of kids to do something they can see in 1 class period, or 1 Saturday afternoon its a great tool. It allows all the kids (not just the ones who aren't intimidated by computers and coding), to see structure and understanding the idea of coding independent of syntax. Having 3rd graders go from not knowing anything about programming to making a game by themselves in a couple of hours is something you just can't do with text based coding. This isn't enough to get them a job coding, but hey, they are in 3rd grade which is still a bit early for the job market. Getting them interested in coding and getting them to understand the flow of coding can be done quickly and easily this way. Again, great tools, but not a replacement for text based programming.</p>
PocketBrain on Enginursday: Visually Programming ArduinoPocketBrainurn:uuid:af211af9-061f-9cfb-291e-c0763bf6b51d2013-10-17T13:57:16-06:00<p>It wouldn't be much of a leap for me, as I use LabVIEW, which is graphical, but sophisticated when you start digging.</p>
Customer #344733 on Enginursday: Visually Programming ArduinoCustomer #344733urn:uuid:f2cc1029-d4ed-6522-a118-e02416c49cae2013-10-17T13:22:54-06:00<p>I agree that a lots of visual programming languages have come and go and none stick. One problem is to insist the visual programming language to be "full" programming language. Ardublock doesn't try to be that. One of the design philosophy is as a gateway environment to eventually lead those really interested into "text" based programming. That's why Ardublock tries to generate clean C/C++ codes.<p>Kids use picture book before they accumulate enough understanding of the text to real everything in simple text. Ardublock is designed to be picture books of programming and allow more people interested in simple programming without the need to overcome the barrier of entry to text base language. "Syntax error" really frustrates beginner.</p></p>
LightManCA on Enginursday: Visually Programming ArduinoLightManCAurn:uuid:42eee62a-63d6-23f3-8d5c-2f9bd68ddd392013-10-17T13:13:30-06:00<p>Event driven?? I need to check that out! One of the things I understand the least is handling interrupts and using timers. So powerful, but definitely a level up than regular programming (especially since the ATMega does not natively support multiple tasks, at least not from Arduino).</p>
andy4us on Enginursday: Visually Programming Arduinoandy4usurn:uuid:87124c3b-0875-e989-40db-5709baa1fac92013-10-17T13:02:21-06:00<p>I was going to reply about how I loved using Delphi 1.0 in the early 90's on Win 3.1, the first graphical event driven code, where you just double clicked on a graphical item, it generated code, and you just put some code into the handler for that object.<br>
The I thought how cool it would be for the scenario you just described.<br>
30s later in Google, I find http://www.state-machine.com/arduino/</p>
Customer #394180 on Enginursday: Visually Programming ArduinoCustomer #394180urn:uuid:b001aa1b-3abd-9a51-4dab-6724495367f62013-10-17T13:01:28-06:00<p>Not hating, just saying - I've been watching "visual" programming systems come and go for almost 40 years and so far everything serious is still done textually.<p>I think that the reason for this is that it's just as difficult to come up with an intuitive visual representation as an intuitive textual one, especially if you're trying to represent interrupts, events, exceptions, function parameters, etc. Probably the best visual language so far, at least in terms of being a good match for the problem being solved, is good old venerable ladder logic. It is a visual layout of the arrangement of input and output signals and all the logic used to map one onto the other. It can even be directly implemented in hardware with switches and relays. But...</p><p>And that brings me to my second point ... it's still incredibly easy to write poor, obtuse, unreadable and undebuggable code even with a language that matches the problem so well. And when the problem space is expanded to handle complex situations that are controlled with PLCs, the language stops matching the problem and the code structure gets harder to control.</p><p>Basically, the problem is what LightManCA is alluding to - visual systems aren't easier for newbies and "civilians" because they're visual, it's because the problem space is limited to the easy stuff. Once you have to expand beyond that, no matter what programming model you use, you'll have to be trained and think.</p><p>The ultimate easy programming environment was once thought to be natural language. Anyone who's ever listened to the "Who's on First" schtick should be able to see the fallacy in that. But some government software types decided to go with it anyway. They came up with a language where instead of "x = y + z" one had to type in "ADD X TO Y GIVING Z" and thus was born COBOL. Anyone who's suffered through reading long COBOL listings knows just how unreadable the stuff usually is.</p><p>The long and short of it - a limited language will only let you code limited solutions. If you can live within those limits (like using the language to expose kids to the fun of computers), great. Just expect to outgrow the language one day.</p></p>
Shpoople on Enginursday: Visually Programming ArduinoShpoopleurn:uuid:e2d2c1b7-973f-d311-9b9d-4430a41b8bbf2013-10-17T12:51:35-06:00<p>I don't know if it's just me, but that actually looks more confusing than a written language. Of course it may be easier for people just getting into programming. I dunno.</p>
LightManCA on Enginursday: Visually Programming ArduinoLightManCAurn:uuid:7343d6ea-7341-b898-78cf-d8c4ba04fab02013-10-17T11:09:37-06:00<p>Ardu block looks promising!<p>One thing about having a drag and drop programming interface is that at some point in time even beginners can run into something where they want to do something that the interface wasn't designed for. If you can edit the code afterwards that would solve that problem.... Often getting started in programming is hard (getting layout and structure, etc), but if you just want to modify a line or two, that''s easier.</p><p>I'll have to see if this is more enticing to get my wife into fiddling with arduinos. I'm to used to seeing code to have it something I'd want to use, but great for others.</p></p>
Customer #479375 on Enginursday: Visually Programming ArduinoCustomer #479375urn:uuid:3b3c2e3b-659c-009f-9713-6540278e92f12013-10-17T11:04:38-06:00<p>Ive always written off the possibility of learning to use arduinos(and anything else requiring programming) because i find written languages to0 unwieldy and difficult to learn. I wasnt even aware there was such a thing as visual programming. This is a door opener.</p>
Customer #478776 on Enginursday: Visually Programming ArduinoCustomer #478776urn:uuid:8c31e93c-6c86-2f46-459f-162e348b11f52013-10-17T10:20:54-06:00<p>Love s4a however it does not work with the new version of scratch 2.0 would love to see something like that!</p>