Learning how to program the Arduino

This document was made as a reference for teaching myself and others about how to use the Arduino, but it needs to be proof-read by experts.

drive.google.com/file/d/1MUiQl3IuoR0fE33mI3foLrVSUz7xjtSq/view?usp=sharing

Attached: fa7e9c86e39388607f76634684e665f5.jpg (992x1024, 132.56K)

Other urls found in this thread:

nongnu.org/avr-libc/
hackaday.com/2014/11/30/using-the-second-microcontroller-on-an-arduino/
drive.google.com/file/d/1Ohp7-wnQrL2wEZYm8Tegu-u0fF3uskSb/view?usp=sharing
physicsforums.com/threads/how-to-make-a-nand-gate.527484/
twitter.com/NSFWRedditImage

This is Zig Forums user... get yourself a real dev board that uses a fpga.

Attached: nexys-4-ddr-2.png (600x538, 606.5K)

Get an AVR if u want 2 be a pro.

Oh, yeah?
Because the MCU in the Arduino UNO isn't a "AVR"?

Who cares what chip you're using?
Logic is logic.
If you can't port your programs from one chip to another you don't understand your own programs, and that's really bad.

Get an Sifive/Hifive instead. Arduino compatible, but a really fast risc-v chip.

Yeah but you pay extra money for arduino.

Don't use arduino (software) if you want to learn how to program microcontrollers. Use it if you want to quickly make something without learning much and forget about it. Once you grasp the basics you can make your own abstraction libraries which in most cases will be more appropriate and efficient for the given situation. Gained knowledge will also allow you to use other devices like ESP, ARM, PIC, NXP...

All you need is (AVR):
nongnu.org/avr-libc/
Datasheet of your device
Application notes
K&R C or whatever newer reference of C programming language
You can also expand your knowledge by reading articles on embedded.com, elm-chan.org and similar sites.

Attached: ec13.jpeg (600x700, 85.87K)

Exact copies are around 10 bux, just make sure that the bootloader chip is an mega16u2, not the chinkshit380.
You could join the goons or you could have two microcontrollers in one.
hackaday.com/2014/11/30/using-the-second-microcontroller-on-an-arduino/

Thanks for that find! It sounds like its a very recent chip so I wouldn't have known about it otherwise, due to the mind-share that Arduino has.

Attached: HiFive_Unleashed_Detail_1_1920w-480x270-c-default.jpg (480x270, 30.04K)

Learning C programming with Arduino? What the hell? Dude. Just read the anotated C standard. After that, read the K&R books for some algorithms and other incites. I doubt you would get much more with a book with that title. It should be called Learning to Program Arduino Using C.

It goes both ways.
You learn C and discrete logc with an Arduino.

I'm also interested on the HiFive, I haven't bought one because I fell like I'm going to be wasting the potential it has, because I haven't used a shitty Uno knockoff at it's fullest yet.

The trouble with getting into electronics and programming, is that you aren't sure how much you need to know to get started with what you want to do. And the more I learn, the more I realize just how little I know. I'm at the level where I can at least drive a Stepper and Servo motor and create conditions for them. The first document has been updated and one that explains the differences between the Arduino and Pi, has been included well.

The next step would be to learn how to use Ubuntu like a pro, so I can use MS Window programs on a SoC computer like Raspberry.

When I first wanted to learn programming, there wasn't a book in the entire library that taught it. My experience with online universities has been abysmal (1 - 2 years of learning workplace safety and reading facial expressions) with the poor communication leading me to go MIA. But I'm willing to give it another go if you can recommend one.

Are there any books, web-series, forums that you would recommend for someone who's interested in learning linux, programming with Python, and different types of AVR's and SoC computers?

Another reason for all this, is that I want to start a homeschooling club.

Attached: Screenshot_2018-08-04 Briar.png (157x198, 5.14K)

shits i haven't made any project sing it past 2 years. last time i was making lucid dream google with it. now it's currently wired to my orange pi zero, but doesn't serve real purpose (at least i keep them from dust)


