Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Saturday, July 27, 2024

Intro to Basic Python App with ChatGPT

I spent a couple days figuring out how to make a good basic app with Python to have a conversation with ChatGPT so that I can teach it to my high school students. There are some good resources for novice coders to engage with machine learning and ChatGPT with blocks coding (Micro:bit , Scratch, App Inventor) but I could find no clear resources on getting started with text coding that don't require some deeper understanding of programming concepts to get reasonable results.

Friday, July 31, 2020

Hacked an Answering Machine

I found this old answering machine and originally thought it was a good find for just harvesting the 7-segment display. But as it sat around my work table it occurred to me it would be fun to use the display and buttons to insert a Simon game inside the case. I put it off because it seemed daunting but once I started on it yesterday it turned out to only take a day to put together.

Monday, June 08, 2020

Hacking Salvaged LED Displays (Part II)

Good news! I just found a discarded VCR with an LED display. That means it's time to salvage the display and make a project out of it. While the last post on 7-segment displays was a single digit, standard display, this one actually turns out to be 10-segment with non-numerical segments. So it will be an exercise in figuring out how a non-standard display works. In this post I will go over my process for hacking a display like this. If you're interested in doing this for a simple, standard 7-segment numerical display see this other post.

Monday, May 25, 2020

Hacking Salvaged LED Displays (Part 1)

You can buy many kinds of standard 7-segment displays, but I prefer hacking salvaged ones you can find in broken e-waste. True, it's easy to buy displays with integrated drivers that make them much easier to connect to a micro-controller and program, but more often than not I end up finding components and making up projects for them, rather than the other way around. In this post I'll show how I salvage a standard single digit 7-seg display, figure out the pinout, and make it do some fun things. In a following post I'll show how I do the same with a more complicated, non-standard, multi-digit salvaged display.

Thursday, August 01, 2019

Raspberry Pi Classroom Table Timelapse Documentation

After trying to document spring plant and tree growth with a Raspberry Pi timelapse setup I found the variation in lighting over long periods of time produced a lot of bad footage. But I figured using this in the classroom to do timelapse recordings of students working at the table could be useful and not face the same problem of changing lighting conditions. So I created a mashup of my old Replicator 2 3D printing monitor with the timelapse program that conveniently attaches to our hanging outlets and managed to bang out a pretty quick set up for this. I start the program by logging in to a headless Raspberry Pi Zero wifi and the pi waits for a button press to start snapping pictures at 5 second intervals for 15 minutes.

Thursday, January 03, 2019

Thursday, December 27, 2018

Hexadecimal Bitmap Codes for Sino:bit

The Sino:bit is a big LED matrix based on the Calliope mini and developed by Naomi Wu. It's also a lot more, with a bunch of sensors and accessible pins on the board, like the Calliope and the BBC Microbit. The matrix has 12 X 12 LEDs and is fun to make bitmap images for. I made a P5 app on Glitch for designing bitmaps and downloading the Arduino code to display it on the Sino:bit.

Sunday, January 14, 2018

Image Integration With the Turtle Library for Processing

In this post I'm going to explore using Leah Beuchley's Turtle library for Processing to "stamp" images in a sort of port of Scratch's ability to stamp a sprite's costume. The turtle's self knowledge of its heading and position will come in handy here, though the way Processing's rotation method works make it a little tricky at points, but certainly worth while.
Something to try is creating a graphic that models an animal's movement, such as a butterfly, like I did here with Scratch.

Sunday, June 25, 2017

Making a Strobing Zoetrope at DDD

Design Do Discover

I loved participating in Design Do Discover 2017! The people and facilities are fantastic and I really enjoyed taking a project idea from start to finish (-ed enough) in the 2-day whirlwind workshop. I just want to document here our process of making a zoetrope, which I went in thinking I would like to make. One of the best parts of D3 was experiencing the epiphany that in the process of trying to make something you come to understand something so much better than if it were just explained or shown to you. The thing I came to understand was how persistence of vision works.

Sunday, February 26, 2017

Make a Video from a Processing Sketch

