Omnimaga

General Discussion => Technology and Development => Other => Topic started by: Spyro543 on February 23, 2014, 05:33:19 pm

Title: Arduino Computer - FrostAPC328
Post by: Spyro543 on February 23, 2014, 05:33:19 pm
EDIT: HUGE project update HERE (https://www.omnimaga.org/general-technology-and-hardware-discussion/arduino-computer/msg398999/#msg398999)!

The project is now called FrostAPC328. APC stands for Arduino Programmable Clock, and the 328 comes from the Arduino's processor, the ATmega328.

For a while now I have been wanting to make a small computer that would be easily programmable. I was going to originally going to do this with a PIC18F, but I am now doing this with an Arduino Uno. It has a 2 line 16 character LCD, a pot, and will eventually have input, select, cancel, and menu buttons. The programming language will be an interpreted language called Pickaxe that will have less than 20 instructions.

Progress so far:
-LCD works with Arduino
-Pot can be used to select character to input

As you can see, I have a very long way to go until this thing will actually be programmable. I'll keep this thread updated with any new progress.
Title: Re: Arduino Computer
Post by: flyingfisch on February 23, 2014, 07:52:38 pm
Nice :)

Where did you get the LCD?
Title: Re: Arduino Computer
Post by: Spyro543 on February 24, 2014, 06:53:06 am
Nice :)

Where did you get the LCD?
I was given the LCD, but I saw similar ones on Mouser.
Title: Re: Arduino Computer
Post by: pimathbrainiac on February 24, 2014, 08:04:32 pm
This looks cool. Will you eventually release a how-to? :D
Title: Re: Arduino Computer
Post by: Spyro543 on February 24, 2014, 08:05:51 pm
This looks cool. Will you eventually release a how-to? :D
I would like to but I'm not the best teacher, and will probably require a lot of work to make (although I could just put the code and schematics online when I'm finished).
Title: Re: Arduino Computer
Post by: Streetwalrus on February 24, 2014, 08:06:47 pm
Yeah code and schematics are enough. :)
Title: Re: Arduino Computer
Post by: Spyro543 on January 06, 2015, 07:22:58 pm
So I did a lot of work today.
Here's the completely new device.

