Gas station without pumps

2017 December 10

2018 Santa Cruz Shakespeare season

Filed under: Uncategorized — gasstationwithoutpumps @ 17:14
Tags: , ,

Last Thursday, Santa Cruz Shakespeare announced their summer 2018 season to donors at a season-announcement party—they’ll be doing a public announcement later this week.  For readers of my blog, here is the line-up, slightly in advance of the public announcement:

  • Romeo and Juliet
  • Love’s Labours Lost
  • Venus in Fur (by David Ives)

The fringe play has not been selected yet (or, at any rate, not finalized).

The theme is apparently love and sex, with the non-Shakespearean play selected to appeal to modern adult audiences (as well as being a two-hander, to keep down production costs).

Santa Cruz Shakespeare is also starting a new educational program.  The Romeo and Juliet production will stay an extra week at the end of the summer season, giving morning performances for high school groups from Santa Cruz County.  I think they said that they plan to offer the show free to Title 1 schools and for about $10 to other schools. I believe that they are looking for donations (or more grants) to lower the cost of tickets further or provide scholarships for students who can’t afford even the reduced price.  They don’t have this new program on their education page yet, so I can’t give any details.

Advertisements

2017 December 1

Unproductive day

Filed under: Robotics — gasstationwithoutpumps @ 16:35
Tags: , , , ,

I’ve had a very unproductive day today.

  • I spent all morning responding to an IRS letter about my 2015 taxes—they wanted an extra $4000 from me, but they were wrong on everything they were asking for.  They claimed I hadn’t reported some of my income: it was on Schedule C (they may have been expecting it on Schedule D, where it would not have been subject to self-employment tax).  They wanted to charge me tax and penalties for withdrawals from my 529 college savings plan, though the qualified expenses (counting just what I paid directly to UCSB) exceeded what I had withdrawn. I had documentation for everything, but it took hours to find it all, print it, write a letter, and mail it.
  • I spent an hour trying to buy tickets to the Actors’ Theatre performances for 2018. The purchase was a simple one: I wanted 2 season tickets to all their shows, plus an extra ticket for the two opening nights of 8 10s @8.  When I went to Brown Paper Tickets, I couldn’t figure out how to specify which shows I wanted tickets to (the subscription purchase had a menu with only one date selectable).  I called their help line (twice—the first time I had not moved up at all in the queue after over 5 minutes), and found out that the subscription tickets only allowed selection of dates after the subscription had been purchased, as something called “pass management”.  There was no indication of this anywhere in their brochures or on the Brown Paper Ticket site.  So I tried again, but when I got to pass management, it told me that I was selecting dates just for the 8 10s @ 8 2-show package, and did not have the number of tickets I needed.  So I called their help line again.  It turns out that the 2-night package for 8 10s @8 doesn’t use pass management—instead you have to buy the ticket twice, with the different dates.  I had the person on the phone cancel that order (it had already been charged to my card) and made a third attempt at purchasing the tickets.  This time I managed to get the tickets I wanted, though there was no e-mail sent acknowledging the dates that I had selected and no e-mail sent for the cancelled order.  This has got to have been one of the worst ticket-ordering experiences I’ve ever had.  Both Brown Paper tickets and Actors’ Theatre are at fault for a very user-unfriendly experience.

In other news, yesterday I got a new third layer laser cut for robot and I soldered up the processor board.  The third layer probably should be cut once more, because one of the mounting holes for the beacon board is partly blocked by the supports from the 2nd layer.  But the beacon board can be mounted with just one screw holding the other standoff and a bit of tape to keep the standoff that can’t be screwed down from rotating, so I probably won’t bother.

I also got the processor board soldered last night:

The processor board was much easier to solder than the other board, because most of the wires are just short jumpers from header pins to the female headers holding the Teensy 3.2.

I do have a diode separating the 5V on the Teensy board from the 5V input from the first layer. This is to prevent power-supply fights if a USB cable is plugged in for reprogramming. I am a little worried that I hooked up the post-diode 5V to the interface pins for the beacon-detector board, which also has a diode to prevent power-supply fights. The double diode drop may be too much—I should probably rewire that pin to be connected to the input 5V instead.

The SPI interface is on the left in this picture, the bumper switch connections are the 3 pairs of pins at the top (though only two are connected to Teensy pins), the run of 4 yellow pins are the encoder connections, and the 4 white pins next to them are the motor-control pins.  Power and gnd come in adjacent to the motor-control pins. The two white-red-black triples on the bottom are for the track-wire detectors, and the 4 white pins next to them are the selection and mux pins for the tape sensors.