are you me? (but pretty sure i'm lot retarded though). try go to demonoid, search Python, or Python basic, there are good uploader which got udemy collection pretty good for starter. personally i prefer to watch video tutorials first, later go to deeper with books or pdf

best of luck user, that's how i struggle back then when trying to learn Python, which also my first programming language for me too

If Udemy courses are a good source, then I'm happy to pay for them. I see the Udemy adverts a lot on YouTube but I think its time to bite the bullet.

Attached: khan-academy-1.jpg (400x400 17.6 KB, 7.94K)

It's not being retarded, it's lack of knowledge.
Acknowledging your weakness is a huge step for getting out the retard area.
Keep feeding that brain.

welcome to r/tech, most sunny helpful positive subreddit ever conceived.

just trying to make you redditfag feel at home you stupid cunt

...

Everyone has a genius mind trapped in a retard brain, you just need to coddle them enough to set it free!

This is another document you might like to proof-read. There's still a lot of holes regarding how to maintain and use Linux (Ubuntu) to it fullest. I'm afraid this doc, or at least the way I wrote it, makes the command-line look inconvenient compared to the GUI (File browser) and doesn't show the advantages that it probably has.

drive.google.com/file/d/1Ohp7-wnQrL2wEZYm8Tegu-u0fF3uskSb/view?usp=sharing

Attached: Screenshot-2018-5-10 Steam Hardware Survey April Linux Rose 0 22%.png (500x350 180.2 KB, 63.59K)

Nah, it's lack of willpower what causes that.
>I-I can't do that

Many companies including Arduino are coming out with FPGA boards--but most Arduino-level people don't know what to do with an FPGA, that would really call for an FPGA.
there's just not a lot of high-data-bandwidth projects going on in the arduino landscape.

If you want to be an arduino power user, you are better off with a Mega clone for $7 or maybe a Due clone for $13.
and really,,,, most of the projects using Unos use very little of the flash memory, and have the processor just waiting 99% of the time.
You don't need an ARM or an FPGA for an automatic pet-feeder or plant water-er.


320 mHz, 128MB flash
pretty sweet, but [Buy now $59]
Also I am one who feels kinda silly using vastly overpowered hardware than a task really calls for.
I have some Due and Teensy boards around, but all my projects have used Unos or Megas so far.

Programming Arduinos *IS* easy to do, however. They made them to teach school kids how to program and do basic electronics.
You do need to learn some things, but you don't need to know everything about programming or electronics to use one.

(quoting myself)
One thing I have wondered about is building an "anonymized" computer for web browsing.

In other threads people talk about the botnet and about all the telemetry stuff in Windows and Linux.
They talk shit about having some kind of secure PC CPUs made, but that is a dream that ain't happening.
I am wondering if anyone is trying to build their on "netbook" based on a real-time board like an Arduino or similar?

1. There are 800x480 screens already available that have Arduino drivers for. That's not great, but it is "bare metal" that isn't hiding anything ugly.
2. There are ethernet and wifi modules already available.
3. Using a PC keyboard might be a bother, but building (some kind of keyboard that will work) isn't much of a problem... You can get 12-key analog modules from RobotDyn, and put 4 of them on a 16-channel analog multiplexer. That would give 48 keys easily...
4. You would need to code a basic HTML interpreter, and you would need to display jpegs and pngs.... That would be most of the work here, but it doesn't seem to be out of the realm of possibility. Especially if you did it as a "scripting" program, with the bulk of the data stored on an SD card (because the Arduino Due board only has 256K of storage, but SD cards are multi-megabyte).

5. I think trying to run Javascript would be a much larger task. Dunno how well that would work. I would think that you would not need 100% of Javascript, you would just need to handle the more-common stuff that is used.

You'd never run the multimedia shit, but oh well. You should be able to do most HTML and some Javascript.

If you REALLY wanted a "sterile" internet computer, it doesn't seem to be out of reach here. There's just some coding work to be done. Is anybody doing this?

Yeah that shouldn't be too terribly hard at all. The hardware already exists. People do similar shit with raspberry pis. The bitch is writing the software.

I don't like RPis due to the lack of a real hard-drive controller.

A common problem is early burn-out of the SD cards used, due to the huge amount of writing that occurs. The USB boot option is a one-time change, and is also a performance hit on a system that isn't that great to begin with.

If they come out with an RPi that you can connect a regular SATA drive to, I'd be way more likely to get one. The {SD card as system drive} setup is very low-power and very portable--and I realize that a lot of people want that--but the lifetime is just not that great. And the boot-from-USB takes a performance hit, on a system that isn't that fast to begin with.

I don't get it? Does this Arduino have a SATA port? And is it a *real* SATA port, and not a USBSATA kludge? (for example, one of the Banana Pi board uses this hack).
Anyway, can't you just set your OS partitions to read-only on the SD card, and put stuff like /var/log and /tmp on a memory filesystem? Then you just use a USB disk for your data and other shit.
Anyway some other ARM SBCs have real SATA ports. There isn't just RPI.

The arduino doesn't but it's a simple microcontroller, you can compare that to a full fledged computer, even if it's as big as the microcontroller board, there's more stuff in a Pi than in an Arduino.

*You can't

Here's an excerpt of a Draft that explains how Microchips work.

PLD’s (Programmable Logic Device) are a form of non-volatile memory, so it holds information even when the power is off. This is not the case with SRAM (Static Random Access Memory) or DRAM (Dynamic RAM). SRAM and DRAM are volatile, in that they lose their data after power is no longer supplied.

These connections can be changed (programmed) by using fuses and anti-fuses.
A fuse is designed to brake or ‘trip’ an electric pathway when the current (electric flow)
exceeds a specific limit. An anti-fuse is one which creates a connection after it ‘trips’.

Anti-fuse PLD’s (Programmable Logic Device) can only be programmed once (Except for SRAM, but needs to be reprogrammed each time power is applied). The ‘blown’ fuses create a connection between two electric paths on a chip. PLD’s exchange speed and efficiency for prototyping.
Reference: physicsforums.com/threads/how-to-make-a-nand-gate.527484/

Complex PLD (CPLD) are two or more PLD’s on the one IC (Integrated Chip).
These are used in Micro-Controller Units (MCU’s) such as the Arduino to store programs.

Attached: images.jpeg (275x183, 15.46K)

As said, use a read-only squashfs partition or mount ext4 with ro in fstab (you can then remount rw to make edits). Mainstream distros can make this difficult so read into Buildroot for a useful tool that makes a full embedded Linux system.