All code and CAD drawings can be found in the GitHub repo.
Before we begin I should probably point out that a reasonably good understanding of electronics and Linux makes this project a lot easier, especially since my Instructables are probably not the easiest to follow (I do try my best), however feel free to ask if something isn't clear enough.
A full parts list is a little difficult for a project this size so I'll highlight the important parts only: Arduino IC (i.e. ATmega 328 with Arduino bootloader, you can but them blank and flash then yourself or pre flashed with a bootloader) Raspberry Pi (512MB version if possible, because you know, more memory is better... but seriously I haven't tested with a 256MB version, but it should still work) Digital potentiometers (logarithmic taper (we'll be using it to attenuate audio) & i2c (from the Pi), a DS1807 will do) Amplifiers (I used pre-built modules but feel free to build your own if you feel up to it) DC-DC converters (12v to 5v, 600mA output, isolated) Rotary encoders (from font panel, cursor movement and volume) An LCD (4 rows, 20 columns works for me, if you have songs with really long names maybe get a 40 column one) As for tools, you just need all the standard electronics and woodworking tools, a few others which may be useful: Bus Pirate (I don't actually have one, but they are very useful, alternatively you can do what I do and write Arduino scripts to make an Arduino act like a Pus Pirate to some degree) Laser cutter/engraver (not essential, but makes production of mounting hardware and front panels SO much easier) Router (for construction of enclosure) Accurate callipers (essential for measuring sizes for panels and mounting hardware) I think that is about it for specialist parts and tools, but of course I would highly recommend you read through the entire Instructable before starting work on this project.
[I will have a video here when I get a chance to shoot and edit one, most likely 27/06]
The order in which I went about this project seemed fairly logical and seemed to work for me, so I'll go with that.In that case first up is the electronics which control communication between the radio and the user, in my radio the included 6 buttons, two rotary encoders which also have a switch for when they are pressed and a 4 row, 20 column backlit LCD, the majority of this is controlled using a ATmega 328p which interfaces with the Raspberry Pi using RS232 (over a level converter, since the Pi has a logic level of 3.3v and the Arduino is 5v), the one exception is the LCD backlight which is switched on and off using a GPIO pin from the Pi.
So here is an overview of what IO devices were actually connected to the Arduino, how they were connected and why: Pins 0 and 1 connected to the Raspberry Pi GPO header through a MOSFET level converter, this was for the serial communication between the Pi and the Arduino. The front panel button were connected to ADC pins 0 to 5 with either an external pull up or pull down resistor (whichever is easiest, in hindsight pull up would have been easier then I would only need ground on my front panel board). The LCD is connected on digital pins 8 to 13, the actual pin assignment is not important at this stage as it can be configured in the Arduino script. The encoder buttons are on pins 6 and 7, using the internal pull up resistor. The encoders are on pins 3 and 5 and 2 and 4, it is important to have at least one interrupt pin per encoder, this will greatly improve the performance. Most of this can be seen easily on the schematic which has all of these relevant sections annotated, note that this is the schematic for the main board only, so the actual devices are shown as pin headers, I will go over wiring the actual devices in the next step.
No comments:
Post a Comment