Note that this processor board has connections for all the sensors (motor encoders, tape sensors, track-wire detector, and SPI to beacon detector) but the only actuator connections are the drive motors. I have four unused pins that could be used for the ball launchers, but I’m not planning now on building any launchers—there just isn’t enough time left. I’ll be happy if I can get turtle graphics and tape following implemented by next week.

I still need some cables (one 6-wire for power and motor control, one 4-wire for encoders, and one 4-wire for tape sensors), which I was going to make today, but the IRS thing and the hassle with the Actors’ Theatre ticket purchase sapped me of my desire to do anything.

2017 November 29

Our new kitten, Marcus

Filed under: Uncategorized — gasstationwithoutpumps @ 14:54
Tags: ,

On Black Friday, my wife went shopping for a new kitten, to replace the cat that died about a year ago. We ended up with Marcus, who was being offered for adoption by volunteers at the local PetSmart (they weren’t sure which shelter he was coming from—probably not the closest one).

He’s been inspected by the vet and is being treated for ear mites. He also has a minor virus infection, so we are keeping him away from our older cat for a while, and being careful to wash hands between petting the cats.

It was hard to photograph Marcus, because he would not stay in one place long enough for me to frame and snap the photo.

I did manage to get one shot of Marcus in an uncharacteristic resting position.  You can just see the smudge of lighter fur on his throat.

Marcus reminds me a bit of Freya, a kitten we had 10 years ago—I just hope that Marcus is healthier and lives longer than Freya did.

2017 November 28

More SolidWorks

Filed under: Robotics — gasstationwithoutpumps @ 22:24
Tags: , , , , , ,

I spent most of my day today with SolidWorks, fixing the problems noted in Bugs found in first assembly of robot and adding new layers to the robot. I’m getting a bit better at using SolidWorks, but I still find it to be an overly complicated interface with way too many modes.  I’m sure that there is a way to get it to start up with reasonable document parameters (like using mm instead of inches, or using the same settings as already open documents), but I’ve not taken the time to try to track that down.

Here is the model as it stands so far:

View from the front left of the robot. The octagon floating on top is a the beacon-detector board, which will be on standoffs that I didn’t bother to include in the model.

I cut out the three layers of the robot today, making two mistakes in the process. One mistake I caught right away, and just recut the layer after fixing the problem—there was an extra alignment circle that was not supposed to be cut that I had forgotten to erase. The other error was just as serious, but I didn’t notice it until I got home—the top layer did not have the slots cut in it for the spacers from layer 2 to layer 3. It is hard to notice this problem in looking at the SolidWorks model, as the 3D model looks the same whether the slots are cut or not. I should have noticed it when I created the dxf file for cutting the third layer, but by then I was getting pretty tired and careless. I’ll have to cut another copy on Thursday.  Luckily MDF is cheap—each layer costs me about $1, and I still have half a dozen 1-foot squares of MDF left.

Incidentally, I came up with what I think will be a cheap fix for the potential problem of the bumper springs not being stiff enough.  I added another switch front and center, just for the spring in the switch to push the bumper forward.  At 60¢ a switch, this is not a particularly expensive way to add a spring, and it saved me a lot of modeling and building time.  I could even wire up the switch if I can think of a use for it.