(http://i.imgur.com/Zy7Xiez.jpg)

The device has a 16 character, 2 line LCD display and is powered by my Arduino Uno.
It has 3 buttons: Scroll (B1), Accept (B2), and Exit (B3).

Let's look at the main menu, which has 5 options:
(http://i.imgur.com/qVXrL3c.jpg)
(http://i.imgur.com/9PGkKDP.jpg)
(http://i.imgur.com/XwJsogt.jpg)

Here's the clock. Pretty simple:
(http://i.imgur.com/ZhWBRlm.jpg)

Here's how to set the clock. (The interface could use a bit of work.) B1 scrolls through the numbers and B2 saves.
(http://i.imgur.com/Y05zaL6.jpg)
(http://i.imgur.com/hkRj9dP.jpg)

Now on to the stopwatch. It's really simple. B1 starts/stops and B2 resets. Look at that screen ghosting!
(http://i.imgur.com/lBvYO4a.jpg)
(http://i.imgur.com/JQVgACs.jpg)

The ability to run apps hasn't been programmed yet. It'll be a while.
(http://i.imgur.com/UePwzsj.jpg)

The settings menu has two options: set time and date. Date hasn't been programmed yet.
(http://i.imgur.com/8NA4sdm.jpg)

The system info screen shows only the OS version right now. When apps are programmed, it will probably show free memory.
(http://i.imgur.com/FW1664l.jpg)

So yeah. This is actually a thing again.

Some more info bits:

-I'm not going to program the ability to write programs on the device. At least, I don't think. I'll still be making the Pickaxe programming language though.

-The clock is done entirely through software. Whenever the clock is opened, it checks how many milliseconds the Arduino has been turned on for. It then compares that to the value it saved from the last time it ran, and advances the clock by that amount. The clock is also running in the background (technically, it isn't running in the background but whatever) whenever the main menu and most other screens are open.

Have any questions/feedback/etc.? Please reply!
Title: Re: Arduino Computer
Post by: Keoni29 on January 07, 2015, 03:50:08 pm
I wrote a brainfuck interpreter and code editor for the arduino. It works with 3 buttons and it is pretty basic, but perhaps you can make use of it. You'd have to modify it to work with a character display.
Title: Re: Arduino Computer
Post by: Juju on January 07, 2015, 04:18:09 pm
Looks pretty cool ^_^
Title: Re: Arduino Computer
Post by: Spyro543 on January 07, 2015, 05:09:35 pm
--- OS version 0.0.3.3 ---
Not a big UI change, but a big under-the-hood change. I'm using a new, interrupt-based timer library. Now  I don't need to keep calling the clock routine in the program. Just set and forget.

I wrote a brainfuck interpreter and code editor for the arduino. It works with 3 buttons and it is pretty basic, but perhaps you can make use of it. You'd have to modify it to work with a character display.
Sure, why not? I'll put it in if I have enough program space left after the Pickaxe interpreter.
Title: Re: Arduino Computer
Post by: Keoni29 on January 07, 2015, 05:37:10 pm
Hmm upon closer inspection it's probably best if I re-wrote this thing some day :P
Title: Re: Arduino Computer
Post by: Spyro543 on January 07, 2015, 09:50:42 pm

Hmm upon closer inspection it's probably best if I re-wrote this thing some day :P
Don't worry about it. :P Pickaxe is going to be similar to Brainfuck anyways.

(or maybe i should make it only programmable in spyrodecimal :P)
Title: Re: Arduino Computer
Post by: Spyro543 on January 08, 2015, 02:13:59 pm
--- OS Version 0.0.3.5 ---

-Stopwatch works again!
-Added 2 more options in the Settings menu: Time Format (12-hour and 24-hour) and Date Format (M/D/Y and D/M/Y).
-Changed clock display routine so that it always uses 24-hour time and displays the AM/PM on the fly if 12-hour is selected in Settings.
Title: Re: Arduino Computer - FrostAPC328
Post by: Spyro543 on January 08, 2015, 05:44:16 pm
--- OS Version 0.0.4.0 ---

-Added partial date support (no leap years, no DST)
-Added date setting capability

--- OS Version 0.0.4.1 ---

-Fixed AM/PM displaying at wrong times
-Added leap year support



Here's an updated presentation of the device:

Here's the device itself.
(http://i.imgur.com/7PEKOog.jpg)

Here's the main menu.
(http://i.imgur.com/cpF50gL.jpg)
(http://i.imgur.com/aKQqpxH.jpg)
(http://i.imgur.com/D3cNafa.jpg)

Here's the clock. (It's not set yet!)
(http://i.imgur.com/YsICS2V.jpg)

Here's the stopwatch. It's really simple. Scroll starts/stops, and Accept resets.
(http://i.imgur.com/eI6INLv.jpg)
(http://i.imgur.com/AspDFDI.jpg)

App support isn't implemented yet, so I can't show any pictures of that!

Here's the settings menu. All of the options actually work here!
(http://i.imgur.com/7bDPviZ.jpg)
(http://i.imgur.com/hrCPlMa.jpg)

Here's how to set the time. Scroll changes the number, and Accept continues to next field.
(http://i.imgur.com/Z8RmpLf.jpg)
(http://i.imgur.com/kZ1e1Lm.jpg)

Here's how to set the date. The controls are the same as setting the time.
(http://i.imgur.com/wPUzdQH.jpg)
(http://i.imgur.com/KmS5NHH.jpg)
(http://i.imgur.com/iSOQ70T.jpg)

The System Info screen only shows version number. When app support is implemented, it will show free memory.
(http://i.imgur.com/GVi8vKR.jpg)
Title: Re: Arduino Computer - FrostAPC328
Post by: Geekboy1011 on March 05, 2015, 08:15:34 pm
Just something to consider. The Millis() function on the arduino platform resets after around 50 days or so. Make sure you have a case for that so the clock doesn't randomly barf :P
Title: Re: Arduino Computer - FrostAPC328
Post by: Spyro543 on March 05, 2015, 08:17:16 pm
Just something to consider. The Millis() function on the arduino platform resets after around 50 days or so. Make sure you have a case for that so the clock doesn't randomly barf :P
I'm now using one of the hardware timers for the clock, so no worries there :D