Schlagwort: c

  • The best maker software by experience level

    The best maker software by experience level

    Reading Time: 6 minutes

    Today’s makers have access to the most advanced materials, resources, and support in history, and it’s improving all the time. The downside is that finding the right software can sometimes feel confusing and overwhelming. There are seemingly endless options, all with different attributes and advantages.

    In this article, we’re here to help make things easier. We’ll walk you through the best software for makers at each experience level — beginner, intermediate, and expert — and help you identify the right software for your needs.

    The best maker software for each experience level

    Beginner-level software

    If you’re new to the world of making, you’ll likely have some specific needs and requirements that won’t apply to more experienced folks.

    For example, you’ll want software that’s forgiving and beginner-friendly, that comes with more opportunities to learn the basics, and is easy enough that you won’t be discouraged from making.

    With that in mind, here are our top picks for the best beginner-level maker software.

    Arduino IDE

    Arduino is one of the most well-established and well-known platforms for makers of all levels. Arduino’s microcontrollers allow you to program projects with your own custom code, creating gadgets that work exactly the way you want them to.

    If you’re new to the game, you’ll want to start with a microcontroller that’s suitable for beginners. The Arduino IDE is perfect for this: it’s free, user-friendly, and leverages a simplified version of the C/C++ programming languages so you can learn the basics in a fun and rewarding way.

    TinkerCAD

    Since it first came onto the scene in 2011, TinkerCAD has been a great choice for beginners looking to get started with making their own projects.

    As a CAD (computer-aided design) software, TinkerCAD is a fantastic tool for designers and can be used to create models for 3D printing. 

    Due to its beginner-friendly nature, TinkerCAD is often used in schools to help learners get to grips with basic coding and design, building their own elementary tech projects. It’s also completely free of charge.

    The advantage of using TinkerCAD is that it also contains a simple circuit designer and visual code tool useful to generate the code for Arduino boards.

    Intermediate-level software 

    Once you’ve learned the basics of making, you’ll likely be craving some more challenging and stimulating projects.

    Taking your coding skills to the next level requires more sophisticated software, allowing you to be more adventurous and ambitious with your plans. The good news is that there is plenty of software out there for intermediate makers. Let’s take a look at some examples.

    Python

    Python is one of the most well-known programming languages out there, and it’s compatible with most maker-friendly platforms and microcontrollers.

    Python works well with Arduino hardware, and is especially well-suited for projects that use sensors and other components. You don’t need to be a coding wizard to start using Python in this way, but you will need some familiarity and experience.

    Check out this project — a Nicla Vision-based fire detector built by Arduino user Shakhizat Nurgaliyev using Python. Shakhizat created an entirely generated dataset and then trained a model on that data to detect fires.

    MicroPython

    MicroPython is an experimental, lean, and lightweight implementation of the programming language Python, and it’s designed specifically to be used with microcontrollers.

    This makes it ideal for use with Arduino projects, and it works especially well with those that use sensors and similar components. MicroPython does require a base of coding knowledge to use, but you don’t need to be an expert.

    Visual Studio Code

    Visual Studio Code, often abbreviated as VS Code, is an open-source editor created by Microsoft that is compatible with Windows, Linux, and macOS. 

    It offers a range of features such as debugging support, syntax highlighting, smart code completion, snippets, code refactoring, and integrated Git functionality. Visual Studio Code can be used to develop code for Arduino boards, and, by using the available extensions, you can upload code directly to the Arduino boards.

    Node-RED

    Node-RED is built to bring hardware devices, software, and online services together, creating ever more interesting and advanced projects.

    It works especially well with IoT projects — and is a great choice if you want to integrate platforms like Arduino with other devices to build your own custom designs for use in your home.

    Node-RED’s browser-based editor and built-in library make it a powerful tool for those with some coding experience to make new projects.

    Arduino’s Portenta X8 can host a Node-RED instance running it on a container, making it easy to connect and integrate several different services, either locally or online with Arduino Cloud or third-party software. 

    In this project, David Beamonte used Node-RED and Arduino Cloud, to integrate a TP-Link smart Wi-Fi plug with other projects. This way, they were able to link multiple smart home devices together and control them from one central hub.

    Expert-level software

    Are you a true veteran of making and coding? Fluent in more programming languages than you can remember, with a host of impressive projects under your belt and a slot at next year’s Maker Faire?

    If so, you have the skills to achieve some truly exciting things. Let’s take a look at the software available for expert-level makers.

    MATLAB

    MATLAB is an advanced piece of software that works well with Arduino hardware and similar products. 

    It’s especially useful when building projects that require data analysis and complex, large-scale computations. Proficiency in MATLAB can lead to some truly impressive creations, but it takes a solid amount of experience and skill to realize those results.

    Arduino users MadhuGovindarajan and ssalunkhe used MATLAB to build their very own lane-following rover. The project used the rover from Arduino’s Engineering Kit, combined with an algorithm that allows the rover to stay within a designated lane while driving.

    The Arduino Engineering kit contains three different projects that involve physical hardware and MATLAB/Simulink to create amazing results. 

    C/C++ IDEs

    The programming languages C and C++ have been around for decades, underpinning the worlds of computer science and software engineering.

    If you have a solid base of coding ability, you can use C/C++ development environments to program Arduino boards and create ever more advanced and impressive projects.

    Other resources

    GitHub

    Do you want to share your code with your mates, or with the world? 

    If so, GitHub is the perfect place to do it. It’s an open-source community with multiple contributors and lots of integrations with developer-oriented software. 

    Inside, you’ll find more than 300 million projects, known as repos. Makers use the platform to share their work, but it can also be useful to take a look and draw inspiration from the trending repositories.

    AI/ML

    AI is making headlines all over the world, but it extends far beyond ChatGPT.

    Makers today have access to a wealth of fantastic tools to speed up work, correct errors, and document your shiny new code. Check out GitHub copilot and OpenAI Codex to get started.

    Using software with Arduino

    By combining the right software tools with Arduino’s products, you have the perfect recipe for your next awesome project.

    If you want to gain inspiration, or share your own work with our community, check out the Arduino Project Hub where you can search for projects and filter by type and difficulty level.

    The post The best maker software by experience level appeared first on Arduino Blog.

    Website: LINK

  • An Introduction to C & GUI Programming – the new book from Raspberry Pi Press

    An Introduction to C & GUI Programming – the new book from Raspberry Pi Press

    Reading Time: 5 minutes

    The latest book from Raspberry Pi Press, An Introduction to C & GUI Programming, is now available. Author Simon Long explains how it came to be written…

    An Introduction to C and GUI programming by Simon Long

    Learning C

    I remember my first day in a ‘proper’ job very well. I’d just left university, and was delighted to have been taken on by a world-renowned consultancy firm as a software engineer. I was told that most of my work would be in C, which I had never used, so the first order of business was to learn it.

    My manager handed me a copy of Kernighan & Ritchie’s The C Programming Language, pointed to a terminal in the corner, said ‘That’s got a compiler. Off you go!’, and left me to it. So, I started reading the book, which is affectionately known to most software engineers as ‘K&R‘.

    I didn’t get very far. K&R is basically the specification of the C language. Dennis Ritchie, the eponymous ‘R’, invented C, and while the book he helped write is an excellent reference guide, it is not a great introduction for a beginner. Like most people who know their subject inside out, the authors tend to assume that you know more than you do, so reading the book when you don’t know anything about the language at all is a little frustrating. I do know people who have learned C from K&R, and they have my undying respect!

    I ended up learning C on the job as I went along; I looked at other people’s code, hacked stuff together, worked out why things didn’t work, asked for help from my colleagues, made a lot of mistakes, and gradually got the hang of it. I found only one book that was helpful for a beginner: it was called C For Yourself, and was actually one of the manuals for the long-extinct Microsoft QuickC compiler. That book is now impossible to find, so I’ve always had to tell people that the best book for learning C as a beginner is ‘C For Yourself, but you won’t be able to find a copy!’

    Writing An Introduction to C & GUI Programming

    When I embarked on this project, the editor of The MagPi and I were discussing possible series for the magazine, and we thought about creating a guide to writing GUI applications in C — that’s what I do in my day job at Raspberry Pi, so it seemed a logical place to start. We realised that the reader would need to know C to benefit from the series, and they wouldn’t be able to find a copy of C For Yourself. We decided that I ought to solve that problem first, so I wrote the original beginners’ guide to C series for The MagPi.

    (At this point, I should stress that the series is aimed at absolute beginners. I freely admit that I have simplified parts of the language so that the reader does not have to absorb as much in one go. So yes, I do know about returning a success/fail code from a program, but beginners really don’t need to learn about that in the first chapter — especially when many will never need to write a program which does it. That’s why it isn’t explained until Chapter 9.)

    An Introduction to C and GUI programming by Simon Long published by Raspberry Pi Press

    So, the beginners’ guide to C came first, and I have now got round to writing the second part, which was what I’d planned to write all along. The section on GUIs describes how to write applications using the GTK toolkit, which is used for most of the Raspberry Pi Desktop and its associated applications. GTK is very powerful, and allows you to write rich graphical user interfaces with relatively few lines of code, but it’s not the most intuitive for beginners. (Much like C itself!) The book walks you through the basics of creating a window, putting widgets on it, and making the widgets do useful things, and gets you to the point where you know enough to be able to write an application like the ones I have written for the Raspberry Pi Desktop.

    An Introduction to C and GUI programming by Simon Long published by Raspberry Pi Press

    It then seemed logical to bring the two parts together in a single volume, so that someone with no experience of C has enough information to go from a standing start to writing useful desktop applications.

    I hope that I’ve achieved that and if nothing else, I hope that I’ve written a book which is a bit more approachable for beginners than K&R!

    Get An Introduction to C & GUI Programming today!

    An Introduction to C & GUI Programming is available today from the Raspberry Pi Press online store, or as a free download here. You can also pick up a copy from the Raspberry Pi Store in Cambridge, or ask your local bookstore if they have it in stock or can order it in for you.

    Alex interjects to state the obvious: Basically, what we’re saying here is that there’s no reason for you not to read Simon’s book. Oh, and it feels really nice too.

    Website: LINK