One other thing I made today was a “drill” test, to see what size holes were really made by the laser cutter from specifications.  I created the guide in SVG using a short Python program (so that I could tweak things easily. It took me quite a while to get the SVG just right, because of weird limitations of SVG, like that the path commands can’t take units for the coordinates. Also because I was using Inkscape to translate the SVG to the DXF format that the RDWorks laser-cutter software needs, and Inkscape assumes that the “pixels” are 90/inch for that conversion.  It is kind of messed up that SVG works in terms of “pixels”, since it is supposed to be Scalable Vector Graphics.  Inkscape only converts paths to DXF (not other shapes, like circles and text), so I wrote the program to generate paths and used Inkscape’s object-to-path conversion to convert the text.

Here is the piece I cut:

The circles were cut at 14mm/s and 100% (actually clipped at 67%) and the numbers were written at 140mm/s and 20%.

The holes were exactly the right size (to the 0.1mm limitations of my calipers), and the circular pieces that were cut out were 0.35–0.4mm smaller in diameter. That is, the kerf is about 0.19±0.02mm and it is on the inside of arcs.

Here is the code I used for generating the SVG file:

#!/usr/bin/env python

from __future__ import division, print_function

# all sizes are given in units of 0.1 mm

# Inkscape coverts pixels to real-world units in DXF at 90 pixels/in

pix_per_inch = 90
mm_per_inch = 25.4
pix_per_mm = pix_per_inch / mm_per_inch
pix_per_unit = 0.1*pix_per_mm

print('<?xml version="1.0" encoding="UTF-8" standalone="no"?>')
print('<svg width="150mm" height="150mm" xmlns="http://www.w3.org/2000/svg">');

y=100   # y-position of first row of circles

x_space = 60    # spacing between circles
stroke = 1       # stroke-width

xmax = None     # largest value for x

text_space =35  # space from circle to label

for diams in [range(5,50,5), range(50,80,5), range(80,105,5), range(105,130,5)]:
    x=100 # left edge of first circle
    for diam in diams:
        x += diam/2
        print ('<path stroke="red" fill="none" stroke-width="1" d="M {sx},{sy} \
a {r},{r} 0,0,0 {r},{r} \
a {r},{r} 0,0,0 {r},-{r} \
a {r},{r} 0,0,0 -{r},-{r} \
a {r},{r} 0,0,0 -{r},{r} z" />'.format(sx=(x-diam/2)*pix_per_unit, sy=y*pix_per_unit,
                r=diam/2*pix_per_unit))

        print('<text x="{}" y="{}" stroke="blue" fill="blue" text-anchor="middle" font-family="Verdana" font-size="10">'.format(
                x*pix_per_unit,(y+diam/2+text_space)*pix_per_unit))
        print(diam/10)
        print('</text>')
        x += diam/2 + x_space
        last_diam=diam
        if xmax is None or x>xmax:
                xmax = x
    y+=2*last_diam+text_space

print('<path stroke="red" fill="none" stroke-width="1" d="M 0,0 h {} v {} h {} z" />'.format(
        xmax*pix_per_unit,(y-last_diam)*pix_per_unit,
        -xmax*pix_per_unit))

print ('</svg>')

2017 November 27

Power board soldered

Filed under: Robotics — gasstationwithoutpumps @ 13:26
Tags: , ,

This morning I managed to fix the problems that I had created for myself by my mistakes in soldering yesterday.  The power board is  now soldered and passes continuity tests (no adjacent pins shorted, all header pins connected where they are supposed to be.

Finished board, with annotation for the header pins. The whole board is 5cm×7cm.

The power board has several functions:

  • The pair of H-bridges for the motors, powered directly from battery power input at the lower left, and controlled by PWM and DIR signals from the Teensy board (header pins at the top). The motor output wires are red and white header pins on the left side of the board, to match the red and white wires on the motors.  The two motors have red and white with opposite M1/M2 connections, so that matching DIR signal drives the motors in opposite directions.  Because the motors are mounted with shafts in opposite directions, this should result in the wheels turning the same way.
    There is a row of header pins on the right (input side) of each H-bridge, for hooking up oscilloscopes or other test equipment.  The EN– signal could be shorted to GND with a shorting plug, but the documentation claims that there is a pull-down resistor internally, so floating should be fine.
    The VM pins of the H-bridges have 220µF electrolytic capacitors as bypass, to reduce PWM noise from propagating back through the battery.  I was planning to add 10µF ceramic capacitors at the Vin pins, to reduce high-frequency noise, but I ran out of room.  If the high-frequency noise is a problem, I can try to squeeze in some bypass capacitors.
  • NCP7805 5V 1A regulator (bottom center).  All the red and black pair to the right of the motor control are 5V and GND.  The GND pin of the regulator is the only place where the 5V and battery power systems are connected.
  • The multiplexer connects one of the 8 white pins on the top right to the “out” pin, controlled by S2, S1, and S0. Up to 8 tape sensors can be connected with standard 3-wire servo cables.
  • The 8 yellow pins are not connected to anything—they are there just to provide alignment for servo cables sending 5V power to other boards.  I may not need any of these connections, as the Teensy board can be powered from the 5V and Gnd connections adjacent to the motor signals and tape-sensor signals.
  • There are also 4 pairs of yellow pins just above and to the right of the regulator.  These are intended for gathering the encoder wires from the two motors and transferring them to a single cable up to the Teensy board.  The power and ground connections there can also be used for the encoders.

This board will have a mass of connectors to it:

  • battery (3-wire servo cable)
  • motor connections (4 separate wires)
  • motor encoder connections  (8 separate wires: +5V, GND, ENC1, and ENC2 for each motor)
  • motor cable from Teensy (4 wires or 6 wires, depending whether 5V and GND included)
  • tape-sensor cable to Teensy (4 wires or 6 wires, depending whether 5V and GND included)
  • encoder cable to Teensy (4 wires)
  • tape-wire sensors (3-wire servo cable to each sensor)

I still have to lay out and solder the carrier board for the Teensy, but that should be relatively easy, as I don’t have nearly so many wires and I only need to populate a few of the connectors.

Next Page »

Create a free website or blog at WordPress.com.

%d bloggers like this: