Skip to main content

FLL EV3 Robot

This blog post is about our current EV3 robot we're planning to use in the 2023/2024 FLL competition. Some features: 2 large motors for steering. 2 medium motors for attachments.  2 colour sensors for picking up the white and black lines, also used for line squaring. 1 gyro sensor. To enable attachments to be changed as quickly as possible we're using gravity to keep the gears connected, i.e. you don't need to fasten anything to the robot. Every attachment has 2x 12 tooth double bevel gear (part 32270) which comes in contact with the 2x 20 tooth double bevel gears (part 32269) on the robot. The medium motors are horizontally aligned on the robots, but we use 12 tooth double bevel gears to convert that to vertical alignments. These in turn are connected to 20 tooth double bevel gears, and the attachments in turn connect to these 20 tooth double bevel gears with their 12 tooth double bevel gears.  The complete robot is modelled in Bricklink Studio 2 . You can download the rob...

Raspberry Pi: Configuring MPD to transmit FM

Using PiFmRds you can use your Raspberry Pi to send out FM radio signals. It's using a GPIO pin originally designed to generate spread-spectrum clock signals, but by modulating the clock frequency you can create FM radio signals. Note that the signal is a square wave, implying you'll transmit radio energy not only on the primary frequency but also on harmonics which could cause interference on other devices. Usually this will not be a problem because of the low power output, but you have been warned.

MPD is an excellent music player with various user interfaces on all types of devices. So the idea was to configure MPD to output to FM radio.

First of all you need to install  PiFmRds. Make sure you can send FM radio using the sample files. For some reason stereo audio gave issues, so I'm using mono audio for the moment.

Secondly you need to have MPD installed and running. It implies you need to have some audio files in your library to play, plus you need a client. I'm using ncmpc from a SSH terminal and MPDroid from an Android device.

Then change /etc/mpd.conf as follows:

  • mpd must be modified to run as root because PiFmRds needs to run as root. Just comment out the user "mpd" line.
  • Add the following output section
    audio_output {
            type            "pipe"
            name            "FM Radio 107.9MHz"
            command         "sox -t raw -b 16 -c 1 -r 44100 -e signed-integer - -t wav -b 16 -c 1 -r 44100 - | /home/pi/PiFmRds/src/pi_fm_rds -audio - 2>/var/log/mpd/pifmrds.log"
            format          "44100:16:1"
    }
  • The idea is MPD will generate audio and pipe that to the command we've specified above. SoX is used to convert the raw audio to wav format. The wav audio then gets passed to pi_fm_rds which takes care of transmitting it over the FM waves. Any errors will we written to /var/log/mpd/pifmrds.log.
  • For performance reasons remove all other audio_output sections.
Restart mpd (/etc/init.d mpd restart) and if all went well MPD should now be broadcasting on 107.9 MHz.

The plan is to use mpc current to send the current song title over RDS, not implemented as yet,

Comments

minipark said…
Thank you! Worked like a charm.

Popular posts from this blog

Installing Lego Digital Designer (LDD) on Windows 10

If you're using Windows 10 18.09 or later and try to install Lego Digital Designer (LDD) 4.3.11 you'll probably get an installation error for Adobe Flash Player. However, there is an easy way around it: Download the installation file for LDD 4.3.11. Rename the .exe file to .zip. If you don't see the .exe extension in Explorer, go to "View - Options" on the Explorer menu, then under the "View" tab deselect the "Hide extensions for known file types". Open the zip file with Windows Explorer. Copy all files in the zip to another directory on your computer. In the new folder: Delete install_flash_player_active_x.exe. Copy OpenGLChecker.exe and rename it to install_flash_player_active_x.exe. Run LDDSetup.exe. In short the installer will execute install_flash_player_active_x.exe during the installation process, but all it does now is to execute the same logic as what OpenGLChecker does. In theory you can run any .exe that will not retu...

Install OpenWRT 14.09 on TP-Link MR3420 with Huawei E353 3G dongle

This post will describe how to install OpenWRT 14.09 on a TP-Link MR3420 router, plus configure it to use a Huawei E353 3G dongle to connect to the internet. First download the firmware, plus extra packages we'll need later. Store this on your computer: http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory.bin http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-mii_3.10.49-1_ar71xx.ipk http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-usb-net_3.10.49-1_ar71xx.ipk http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-usb-net-cdc-ether_3.10.49-1_ar71xx.ipk http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-usb-net-rndis_3.10.49-1_ar71xx.ipk http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/libpthread_0.9.33.2-1_ar71xx.ipk http://downloads.openwrt.org/...

Lego EV3 Home / Retail version (31313) sorting tray

The Lego EV3 Education core set (45544) comes with a sorting tray (see e.g.  https://stemrobotics.cs.pdx.edu/sites/default/files/EV3%20Organizers.pdf ). It seems there is nothing similar for the Lego EV3 Retail / Home version (31313). Our Lego Robotics club received some EV3 Home version kits and the kids can take these kits home to play & learn. This is my first attempt of constructing a sorting tray. I'm sure it's not perfect, so I'll update as we go. I've copied the images from  http://robotsquare.com/2013/11/25/difference-between-ev3-home-edition-and-education-ev3/ , which also offers a nice explanation of the difference between the two versions. Top tray: ( High resolution ) Bottom tray: ( High resolution ) Part list: PDF document for all the parts, sorted by block (A-M for the top tray, Z for the bottom tray).