I needed to do this and found the steps challenging enough I wanted to keep them here, and maybe they will be helpful to others. I needed to take the words in a static wordle-type presentation and animate them, so they move around a bit. Then I needed to add that animation to a video of a dance.

Saturday, November 05, 2016

Getting Oriented With Minecraft Pi

Minecraft Pi is Python for Minecraft. You can run Python programs from a folder on your computer that make things happen in a Minecraft server in the same computer or even on a remote one. Actually Minecraft Pi is for the Raspberry Pi but I'm using the MCPI mod which can work on a regular (vanilla) Minecraft server or I have it working on a MinecraftEdu server (version 1.7.10).

Monday, August 01, 2016

Thinking Through Ideas With Python Turtle

I like that you can program a screen turtle very easily with a straightforward Python installation and no additional setup. I was playing with it on a plane ride and went through a progression of ideas that I figure might be nice for people to see, along with the code. Using the screen turtle is a good way to move from Logo environments like Turtle Art to more challenging text-based coding with Python.

Thursday, May 05, 2016

Code a Photobooth Program with P5 and a MaKey MaKey Controller

Creative student controller design!
This turned out to be a really fun project that my students can do quickly. We're using P5 to code a Photobooth program that streams the webcam and applies different filters the students choose. Plus we're adding a MaKey MaKey as a controller to work a little with

Friday, March 25, 2016

Daisy Chained NeoPixel Ring Flower Garden

I've had this recessed frame kicking around for a long time and finally came across a good use for it. Inspired by the story of a student's flower garden Logo program in Teaching With Logo by Molly and Daniel Watt, I picked up some NeoPixel rings at my local go to hobby store, Tinkersphere, and set about learning how to daisy chain them into one circuit.
Lynn's flower garden

Sunday, March 13, 2016

More Generative Art with the LogoTurtle

My first idea for making generative art with Drawson, my LogoTurtle, was along these lines. Here are a couple more ideas I am playing with. These are a little harder to code than the earlier "exploded shapes." My fascination with these is split between finding the beauty in the shapes that come out of them and in the process by which the overall composition is built up over time out of small random decisions.

Tuesday, January 26, 2016

Rotating Squares in Phases with Gif Loop Coder

All of these sketches, made with Gif Loop Coder, are the same save for the phase frequency. From the first with a phase of 0.01*i to the last with a phase of i the squares create remarkable iterative designs.

function onGLC(glc) {
    glc.loop();
     glc.size(400, 400);
     glc.setDuration(3);
     glc.setFPS(20);
     glc.setMode("single");
     glc.setEasing(false);
     glc.setMaxColors(10);
    glc.styles.backgroundColor = "black";

Monday, January 25, 2016

Generative Art with the LogoTurtle

The LogoTurtle is a programmable turtle that can draw. I like running simple programs with small aspects of randomness because the resulting drawings are always a surprise, and often beautiful. When randomness is part of a program the robot will draw a different composition every time, but it's also fun to look at several drawings resulting from the same program and see the similarities. The robot is enacting controlled chaos, and both the controlled parameters and the chaos within those limits can be seen after several runs. I also like how the robot is a kind of partner in creativity as it makes its own decisions within the framework it's been given.

Sunday, November 29, 2015

Gif Loop Coder Is An Animation Microworld

There's a new JavaScript programming tool called Gif Loop Coder that is providing me with endless fun. GLC provides a bunch of shape objects and an environment to play with their attributes and then run the resulting image as a tweened animation. Giving an object a single attribute, such as a fill color, will give it a static

Saturday, November 14, 2015

Developing A Light Logo NeoPixel 24 Curriculum

Light Logo, created by Brian Silverman, is a version of the Logo language that is used to program a few versions of the NeoPixels, from rings to strips, through an Arduino. See Josh Burker's post for how to get started, and see my Instructable for how to get a 24 NeoPixel ring more-or-less classroom ready. I'm developing a curriculum for it with 8th grade students as my guinea pigs and here are some thoughts that have come up as I use Light Logo in the classroom.